LLM WikiAccess-protected knowledge portal

WIKI

AI SDK 7: WorkflowAgent·Tool Approval·MCP Apps로 에이전트 런타임을 재구성한 방식

왜 지금 봐야 하나 Vercel은 2026년 6월 25일 AI SDK 7을 공개했다. 이번 릴리스는 모델 호출 헬퍼에 기능 몇 개를 더 얹은 수준이 아니다. TypeScript 기반 AI SDK를 '모델 호출 라이브러리'에서 '에이전트 런타임 표면'으로 넓힌 릴리스 에 가깝다. 이번 변화가 중요한 이유는 세 가지다. ToolLoopAgent 위에 durable/resumable 실행 경로 인 WorkflowAgent 가 올라왔

경로human/study/content/ai-frontier/38-ai-sdk-7-workflowagent-tool-approvals-mcp-apps.md
카테고리Study
태그#ai-review #approvals #apps #mcp #study #tool #workflowagent

왜 지금 봐야 하나

Vercel은 2026년 6월 25일 AI SDK 7을 공개했다. 이번 릴리스는 모델 호출 헬퍼에 기능 몇 개를 더 얹은 수준이 아니다. TypeScript 기반 AI SDK를 '모델 호출 라이브러리'에서 '에이전트 런타임 표면'으로 넓힌 릴리스에 가깝다.

이번 변화가 중요한 이유는 세 가지다.

즉, AI SDK 7은 “모델을 어떻게 부를까”보다 에이전트를 어디에서 멈추고, 무엇을 승인하고, 어떤 상태를 저장하고, 어떤 UI를 노출할까를 코드 표면에 드러낸다. 에이전트를 실제 서비스로 운영하는 팀이라면 이 변화가 더 중요하다.


핵심 변화 한눈에 보기

AI SDK 6까지의 감각AI SDK 7에서 달라진 점운영자가 바로 받는 영향
에이전트 실행 모델메모리 안의 tool loop 중심WorkflowAgent로 durable/resumable 실행 추가재시도, 승인 대기, 프로세스 재시작 이후 복구를 런타임 차원에서 설계 가능
실행 컨텍스트프롬프트/앱 코드에 흩어짐runtimeContext, toolsContext, tool contextSchemaAPI 키·tenant·request ID 같은 서버 상태를 프롬프트 밖에서 안전하게 전달
자산 전달파일/지침을 매 호출마다 다시 전송uploadFile, uploadSkill, ProviderReference큰 파일·스킬을 반복 전송하지 않고 참조로 재사용
HITL/가드레일앱 바깥에서 임시로 막음toolApproval, timeout, sandbox 표면민감한 도구 승인, hung step 차단, 실행 경계 설명을 SDK 설정으로 표현
MCP 통합도구 목록을 모델에 붙이는 수준MCP Apps, model-visible/app-visible 분리, sandboxed iframe모델에 보여줄 도구와 사람에게 보여줄 UI를 분리한 호스트 설계 필요
개발/검증 표면데모 앱이나 임시 CLI 의존@ai-sdk/tui, harness 연동에이전트 루프를 터미널과 샌드박스에서 짧게 반복 검증 가능

AI SDK 7이 다시 그은 경계

