pile·
AI / ML·vercel-blogVercel Blog·

AI SDK 5 — UIMessage/ModelMessage 분리, 에이전트 루프 제어, 음성 통합

Vercel이 TypeScript/JavaScript AI 애플리케이션 프레임워크 AI SDK 5를 출시했다. UIMessage/ModelMessage 분리로 전체 스택 타입 안전성을 확보하고, stopWhen/prepareStep으로 에이전트 루프를 정밀 제어하며, 음성 생성·전사 통합 API를 추가한 아키텍처 전면 재설계다.

핵심 포인트
  • UIMessage(앱 상태 저장)와 ModelMessage(LLM 전송)를 분리하고 convertToModelMessages()로 변환한다.
  • stopWhen([stepCountIs(5), hasToolCall('finalAnswer')])으로 에이전트 루프 종료 조건을 선언적으로 정의한다.
  • prepareStep으로 각 단계마다 모델·시스템 프롬프트·도구·메시지를 동적으로 교체해 비용을 최적화한다.
  • new Agent({ model, system, stopWhen, tools })로 에이전트 설정을 클래스로 캡슐화한다.
  • generateSpeech/transcribe로 TTS/STT를 통합 제공자 API로 처리한다.
  • npx @ai-sdk/codemod upgrade 자동 마이그레이션 코드모드를 제공한다.
상세 정리
  • 메시지 분리: UIMessage는 앱 상태 원본(메타데이터·도구 결과·지속성), ModelMessage는 LLM 전송용 간결한 표현.
  • 제네릭 타입: UIMessage<MyMetadata, MyDataParts, MyTools>로 커스텀 타입 정의. useChat<MyUIMessage>()로 전체 스택 안전성 확보.
  • 데이터 파트: 서버에서 writer.write({ type: 'data-weather', data: {...} })로 타입 안전 스트리밍, 클라이언트에서 part.type으로 분기 렌더링.
  • 에이전트 루프 — stopWhen: stepCountIs(N), hasToolCall('name')으로 종료 조건 선언. 단계 수나 특정 도구 호출 시 자동 중단.
  • 에이전트 루프 — prepareStep: 각 단계 실행 전 콜백으로 model·messages·system·tools를 동적 교체. 첫 단계는 소형 모델, 이후 단계는 대형 모델로 전환 등.
  • Agent 클래스: new Agent({ model, system, stopWhen, tools })로 캡슐화. agent.generate()와 agent.stream()으로 실행.
  • 음성 통합: generateSpeech({ model: openai.speech('tts-1'), text, voice })와 transcribe({ model: openai.transcription('whisper-1'), audio }). OpenAI, ElevenLabs, DeepGram 지원.
  • 도구 스키마: parameters → inputSchema/outputSchema(MCP 스펙 정렬). dynamicTool로 런타임 타입 결정 도구 지원.
  • 도구 라이프사이클: onInputStart, onInputDelta, onInputAvailable 훅으로 스트리밍 도구 입력 처리.
  • 도구별 제공자 옵션: Anthropic의 캐시 제어 등을 도구 수준에서 설정 가능.
  • 글로벌 제공자: model: 'openai/gpt-4o' 문자열로 AI Gateway 직접 사용.
  • SSE 표준화: Server-Sent Events가 기본 스트리밍 프로토콜로 채택됐다.
  • 마이그레이션: npx @ai-sdk/codemod upgrade 자동 코드모드 제공.
왜 읽나AI SDK 기반 채팅·에이전트 앱을 개발하거나 v4에서 v5로 마이그레이션하려는 개발자에게 핵심 아키텍처 변경사항과 새 API를 체계적으로 정리해 제공한다.
vercel-blog
Vercel Blog 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. AI / ML·LY CorporationLY Corporation·

    Grafana에서 자연어로 장애 원인을 분석하기: LLM 에이전트 기반 SRELens 개발기

    LY Corporation Home SRE 팀이 장애 분석 시 메트릭·로그·트레이스가 각각 다른 화면에 흩어져 있는 문제를 해결하기 위해 Grafana 플러그인 SRELens를 개발했다. SRELens는 LLM 에이전트가 자연어 질의를 받아 실제 관측성 데이터를 조회하고, 근거와 함께 장애 원인 후보를 정리해 주는 도구다. LGTM-P 스택(Loki·Grafana·Tempo·Mimir·Pyroscope)과 FlavaMCP 게이트웨이를 통합해 단일 채팅 인터페이스에서 멀티시그널 분석이 가능하다.

    #llm-app#mcp#observability+2