
맥북용 USB-C 모니터 추천: 2025년 8월, 90W 이상 충전 지원 베스트 픽
8월 28, 2025
어쿠스틱 기타 녹음법: 실전에서 통하는 마이크 배치 테크닉 7가지
8월 29, 2025한 달 전 Vercel이 AI SDK 5를 공개했습니다. Next.js로 AI 애플리케이션을 만들어 본 개발자라면, 이번 릴리스가 스트리밍 Tool Call을 마침내 프로덕션 수준으로 끌어올린 버전이라는 걸 바로 느끼실 겁니다. 약 2년간의 실험적 RSC 통합과 점진적 개선 끝에, SDK 팀이 아키텍처를 완전히 다시 설계했습니다.
Vercel AI SDK 5까지의 여정: 실험적 RSC에서 프로덕션 스트리밍까지
먼저 맥락을 짚어보겠습니다. Vercel AI SDK는 2025년 들어 빠르게 진화했습니다. 1월에 출시된 AI SDK 4.1은 논블로킹 데이터 스트리밍과 컨텍스트 접근이 가능한 향상된 도구 실행을 도입했습니다. 3월의 AI SDK 4.2는 Tool Call Streaming을 실험 단계에서 정식(stable)으로 승격시켰습니다. 그리고 2025년 7월 31일, AI SDK 5가 완전한 아키텍처 재설계와 함께 등장했습니다.
패턴은 명확합니다. 매 릴리스마다 통합된 타입 안전 스트리밍 아키텍처를 향해 달려왔습니다. 하지만 AI SDK 5는 단순한 반복 개선이 아니라, AI 애플리케이션이 서버와 클라이언트 사이에서 데이터를 어떻게 주고받아야 하는지에 대한 근본적인 가정을 재정립합니다.

스트리밍 Tool Call: Vercel AI SDK 5에서 실제로 바뀐 것
도구 호출 자체는 AI SDK 3.x부터 가능했지만, 개발자 경험은 만족스럽지 않았습니다. 도구를 정의하고, 호출을 처리하고, 타입이 맞기를 기도하는 수준이었습니다. AI SDK 5는 세 가지 핵심 사항을 바꿨습니다.
타입별 도구 호출 파트(Type-Specific Tool Invocation Parts)
이전에는 모든 도구 호출이 제네릭한 tool-invocation 파트로 들어왔습니다. AI SDK 5에서는 각 도구가 tool-TOOLNAME 같은 고유한 파트 타입을 생성합니다. TypeScript가 런타임이 아닌 컴파일 타임에 불일치를 잡아낼 수 있게 된 것입니다.
// AI SDK 5: 타입 안전 도구 호출
const { messages } = useChat({
tools: {
getWeather: {
inputSchema: z.object({ city: z.string() }),
output: z.object({ temp: z.number(), condition: z.string() }),
},
},
});
// 각 도구가 자체 타입 파트를 가짐
messages[0].parts.filter(p => p.type === 'tool-getWeather')
// ^ TypeScript가 정확한 형태를 알고 있음
자동 입력 스트리밍과 라이프사이클 훅
도구 호출 입력이 이제 기본으로 스트리밍됩니다. 모델이 인자를 생성하는 과정에서 onInputStart, onInputDelta, onInputAvailable 세 가지 새로운 라이프사이클 훅을 통해 부분 업데이트를 받을 수 있습니다. 전체 도구 호출이 완료될 때까지 기다리는 대신, 점진적으로 채워지는 로딩 스켈레톤을 보여줄 수 있게 됐습니다.
복잡한 도구에서 실질적인 영향은 엄청납니다. 에이전트가 데이터베이스 쿼리나 다중 파라미터 API 호출을 생성하는 동안, 사용자는 인자가 실시간으로 구성되는 과정을 볼 수 있습니다. “마법을 기다리는” UX에서 “AI가 사고하는 과정을 지켜보는” UX로 변화하는 것입니다.
도구별 독립적 에러 처리
도구 실행 에러가 이제 전체 응답이 아닌 개별 도구 단위로 한정됩니다. 날씨 조회가 실패해도 전체 채팅 플로우가 중단되지 않습니다. 에러를 LLM에 재전송해서 재시도하거나 접근 방식을 조정할 수 있습니다. 안정적인 에이전트 애플리케이션을 구축하려면 반드시 필요한 기능입니다.
RSC 이슈: Vercel이 AI용 React Server Components를 중단한 이유
핵심 논점을 짚어야 합니다. LLM 응답에서 직접 React Server Components를 스트리밍할 수 있게 해주던 AI SDK RSC 패키지(@ai-sdk/rsc)는 여전히 실험적(experimental) 상태이며, 개발이 공식적으로 중단됐습니다. Vercel은 프로덕션 환경에서 AI SDK UI로 마이그레이션할 것을 권장합니다.
이유가 있습니다. streamUI와 createStreamableUI를 활용한 RSC 방식은 데모에서는 우아했지만, 프로덕션에서는 실질적인 문제를 일으켰습니다:
- 상태 관리 복잡성 — 서버 경계를 넘나드는
useUIState와useAIState관리가 미묘한 버그를 양산 - 직렬화 제약 — RSC는 모든 props가 직렬화 가능해야 하는데, 복잡한 도구 출력과 충돌
- 디버깅 난이도 — AI 파이프라인을 통해 서버 렌더링 컴포넌트를 스트리밍하면 에러 추적이 극도로 어려움
- 프레임워크 종속 — RSC가 SDK를 React/Next.js에 종속시켰는데, 팀은 Vue, Svelte, Angular까지 프레임워크 동등 지원을 목표
AI SDK 5의 해답은 UIMessage/ModelMessage 분리입니다. React 컴포넌트를 스트리밍하는 대신, 타입이 지정된 데이터 파트를 스트리밍하고 클라이언트에서 렌더링합니다. 서버는 구조화된 데이터를 보내고, 클라이언트가 표시 방법을 결정합니다. 클라이언트 코드가 더 필요하지만, 관심사 분리 측면에서는 더 나은 접근입니다.