AI SDK 7은 제어면·실행면·UI면을 각각 분리해서 다룬다 1) Agent control plane `ToolLoopAgent` / `WorkflowAgent` `toolApproval`, `prepareStep`, timeout 승인 대기, 자동 승인/거부, hung tool 차단 `WorkflowAgent`는 상태를 저장하고 재시작 이후 다시 이어감 2) Execution/data plane `runtimeContext` + `toolsContext` `uploadFile` / `uploadSkill` → `ProviderReference` 파일과 스킬을 매 호출마다 다시 보내지 않고 참조로 재사용 필요하면 실험적 sandbox에 명령을 위임 3) UI / integration plane MCP Apps: model-visible / app-visible 분리 sandboxed iframe + JSON-RPC bridge 사람은 UI를 보고, 모델은 허용된 도구만 본다 `@ai-sdk/tui`, harness 연동으로 로컬 검증 루프 제공 실무 해석 도구 실행의 승인/중단 민감한 tool은 `user-approval`로 멈추고 실패한 step은 checkpoint 뒤에서 다시 시작 프롬프트 바깥 상태 전달 tenant, credential, request ID를 prompt에 섞지 않고 도구별 context와 provider reference로 전달 모델과 사람의 가시성 분리 MCP 도구 전체를 모델에 노출하지 않고 UI는 sandboxed iframe으로 별도 렌더링 핵심은 모델 호출 기능이 많아졌다는 점이 아니라, 에이전트 실행을 멈추고 이어가고 검토하는 지점이 SDK 표면으로 올라왔다는 점이다. 그래서 도입 검증도 답변 품질만이 아니라 상태 저장, 승인 정책, 자산 전달, UI 격리, 샌드박스 위임까지 함께 봐야 한다.
AI SDK 7: 모델 호출 라이브러리에서 에이전트 런타임으로 넓어진 구조

1. ToolLoopAgent 위에 durable runtime이 생겼다

AI SDK 7 블로그는 이번 릴리스를 "에이전트를 개발하고, 실행하고, 관측하고, 다양한 harness와 연결하는 층"으로 설명한다. 그중 가장 구조적인 변화는 WorkflowAgent다.

WorkflowAgent 문서는 이를 durable, resumable agent라고 직접 규정한다. 같은 문서는 표준 ToolLoopAgent가 메모리 안에서만 돌기 때문에 프로세스가 죽으면 진행 상황이 사라진다고 설명한다. 반면 WorkflowAgent는 다음을 명시적으로 해결 대상으로 둔다.

여기서 중요한 운영상의 차이

WorkflowAgent는 단순히 ToolLoopAgent의 확장판이 아니다. 문서 표를 보면 다음처럼 성격이 다르다.

항목ToolLoopAgentWorkflowAgent
패키지ai@ai-sdk/workflow
실행 환경프로세스 메모리workflow runtime
충돌/재시작 이후진행 상황 유실재개 가능
tool retry수동workflow step 기반 자동
주 사용 APIgenerate() / stream()stream() 중심

즉, 단일 요청 안에서 짧게 끝나는 agent라면 ToolLoopAgent로 충분하지만, 승인 대기·외부 API 지연·다단계 툴 루프 때문에 실행 수명이 길어진다면 7.x에서는 아예 다른 런타임으로 넘어가라는 메시지다.

이 변화가 왜 중요하나

대부분의 실패는 모델 품질보다 실행 수명주기에서 난다. 예를 들어,

이때 처음부터 다시 시작하면 비용도 들고, side effect가 있는 도구라면 중복 실행 위험도 생긴다. AI SDK 7은 이 문제를 프롬프트 엔지니어링이 아니라 워크플로 런타임으로 끌고 간다.


2. prompt가 아니라 context와 reference로 상태를 넘긴다

AI SDK 7의 두 번째 핵심은 “환경 상태를 어디에 둘 것인가”에 대한 정리다. Runtime and Tool Context 문서는 컨텍스트를 shared runtime stateper-tool execution state로 나눠 설명한다.

핵심 문장은 간단하다.

context는 서버 측 상태를 generation 또는 agent loop에 전달하지만, 자동으로 프롬프트에 들어가지는 않는다.

이 분리가 중요한 이유는 agent가 실제 환경에서 다루는 값이 대부분 모델 토큰으로 보내기 부적절하기 때문이다.

runtimeContexttoolsContext를 분리한 이유

공식 문서는 runtimeContext를 전체 루프가 공유하는 상태로, toolsContext를 tool 이름별 맵으로 설명한다. 그리고 각 도구는 자기 contextSchema로 검증된 값만 받는다.

