jaysnote
11분

새 Siri는 어떻게 앱을 '도구'로 부리나 — Apple 시스템 에이전트 루프

WWDC 2026에서 Apple이 공식 발표한 '시스템 레벨 에이전트'(새 Siri / System Orchestrator)는 실재한다 — App Intents를 도구로 앱을 가로질러 행동한다. 확실한 건 거기까지고, 그 내부 루프가 정확히 어떻게 도는지는 추측인 곳만 표시한다.

지난 글에서 Apple Intelligence 전체 구조를 한 장으로 잡았습니다. 거기서 한 줄로만 지나간 게 있습니다 — “System Orchestrator가 앱을 가로질러 행동한다.” 이번 글은 그 시스템 레벨 에이전트 루프 하나만 확대합니다. 새 Siri가 “저녁 예약하고, 교통 확인하고, 도착시간 문자해” 같은 명령을 받아 여러 앱을 도구처럼 부려서 실제로 해내는, 그 안쪽 루프입니다.

시스템 레벨 에이전트는 진짜 있나? — 있다

가장 궁금한 것부터 답하면, 이건 우리가 만들어낸 개념이 아니라 WWDC 2026에서 Apple이 공식 발표·시연한 것입니다. Apple은 무대에서 이걸 “새 Siri”라고 부르며, “저녁 예약 → 교통 확인 → 도착시간 문자”를 한 번의 명령으로 이어서 해내는 모습을 보여 줬습니다. 목표를 받아 App Intents를 도구로 골라 부르고, 여러 앱을 가로질러 다단계로 행동하는 에이전트가 거기 있는 건 분명합니다 — 키노트와 개발자 세션(App Intents·orchestrator)에 on-record로 박혀 있습니다.

단, 확실한 건 “있다 = 무엇을 한다”까지입니다. 그 에이전트가 안에서 정확히 어떻게 도는지(루프 코드·도는 프로세스·스텝별 모델)는 Apple이 공개하지 않았습니다. 그래서 이 글은 “시스템 레벨 에이전트가 있다”는 사실 위에서, 그 내부 루프를 공식 단서로 최대한 그리고, 추측인 곳만 표시합니다.

용어 주의 — 발표자는 ‘Siri’라 했지만, Siri ≠ 오케스트레이터. Apple이 무대에서 “새 Siri가 ~한다”고 말한 건 편의상 둘을 묶어 부른 것입니다. 실제로 맥락을 모아 도구를 부르는 루프(= 에이전트)를 도는 건 그 아래의 System Orchestrator(조정 엔진)이고, Siri는 그 엔진에 말 거는 얼굴(표면)일 뿐입니다. 게다가 이 엔진은 Siri 전용이 아니라 Writing Tools·Spotlight·Visual Intelligence도 함께 씁니다. 그래서 이 글에서 “오케스트레이터”는 엔진을, “Siri”는 그 표면을 가리킵니다.


추측은 이 세 곳뿐

지점상태왜 추측인가
루프의 정확한 모양 (.onToolCall·authenticationPolicy·historyTransform 같은 보안 훅 포함)역추론이 모양은 개발자용 Foundation Models 프레임워크(WWDC26 347)에 공개된 것. “시스템 오케스트레이터도 똑같은 루프를 돈다”는 직접 진술은 없어 빌려 온 추론
오케스트레이터의 내부 코드 / 도는 프로세스(데몬)미공개 · 블랙박스공개 API가 아님. 개발자에게 열린 건 “App Intents로 도구를 등록하는 쪽”뿐, 엔진을 들여다보는 쪽이 아님
루프 스텝마다 어떤 모델이 도는지 (라우팅용 온디바이스 vs 에이전트 추론용 Cloud Pro)추론”Cloud Pro가 에이전트형 도구 사용 담당”까지만 공식. 스텝별 모델 배정은 미공개

나머지(재료가 뭔지, 도구가 App Intents라는 것, 크로스앱 체이닝, 그리고 그 루프를 누가 돌리는지)는 공식 문서에 그대로 나옵니다. 아래는 그걸 설명하면서 위 세 지점에만 “추측” 표시를 답니다.

Apple 시스템 에이전트 루프 — 실선 공식 / 점선 미공개

위에서 아래로 읽습니다. 사용자 요청이 Siri 같은 표면으로 들어오면, 오케스트레이터가 세 가지 맥락(Semantic Index·화면 인식·웹)을 모아 App Intents를 도구로 부르는 루프를 돌려 답하거나 행동을 끝냅니다. 점선 박스(가운데 루프)가 추측 지점입니다.


1. 루프에 들어가는 재료

오케스트레이터가 조정하는 네 가지 재료부터 봅니다.

  • 개인 맥락 — Semantic Index. 기기 안의 파일·사진·메일·메시지·앱 콘텐츠를 의미 단위로 색인한 온디바이스 DB. 앱이 entity 스키마로 자기 콘텐츠를 여기에 기여합니다.
  • 화면 인식 — View Annotations API. 화면의 뷰를 엔티티로 매핑해, “이거”라고 말하면 지금 보는 걸 가리킬 수 있게.
  • 세계 지식 — 웹. 최신·외부 정보 보강.
  • App Actions — App Intents. 이게 루프의 “도구” — 다음 절의 주인공입니다.

추측: 이 넷을 매 턴 어떤 순서로 조립해 프롬프트에 넣는지의 디테일은 공개돼 있지 않습니다.


2. 도구 = App Intents