SSE 프로토콜: 스트리밍 인프라 업그레이드
AI SDK 5는 커스텀 스트리밍 프로토콜을 표준 Server-Sent Events(SSE)로 교체했습니다. 사소한 구현 디테일처럼 보일 수 있지만, 실질적인 이점이 큽니다:
- 브라우저 DevTools 호환 — 네트워크 탭에서 AI 스트리밍 데이터를 일반 SSE 연결처럼 검사 가능
- 커스텀 파싱 불필요 — SSE는 모든 주요 브라우저에서 네이티브 지원
- 엣지 런타임 호환 — Vercel Edge Functions 등 엣지 런타임과 원활하게 동작
- 프록시 친화적 — 로드 밸런서와 CDN이 커스텀 바이너리 프로토콜보다 SSE를 더 잘 처리
스트리밍 이슈를 디버깅하느라 네트워크 탭에서 원시 바이트를 들여다본 경험이 있는 개발자라면, 이것만으로도 업그레이드할 가치가 있습니다. 새로운 Data Parts 시스템은 상태 업데이트, 부분 결과, 도구 진행 상황 등 임의의 타입 데이터를 동일한 SSE 연결로 스트리밍할 수 있게 해줍니다.
에이전트 루프 컨트롤: stopWhen과 prepareStep
AI SDK 5는 에이전트 실행 루프를 제어하는 일급(first-class) 프리미티브를 도입했습니다. 두 가지 새 옵션이 멀티스텝 AI 워크플로우 구축 방식을 바꿉니다.
stopWhen은 종료 조건을 선언적으로 정의합니다. 수동으로 스텝을 세거나 도구 호출 결과를 확인하는 대신, 루프가 언제 끝나야 하는지 — 특정 스텝 수 이후, 특정 도구가 호출될 때, 커스텀 로직에 따라 — 명시할 수 있습니다.
prepareStep은 각 반복 전에 실행되어, 모델, 시스템 프롬프트, 사용 가능한 도구, 메시지 히스토리를 동적으로 조정할 수 있게 합니다. 에스컬레이션(첫 시도 실패 시 더 강력한 모델로 전환)이나 점진적 도구 개방(초기 분석 후에만 고급 도구 활성화) 같은 패턴이 가능해집니다.
// 동적 컨트롤이 있는 에이전트 루프
const result = await streamText({
model: openai('gpt-4o'),
messages,
tools: { search, analyze, summarize },
stopWhen: maxSteps(5),
prepareStep: async ({ stepNumber, previousResult }) => {
if (stepNumber > 3) {
return { model: openai('gpt-4o-mini') }; // 비용 절감
}
return {};
},
});
스트리밍 도구 호출과 결합하면 강력한 패턴이 만들어집니다. 사용자가 에이전트의 추론 과정을 실시간으로 보면서, 개입하거나 방향을 수정할 수 있게 됩니다.
마이그레이션 가이드: 지금 해야 할 것들
AI SDK 4.x를 사용 중이라면, 실전 마이그레이션 체크리스트입니다:
- 코드모드 실행:
npx @ai-sdk/codemod upgrade가 대부분의 브레이킹 체인지를 자동 처리 - 도구 파라미터 이름 변경:
parameters→inputSchema,result→output - 도구 호출 핸들링 업데이트: 제네릭
tool-invocation파트에서 타입 지정된tool-TOOLNAME파트로 전환 - RSC 사용 중이라면:
streamUI를 Data Parts가 포함된useChat으로 마이그레이션 시작 — 전용 마이그레이션 가이드 참조 - 스트리밍 업데이트: 새 SSE 프로토콜이 기본이지만, 미들웨어와 프록시의 지원 여부 확인 필요
- UIMessage/ModelMessage 도입: 영속화 레이어(UIMessage)와 LLM 통신(ModelMessage)을 분리
코드모드가 약 80%를 처리합니다. 나머지 20% — 특히 도구 호출 렌더링과 상태 관리 — 는 수동 작업이 필요합니다. 중간 규모 프로젝트 기준 하루 정도를 예상하면 됩니다.
AI 개발자 생태계에 미치는 영향
Vercel AI SDK 5는 성숙의 전환점입니다. 실험적 RSC 스트리밍에서 프로덕션급 타입 안전 스트리밍으로의 전환은 Vercel만의 이야기가 아니라, AI 프레임워크 생태계 전체가 향하는 방향을 반영합니다. LangChain, LlamaIndex 등도 모두 유사한 패턴 — 타입 지정 도구 인터페이스, 스트리밍 우선 아키텍처, 에이전트 루프 추상화 — 으로 수렴하고 있습니다.
AI SDK는 이제 주간 npm 다운로드 200만 회 이상을 기록하며, TypeScript AI 개발의 사실상 표준이 됐습니다. React, Vue, Svelte, Angular 전반의 프레임워크 지원과 새로운 글로벌 프로바이더 문법('openai/gpt-4o')으로 진입 장벽은 그 어느 때보다 낮아졌습니다.
2025년 8월 현재 프로덕션 AI 기능을 구축하는 개발자에게 메시지는 분명합니다. AI SDK 5가 구축할 기반입니다. 스트리밍 도구 호출은 프로덕션 준비 완료, 에이전트 프리미티브는 견고하며, RSC에서의 마이그레이션 경로도 잘 문서화되어 있습니다. 업그레이드 여부가 아니라, 개선된 UX를 사용자에게 얼마나 빨리 제공할 수 있느냐가 문제입니다.
AI 기반 애플리케이션 구축이나 스트리밍 인프라 설계에 대해 상담이 필요하시다면, 기술 스택을 함께 검토해 드리겠습니다.
매주 AI, 음악, 테크 트렌드를 이메일로 받아보세요.