이 설계가 실무에서 주는 이점은 분명하다.

즉, “도구가 쓸 값”과 “모델이 볼 텍스트”를 더 이상 같은 통로로 보내지 않는다는 뜻이다.

파일과 스킬도 같은 방식으로 다룬다

File UploadsSkill Uploads 문서는 uploadFile / uploadSkill이 모두 ProviderReference를 반환한다고 설명한다. 이 값은 provider별 식별자 매핑이다.

실무 해석은 이렇다.

하지만 여기에는 분명한 제한도 있다.

ProviderReference는 진짜 범용 자산 ID가 아니다

공식 문서는 provider를 바꾸면 파일을 양쪽 provider에 업로드하고 reference를 합쳐야 한다고 말한다. 즉, ProviderReference는 다중 provider 추상화처럼 보이지만 실제로는 provider별 로컬 ID 묶음이다.

이 점을 놓치면 “OpenAI에서 올린 파일을 Anthropic 호출에도 그대로 쓰겠지” 같은 잘못된 기대가 생긴다. AI SDK 7은 자산 전달 비용을 줄여 주지만, 자산 저장의 진짜 표준을 제공하는 것은 아니다.


3. MCP Apps는 '도구 노출'과 'UI 노출'을 분리한다

AI SDK 7 블로그에서 눈에 띄는 부분 중 하나가 MCP Apps다. 이 기능의 핵심은 단순히 MCP 서버에 붙는 것이 아니다. MCP Apps 문서는 호스트가 해야 할 일을 매우 명확히 적어 둔다.

  1. MCP Apps capability로 서버에 연결
  2. 도구를 받아 model-visibleapp-visible로 분리
  3. 모델에는 model-visible tool만 전달
  4. tool part에 붙은 ui:// 리소스를 읽음
  5. HTML 리소스를 sandboxed iframe에 렌더링
  6. iframe에서 허용된 요청만 다시 MCP 서버로 프록시

왜 이 구조가 중요한가

기존에는 “MCP 서버가 있으니 모델에 tool 목록을 다 붙이면 된다”는 식으로 접근하기 쉬웠다. 하지만 실제 서비스에서는 그렇지 않다.

이 셋은 권한 경계가 다르다. AI SDK 7은 이걸 _meta.ui.visibility와 sandboxed iframe 모델로 분리한다.

실무적으로는 오히려 호스트 책임이 늘어난다

공식 문서도 "안전하게 fetch/render할 수 있을 때만 MCP Apps capability를 광고하라"고 적어 둔다. 즉, 기능이 늘어난 대신 호스트 구현체가 책임져야 할 것이 늘었다.

이 구조는 강력하지만, 잘못 구현하면 도구 호출은 제한했는데 UI 경로가 우회 채널이 되는 문제가 생길 수 있다.


4. 승인·timeout·sandbox가 명시적 가드레일이 됐다

toolApproval은 민감한 도구를 공식적으로 멈추는 표면이다

Tool Approvals 문서는 기본 실행 모델이 “execute가 있으면 자동 실행”이라고 설명한다. 그리고 승인 상태를 네 가지로 나눈다.

이 표면이 중요한 이유는 승인 로직을 애플리케이션 바깥 임시 코드가 아니라 agent loop 일부로 끌어왔기 때문이다. 파일 삭제, 결제, 메시지 전송, private data 접근 같은 작업을 특정 입력 조건에서 자동 거부하거나 사람에게 넘길 수 있다.

다만 문서는 중요한 제한도 분명히 적는다.

provider-executed tools는 provider 측에서 실행되므로 AI SDK tool approval을 사용하지 않는다.

즉, SDK 내부 툴과 provider 측 툴을 섞는 시스템이라면 “모든 도구가 같은 승인 규칙을 탄다”고 생각하면 안 된다.