루프가 부르는 도구는 앱이 만든 임의의 함수가 아니라, App Intents로 OS에 등록된 타입 지정 동작입니다.

  • 앱이 intent 스키마로 “나는 이런 걸 할 수 있다”(예약하기, 사진 삭제, 메시지 보내기…)를 선언하면, 그게 오케스트레이터의 App toolbox에 올라갑니다.
  • 그래서 앱 경계를 넘는 작업이 됩니다. 뒤에 보겠지만 개발자 앱 안의 세션은 자기 앱 도구만 보는 반면, 시스템 루프는 기기 전체의 App Intents를 도구 풀로 쥡니다. 도식의 OpenTable → Maps → Messages 체이닝이 그 그림입니다.
  • (App Intents는 로컬·온디바이스 도구 호출입니다. 외부 시스템까지 가려면 MCP 같은 별도 통로가 거론되는데, 이건 보조 출처 기반이라 강하게 단정하지 않습니다.)

3. 그 루프, 누가 돌리나 — 에이전트는 프레임워크 안에 있다

여기서 우리가 계속 헷갈렸던 질문 하나를 못 박고 갑니다. Foundation Models framework는 “LLM에 한 번 묻고 답 받는” 일회성 API가 아닙니다. 도구(Tool)와 지시문을 쥐여 준 세션(LanguageModelSession / Profile)에 respond(to:)를 부르면, 프레임워크가 직접 에이전트 루프를 돌립니다 — 모델이 tool call을 내면 도구를 실행하고, 결과를 되먹이고, 끝날 때까지 반복합니다. 개발자가 while 루프를 손으로 짜지 않습니다.

그 한 바퀴는 이렇게 생겼습니다(세션 347 기준):

맥락 조립(요청 + 추가 컨텍스트)
   → 모델 추론: 다음에 부를 도구 결정 (tool call)
   → [보안 게이트: 인증 / 사용자 확인]
   → 도구 실행: Tool.call() / App Intent의 perform()
   → 결과를 맥락에 반영
   → (더 부를 게 있으면) 반복, 없으면 최종 답

역할이 셋으로 나뉩니다:

  • 프레임워크 = 루프(엔진). 세션이 반복을 돌립니다. 게다가 .onToolCall(실행 가로채 사용자 확인)·authenticationPolicy(고위험 인텐트 인증)·historyTransform(친구 피드·웹 같은 신뢰 못 할 맥락을 <<UNTRUSTED>>로 구분·redaction)으로 간접 프롬프트 인젝션까지 막습니다.
  • 개발자 = 도구 + 지시문. 무엇을 할 수 있고, 어떤 규칙으로 움직일지.
  • 모델 = 추론. 어떤 도구를 부를지, 결과를 보고 다음에 뭘 할지.

이 셋을 합친 게 에이전트입니다. 그러니 “프레임워크가 에이전트(루프)를 포함하느냐”의 답은 그렇다 — 루프는 프레임워크 것이고, 개발자는 거기에 도구·지시문만 끼웁니다. 비유하면 프레임워크가 엔진+변속기라면, OpenClaw 같은 자율 에이전트는 그 위에 플래닝·권한·장기 실행까지 얹은 완성차입니다. 핵심 구동 루프는 같은 부류고요.


4. 그럼 시스템 오케스트레이터는? — 여기가 추측

3절까지는 개발자용 프레임워크의 이야기로, 문서로 확인되는 사실입니다. 추측이 시작되는 건 이 루프를 시스템 오케스트레이터(새 Siri의 엔진) 에 그대로 옮겨 붙일 때입니다. 추측 셋은 이렇게 갈립니다.

  • 추측 ① — 같은 루프 모양. Apple은 “오케스트레이터도 정확히 이 루프·이 훅으로 돈다”고 명시한 적이 없습니다. 다만 같은 회사가 같은 시기에 같은 에이전트 보안 모델을 설계했고, App Intents가 그 도구로 들어가니 — 시스템 루프도 같은 모양일 것이라 보는 합리적 역추론입니다. 모양은 빌려 온 것이지 확인된 코드가 아닙니다.
  • 추측 ② — 내부 코드·도는 프로세스(블랙박스). 오케스트레이터의 실제 루프 코드와 그게 도는 시스템 프로세스(데몬)는 공개 API가 아닙니다. “앱 샌드박스 밖, OS 영역에서 돈다”까지는 구조상 분명하지만(앱 안이면 크로스앱이 불가능하니까) 그 안의 구현은 블랙박스로 남습니다.
  • 추측 ③ — 스텝별 모델. 루프 스텝마다 어떤 모델이 도는지 — “Cloud Pro가 에이전트를 맡는다”까지만 공식입니다.

“프레임워크가 에이전트 루프를 돌린다”는 확인된 사실이고, “시스템 오케스트레이터도 같은 식으로 돈다”는 그 사실에서 끌어온 추측입니다. 둘을 섞지 않는 게 이 글의 핵심입니다.


정리

  • 시스템 루프 = OS의 오케스트레이터가, Semantic Index·화면·웹을 맥락으로 깔고, 기기 전체의 App Intents를 도구로 부르는 에이전트 루프. 그리고 그 에이전트 루프는 프레임워크가 직접 돌린다 — 개발자는 도구·지시문만 끼운다.
  • 추측은 셋뿐 — 루프의 정확한 모양(역추론), 내부 코드·도는 프로세스(블랙박스), 스텝별 모델 배정(추론). 나머지는 Apple 문서 그대로입니다.

출처

확실(공식) — Apple 1차 자료:

배경·해설 — 2차 자료(능력/예시 확인용, 내부 구현 근거 아님):

정직성 노트: 347 세션은 개발자용 프레임워크가 에이전트 루프를 돌린다는 걸 보여주는 문서입니다. 이 글이 그 루프를 시스템 오케스트레이터에 옮겨 적용한 부분이 곧 위에서 표시한 “추측 ①”입니다.

관련 글

← 목록으로