AI SDK는 모델 제공사에 관계없이 AI 애플리케이션, 기능, 프레임워크, 에이전트를 구축할 수 있는 TypeScript SDK입니다. AI SDK 7은 AI를 프로덕션 환경에서 실제로 운영하는 데 필요한 요소들을 집중적으로 다룹니다.
주간 다운로드 1,600만 건을 기록하고 있는 AI SDK는 모델 제공사에 관계없이 AI 애플리케이션, 기능, 프레임워크, 에이전트를 구축할 수 있는 TypeScript SDK입니다. Vercel의 오픈소스 에이전트 프레임워크인 eve도 바로 이 레이어 위에 구축되어 있습니다.
AI SDK 7은 에이전트 작업의 프로덕션 운영 역량을 다섯 가지 영역에 걸쳐 강화합니다.
에이전트 개발: 추론 제어, 툴 및 런타임 컨텍스트, 프로바이더 파일·스킬 지원, MCP 앱, 터미널 UI를 제공합니다.
에이전트 실행: 툴 승인, 내구성(WorkflowAgent), 타임아웃, 샌드박스 지원을 제공합니다.
에이전트 하네스 통합: Codex, Claude Code, Deep Agents, OpenCode, Pi 등을 지원합니다.
에이전트 관찰: 텔레메트리, Node.js 트레이싱 채널, 라이프사이클 이벤트, 성능 통계를 제공합니다.
텍스트 에이전트를 넘어서: 프로바이더에 종속되지 않는 실시간 음성 지원과 영상 생성 기능을 제공합니다.
올바르게 동작하는 에이전트를 만들려면 모델 추론, 툴 컨텍스트, 파일 처리를 세밀하게 제어할 수 있어야 합니다.
최신 프론티어 모델 대부분이 추론을 설정할 수 있도록 지원하지만, 프로바이더마다 API 노출 방식이 제각각입니다.
AI SDK 7은 generateText와 streamText에 reasoning 옵션을 도입해 이를 표준화했습니다. 프로바이더 네이티브 추론 설정에 자동으로 매핑되므로, 단 한 줄로 추론 강도를 조절할 수 있습니다. 더 상세한 프로바이더별 추론 설정이 필요할 때는 기존 방식대로 프로바이더 옵션을 직접 사용할 수도 있습니다.
자세한 내용은 추론 문서를 참고하세요.
이제 툴은 특정 에이전트나 애플리케이션과 별개로 개발되는 경우가 많습니다. 예를 들어 서드파티 업체들은 에이전트가 자사 API를 활용할 수 있도록 툴을 제공하는데, 이런 툴에는 API 키나 설정 값처럼 LLM이 생성하지 않는 추가 입력이 필요합니다.
AI SDK 7은 스키마를 통해 각 툴별로 지정할 수 있는 완전한 타입의 툴 컨텍스트를 추가했습니다. 컨텍스트는 해당 툴 범위로 제한되어, 서드파티 툴이 불필요한 컨텍스트에 접근하는 것을 방지합니다.
툴 컨텍스트에 대해 더 알아보세요.
복잡한 에이전트 루프에서는 프롬프트 조정, 모델 선택 등을 위해 prepareStep 내에서 접근하고 수정할 수 있는 변수가 필요한 경우가 많습니다.
AI SDK 7은 스텝 준비 및 툴 승인 함수에서 사용할 수 있는 타입이 지정된 런타임 컨텍스트를 도입했으며, 선택적 텔레메트리도 지원합니다. 이를 통해 더 많은 로직을 ToolLoopAgent에 캡슐화하고, 내부 로직이 포함된 에이전트를 그대로 공유할 수 있습니다.
런타임 컨텍스트에 대해 더 알아보세요.
PDF, 이미지, 데이터셋처럼 용량이 큰 파일을 다루는 에이전트 워크플로우에서는 파일을 매번 인라인으로 전송하면 속도가 느려지고 낭비가 됩니다. 특히 상태를 유지하지 않는 추론 환경에서는 같은 파일을 반복해서 전송해야 하는 문제가 발생합니다.
AI SDK 7은 최상위 uploadFile API를 추가해, 파일을 한 번만 업로드한 뒤 이후 모델 호출에서 가벼운 참조값만 전달할 수 있도록 했습니다. 동일한 데이터를 반복 업로드할 필요가 없어, 반복 실행이나 다단계 실행 시 추론 속도가 빨라지고 대역폭도 절약됩니다.
uploadFile은 파일 업로드 엔드포인트를 제공하는 모든 프로바이더와 함께 사용할 수 있습니다. 함수는 프로바이더 간에 호환되는 참조 객체를 반환합니다.
프로바이더 파일 업로드에 대해 더 알아보세요.
프로바이더가 관리하는 컨테이너 환경에 요청마다 스킬을 인라인으로 전송하는 것도 파일 인라인 전송과 동일한 오버헤드 문제를 안고 있습니다.
AI SDK 7은 최상위 uploadSkill API를 추가해, 스킬을 한 번만 업로드한 뒤 이후 추론 호출에서 참조값을 사용할 수 있게 했습니다. uploadFile와 마찬가지로 함수는 프로바이더 참조 객체를 반환합니다.
프로바이더 스킬 업로드에 대해 더 알아보세요.
MCP(Model Context Protocol)는 에이전트를 툴과 리소스에 연결하는 보편적인 방식으로 자리잡았습니다. 하지만 모든 툴이 모델에 노출될 필요는 없고, 일부 MCP 서버는 툴과 함께 특화된 UI를 제공해야 하는 경우도 있습니다.
AI SDK 7은 MCP 앱 지원을 추가했습니다. MCP 서버는 이제 모델에 공개되는 툴과 앱 전용 툴을 분리하고, 앱 메타데이터를 보존하며, 샌드박스 처리된 iframe 내에서 앱 UI를 렌더링할 수 있습니다. JSON-RPC 브리지가 툴, 리소스, 디스플레이 인터랙션을 연결합니다.
이를 통해 모델은 필요한 툴을 사용하면서도, 사용자에게는 검토·설정·인터랙션을 위한 앱 전용 인터페이스를 제공하는 더 풍부한 에이전트 경험을 구축할 수 있습니다.
지금 바로 AI SDK로 첫 번째 MCP 앱을 만들어 보세요.
에이전트를 개발할 때 전체 앱을 만들지 않고 빠르게 테스트할 방법이 필요합니다. AI SDK 7은 터미널 UI(TUI) 패키지를 추가해, 몇 줄의 코드만으로 에이전트를 실행할 수 있도록 했습니다.
TUI는 인터랙티브하게 동작하며, 추론과 툴을 지원하고 마크다운을 서식이 적용된 텍스트로 렌더링합니다.
터미널 에이전트 만들기에 대해 더 알아보세요.
에이전트가 점점 더 자율적으로, 그리고 오랜 시간 동안 실행될수록 승인, 내구성, 샌드박싱, 견고성에 대한 요구도 함께 높아집니다.
AI SDK 7은 에이전트 수준의 툴 승인을 지원합니다. 자동 승인이나 사람이 직접 개입하는 방식 모두 가능하며, 다음과 같은 승인 유형을 제공합니다.
특정 툴에 대한 간단한 user-approval
특정 툴에 대한 툴 승인 함수 — 자동 승인, 자동 거부, 또는 사용자 승인 전달
모든 툴에 적용되는 범용 툴 승인 함수
툴 승인은 ToolLoopAgent, generateText, streamText에서 정의합니다. 특정 툴의 사용 시나리오에 따라 승인 필요 여부가 달라지기 때문입니다.
위험도가 높은 워크플로우를 위해 AI SDK 7은 옵트인 방식의 HMAC 서명 툴 승인을 도입해 위조 승인을 방지합니다. 또한 실행을 재개하기 전에 툴 입력과 정책을 재검증하는 방식으로 리플레이 동작도 강화했습니다.
툴 승인 작동 방식을 확인해 보세요.
에이전트 실행이 여러 단계에 걸쳐 진행되거나 사람의 승인을 기다리는 도중에 프로세스가 재시작되거나 배포가 이루어지면 처음부터 다시 시작해야 합니다. AI SDK 7은 @ai-sdk/workflow와 WorkflowAgent을 도입해, 프로세스 재시작·배포·중단·지연된 승인 상황에서도 에이전트 실행을 내구성 있게 이어갈 수 있도록 했습니다.
WorkflowAgent은 워크플로우 기반 스트리밍, 툴, 승인, 콜백, prepareCall, 그리고 워크플로우 스텝 경계를 넘나드는 프로바이더 모델 직렬화를 지원합니다. 공유 에이전트 상태를 위한 타입이 지정된 런타임 컨텍스트와 안정적인 텔레메트리도 지원합니다.
콜백에는 이제 스텝 번호, 이전 결과, 소요 시간, 성공·실패 정보 등 더 풍부한 실행 데이터가 포함됩니다. 유효하지 않은 툴 호출은 실행 없이 보존되며, 툴 toModelOutput 변환 시 UI와 콜백을 위해 원본 출력을 유지할 수 있습니다.
WorkflowAgent로 에이전트 구축하기에 대해 알아보세요.
에이전트는 단순한 요청보다 다양한 방식으로 멈출 수 있습니다. 프로바이더가 스트림을 열고 청크 전송을 멈추거나, 툴이 응답하지 않거나, 다단계 실행이 전체 예산을 초과하는 경우가 그 예입니다.
AI SDK 7은 텍스트 생성 및 에이전트 API 전반에 걸쳐 총 시간, 스텝별, 청크별, 툴별 제한을 포함한 타임아웃 설정을 기본 기능으로 추가했습니다. 타임아웃 중단에는 TimeoutError이 사용되며, 중단 이유는 스트림 및 UI 프로토콜 전체에 전파됩니다.
타임아웃에 대해 더 알아보세요.
셸 명령 실행, 파일 읽기·쓰기, 생성된 코드 실행 등을 수행하는 에이전트는 일관된 실행 환경이 필요합니다. 하지만 로컬 개발, CI, 프로덕션 환경에 따라 기반 샌드박스가 달라지는 경우가 많습니다. AI SDK 7은 툴과 에이전트에서 이식 가능한 명령 실행을 위한 SandboxSession 추상화를 기본 기능으로 추가했습니다. 특정 샌드박스에 종속되지 않고 툴을 개발할 수 있으며, 샌드박스를 인식하는 모든 툴을 어떤 샌드박스 프로바이더와도 함께 사용할 수 있습니다.
Vercel Sandbox와 같은 샌드박스 환경이 이 용도에 적합합니다.
에이전트 런타임은 단일 애플리케이션 서버를 넘어 확장되고 있습니다. 이제 팀들은 동일한 에이전트 로직을 코딩 환경, 호스팅 샌드박스, 로컬 세션, 서드파티 하네스 어디서든 실행하고 싶어합니다.
AI SDK 7은 실험적 하네스 추상화와 HarnessAgent를 도입합니다. Claude Code, Codex, Pi처럼 검증된 에이전트 하네스를 단일 API로 실행할 수 있습니다. 하네스는 실행할 샌드박스, 커스텀 인스트럭션, 스킬, 툴을 각각 독립적으로 설정할 수 있습니다. 일관된 인터페이스로 검증된 하네스를 실행하고, 통합 레이어를 변경하지 않고도 하네스를 교체할 수 있습니다.
내부적으로는 v1 어댑터 스펙, 브리지 지원, 세션 생성 및 재개를 위한 확장된 샌드박스 세션 프리미티브로 구성됩니다. 하네스 세션은 일시 중지하고 재개할 수 있으며, 실행 중인 개별 턴도 중단하고 이어서 진행할 수 있습니다.
HarnessAgent은 AI SDK의 Agent 인터페이스를 구현하므로, generate와 stream의 반환값이 기존 AI SDK 통합과 완전히 호환되며, 별도 연결 없이 useChat()과 새로운 TUI를 바로 사용할 수 있습니다.
AI SDK 하네스에 대해 더 알아보세요.
프로덕션에서 에이전트가 어떻게 동작하는지 파악하기란 쉽지 않습니다. AI SDK 7은 에이전트 구축의 핵심 요소로 관찰 가능성(observability)을 전면에 내세웁니다.
AI SDK 7은 단일하고 확장 가능한 통합 시스템을 중심으로 텔레메트리를 전면 개편했습니다. 매번 generateText이나 streamText 호출에 라이프사이클 콜백을 일일이 연결하는 대신, 애플리케이션 시작 시 텔레메트리를 한 번만 등록하면 됩니다.
이번 개편에 포함된 내용은 다음과 같습니다.
서드파티 프로바이더 통합을 위한 전용 텔레메트리 인터페이스
단일 등록으로 모든 AI SDK 함수를 포괄하는 전역 커버리지
최신 GenAI 시맨틱 컨벤션을 활용한 선택적 OpenTelemetry 통합
Node.js 트레이싱 채널 지원
관찰 가능성 통합: Datadog, Langfuse, Braintrust, Raindrop, Sentry, Laminar, Langsmith.
트레이스에는 이제 루트 생성, 각 모델 호출, 개별 스텝, 툴 실행, 임베딩, 리랭킹, 사용량, 오류, 선택된 런타임·툴 컨텍스트 등 AI 작업의 전체 흐름이 담깁니다.
자세한 내용은 AI SDK 텔레메트리 문서에서 확인하세요.
AI SDK 7은 node:diagnostics_channel을 통해 Node.js 트레이싱 채널을 지원합니다. SDK는 generateText, streamText, 모델 호출, 툴 실행, 임베딩, 리랭킹에 대한 구조화된 텔레메트리 이벤트를 ai:telemetry 채널에 발행합니다.
관찰 가능성 프로바이더는 인스트루멘테이션 패키지를 통해 한 번만 구독하면, 스트리밍 응답과 툴 호출 전반에서 비동기 컨텍스트를 보존하면서 AI SDK 활동을 자동으로 트레이스로 변환할 수 있습니다.
트레이싱 채널 문서에서 더 알아보세요.
AI SDK 7은 모델 출력, 스트리밍 동작, 툴 실행에 대한 스텝별 성능 통계를 추가했습니다. 이제 "모델이 응답을 시작하기까지 얼마나 걸렸나?", "토큰은 얼마나 빠르게 도착했나?", "가장 오래 걸린 툴은 무엇인가?" 같은 질문에 답할 수 있습니다.
성능 통계에 대해 더 알아보세요.
프로덕션 에이전트는 라이프사이클 훅이 필요합니다. 상태 기록, 과금, 디버깅 모두 실행·스텝·툴이 정확히 언제 시작하고 끝나는지 알아야 하기 때문입니다. AI SDK 7은 모델 호출, 에이전트, 툴, 기타 함수 전반에서 콜백이 일관되게 실행되도록 해, 각각이 언제 시작됐는지, 어떤 모델이 실행됐는지, 토큰을 얼마나 사용했는지, 어떻게 종료됐는지를 추적할 수 있습니다.
자세한 내용은 라이프사이클 콜백 문서에서 확인하세요.
실시간 모델 API는 강력하지만, 세션, 오디오, 툴, 브라우저 인증을 프로바이더마다 다른 방식으로 노출합니다.
AI SDK 7은 브라우저 WebSocket 직접 세션을 위한 실험적 프로바이더 비종속 실시간 지원을 추가했습니다. 서버 측 임시 토큰 생성, OpenAI·Google·xAI 프로바이더 구현, 그리고 UIMessage[]를 반환하는 React 실시간 훅을 지원합니다.
실시간 세션은 오디오 전사와 클라이언트 주도 툴 호출을 지원하므로, 특정 프로바이더의 이벤트 형식에 UI를 묶지 않고도 음성 에이전트, 협업 코파일럿, 저지연 인터랙티브 인터페이스를 구축할 수 있습니다.
AI Gateway도 gateway.experimental_realtime()를 통해 정규화된 실시간 세션을 지원하며, WebSocket 서브프로토콜 인증, 모델 쿼리 선택, 검증된 프로바이더 옵션을 제공합니다.
실시간에 대해 더 알아보세요.
AI 애플리케이션은 텍스트와 이미지를 넘어 확장되고 있습니다. AI SDK 7은 실험적 generateVideo 지원을 도입했으며, fal, Google AI Studio, Google Vertex, Replicate 프로바이더 구현을 제공합니다.
AI SDK 7의 영상 생성은 영상 전용 모델 해석을 사용하고, 기본 프로바이더를 통한 문자열 기반 모델 조회를 지원하며, 설정 가능한 크기 제한과 중단 지원을 갖춘 안전한 다운로드 처리 기능을 포함합니다.
영상 생성에 대해 더 알아보세요.
명령어 하나로 AI SDK 7을 설치하세요.
AI SDK 7은 Vercel 코어 팀(Gregor, Lars, Felix, Aayush, Josh, Nico)과 훌륭한 커뮤니티 기여자들이 함께 만든 결과물입니다.
0xr3ngar, 31Carlton7, A-Vamshi, Abdulwadood-zawity, abhicris, adithya-tako, AhmadYasser1, ahmedrowaihi, allenzhou101, anaclumos, arnaugomez, auscaster, AVtheking, B-Step62, bb220, ben-vargas, benyebai, bittere, blurrah, bolaabanjo, boylec, BrianHung, BrianP8701, chenxin-yan, christian-bromann, Christian-Sidak, cipher416, CloudFaye, codewarnab, codicecustode, codylittle, cristiandrei1234, csidak, ctate, cyphercodes, defrex, dflynn15, dinmukhamedm, dnukumamras, DongSeonYoo, dukex, edawerd, EdwardIrby, edwardwc, ellis-driscoll, embedder-dev, etairl, EurFelux, eyueldk, fahe1em1, Falven, fran3cc, gdborton, genmin, geraint0923, Ghitahouir, GidianB, grant0417, gsdv, guillemwilly, hank9999, harpreetarora, haydenbleasel, he-yufeng, heiwen, hkd987, hntrl, http-samc, i5d6, ismaelrumzan, Jaaneek, jaderiverstokes, jakobhoeg, Jaksenc, jarod, jaydeep-pipaliya, jeremyphilemon, jerilynzheng, jerome-benoit, jferrettiboke, jlsandri, JoanLaRosa, joaopedroassad, JohnnyHBon, josh-williams, jovanwongzixi, JulesGuesnon, Kage18, kagura-agent, kairosci, kaizen403, karthik-idikuda, kimchnn, kkawamu1, kkdawkins, leog25, leothorp, liaoliaojun, lihuimingxs, Mahendradeokar, MarcACard, marcusschiesser, markmcd, max-programming, MaxwellCalkin, mclenhard, MehediH, Melkeydev, michael-han-dev, michaelcummings12, Mmartinrusso, monadoid, montyanderson, more-by-more, mrpaaradox, msullivan, muniter, muraliavarma, murataslan1, mvanhorn, myprototypewhat, Nezz, nicoloboschi, nielskaspers, Nutlope, nwalters512, ohansFavour, ousugo, pablof7z, Pash10g, patrikdevlin, paulelliotco, pavel-y-ivanov, PierreLeGuen, posva, Pranav-Wadhwa, privatenumber, quuu, R-Taneja, raphaeleidus, reynkonig, Ricardo-M-L, richardsolomou, robechun, rubdos, samjbobb, SamyPesse, seojcarlos, shaper, shrey150, shubham-021, shujanislam, ShyamSathish005, sleitor, Subr1ata, syeddhasnainn, sylviezhang37, szymonrybczak, t-mdo, techwraith, theQuert, thestonechat, timvucina-soniox, tomdale, tresorama, tsuzaki430, turisanapo, Und3rf10w, undo76, ushiromiya-lion, visyat, wong2, Xiang-CH, xlianghang, zapagenrevdale, Zawwarsami16, zirkelc, zxuhan.
GitHub에서 보내주신 피드백, 버그 리포트, 풀 리퀘스트 모두 이번 릴리스를 만드는 데 큰 힘이 되었습니다. 새로운 기능으로 무엇을 만들어 나가실지 기대됩니다!