timeout은 이제 모델 호출이 아니라 에이전트 루프 기준이다

AI SDK 7 블로그는 timeout이 total / per-step / per-chunk / per-tool 수준으로 들어왔다고 설명한다. 이건 long-running agent 운영에 더 가깝다.

예전에는 “모델 응답 하나가 오래 걸리는가”만 봤다면, 이제는 다음을 따로 끊어 볼 수 있다.

에이전트는 실패 방식이 일반 RPC보다 훨씬 많다. AI SDK 7은 그 실패들을 설정 가능한 budget으로 바꾼다.

sandbox는 생겼지만, 아직 완전한 격리는 아니다

블로그는 SandboxSession을 first-class abstraction처럼 소개하지만, 현재 reference 문서는 타입 이름 자체가 Experimental_SandboxSession이며 경고를 명확히 남긴다.

이건 매우 중요한 운영 포인트다. “샌드박스 옵션을 켰으니 코드 실행 툴이 격리된다”고 오해하면 안 된다. AI SDK 7은 샌드박스로의 위임 인터페이스를 준 것이지, 임의의 tool을 자동으로 안전하게 만들지는 않는다.


5. TUI와 harness는 데모가 아니라 검증 루프를 짧게 만든다

AI SDK 7 블로그는 Codex, Claude Code 같은 agent harness와의 통합을 강조한다. Harnesses with Terminal UI 문서를 보면 @ai-sdk/tui는 reasoning, tool call, approval prompt를 터미널에 렌더링할 수 있다.

이 기능이 좋은 이유는 화려한 UI가 아니라 검증 비용을 낮춘다는 점이다.

다만 문서는 세션당 터미널 런을 하나로 잡고, 재개가 필요하면 detach()stop()에서 상태를 따로 다루라고 적는다. 즉, TUI는 durability 그 자체가 아니라 durability를 시험하는 개발 표면에 가깝다.


6. 어떤 팀이 지금 도입을 검토해야 하나

팀/상황AI SDK 7이 특히 맞는 이유먼저 확인할 것
TypeScript 기반으로 agent 앱을 운영하는 팀모델 호출, tool loop, UI stream, MCP, approval을 한 SDK 계열로 묶을 수 있음실제로 Vercel Workflow를 쓸 것인지, 단순 ToolLoopAgent면 충분한지
긴 파일/문서를 반복적으로 다루는 팀uploadFile / uploadSkill로 반복 전송 비용을 줄일 수 있음provider를 바꾸는 경로가 있는지, re-upload 전략이 필요한지
MCP 기반 agent UI를 만들 팀model-visible / app-visible 분리를 공식 패턴으로 가져갈 수 있음iframe sandbox / proxy allowlist / ui:// fetch 정책
HITL이 필수인 팀toolApproval로 승인·거부·보류를 루프 표면에 올릴 수 있음provider-executed tool이 승인 우회를 만들지 않는지
Codex/Claude Code 같은 harness를 내부 툴에 붙이려는 팀TUI + harness + sandbox로 로컬 검증 루프를 빠르게 만들 수 있음세션 수명주기, sandbox credential, 포트 노출 정책

7. 도입 전에 반드시 확인할 체크리스트

아키텍처 체크

보안 체크

운영 체크


8. 한 줄 결론

AI SDK 7의 핵심은 새 모델 커넥터가 아니라 에이전트를 어디서 멈추고, 무엇을 저장하고, 어떤 UI와 어떤 도구를 누구에게 보여줄지를 SDK 차원에서 나누기 시작했다는 점이다.

그래서 이 릴리스를 평가할 때는 단순히 “에이전트를 더 쉽게 만들 수 있나”를 묻기보다, 다음을 봐야 한다.

이 기준으로 보면 AI SDK 7은 단순한 SDK 업그레이드가 아니라, TypeScript 에이전트 런타임의 운영 표면을 한 단계 넓힌 릴리스다.

References