AI SDK(Vercel AI SDK)packages 包结构全解:核心包、Provider 与 UI 框架集成包导航 AI SDKVercel AI SDKpackages 包结构全解核心包、Provider 与 UI 框架集成包导航【免费下载链接】aiThe AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and agents项目地址: https://gitcode.com/GitHub_Trending/ai/ai本文是 AI SDK 仓库中 contributing/packages.md 的深度展开指南系统梳理 monorepo 中packages/目录下的包划分逻辑核心包ai、ai-sdk/provider、ai-sdk/provider-utils、ai-sdk/codemod、数十个 AI/LLM Provider 包以及 React/Vue/Svelte/Angular/RSC 等 UI 框架集成包。读完本文你将理解每个 npm 包在整个 SDK 分层架构中的职责边界、发布命名规律以及新增包时必须同步登记到根tsconfig.json的原因与做法。AI SDK 是一个以 TypeScript 为核心的 AI 应用构建工具包整个仓库采用 pnpm workspace TypeScript project references 的 monorepo 布局而packages/目录正是所有可发布 npm 包的家。本文档contributing/packages.md提供了理解这个包生态的地图下文将逐层展开并结合 tsconfig.json、pnpm-workspace.yaml 及各个包的 package.json 给出源码级佐证。新增包的第一守则登记到根 tsconfig.json原文档开门见山在packages下新增包时必须把它加入根目录的/tsconfig.json。这是保证 TypeScript 项目引用project references能发现并编译新包的硬性要求。根 tsconfig.json 的结构清晰地体现了这一点顶层references数组中逐条列出了packages/*下每一个包的path例如{ references: [ { path: packages/ai }, { path: packages/openai }, { path: packages/provider }, { path: packages/provider-utils }, { path: packages/react }, { path: packages/rsc }, { path: packages/vue }, { path: packages/svelte }, { path: packages/angular }, { path: packages/codemod } // ……其余 50 个包以及 tools/integration-tests ], include: [], compilerOptions: { strictNullChecks: true } }从实际内容看references覆盖了 60 余个路径除packages/*外还包含 tools/integration-tests而include: []表明根 tsconfig 本身不编译任何源文件只扮演项目引用编排者的角色。这意味着新增包后若忘记登记tsc --build或仓库的type-check流程将无法把新包纳入类型检查与构建图各包之间的跨包导入例如ai依赖ai-sdk/provider依赖 workspace 协议与 project references 协同工作。与此配套的是 pnpm-workspace.yaml 中的packages:声明packages: - apps/* - packages/* - tools/* - examples/* - packages/rsc/tests/e2e/next-serverpackages/*通配符意味着放在该目录下的任何新包都会自动被 pnpm workspace 识别并参与依赖安装与workspace:*版本链接因此加入 workspace这一步是隐式的真正需要显式登记的就是根tsconfig.json的references。核心包Core PackagesSDK 的分层骨架原文档把四个包划为核心包它们构成了整个 SDK 的分层架构包目录npm 包名职责packages/aiai主包聚合全部能力packages/providerai-sdk/providerProvider 规范接口定义packages/provider-utilsai-sdk/provider-utilsProvider 与 ai 共享的工具代码packages/codemodai-sdk/codemod大版本升级的自动化迁移ai面向用户的唯一入口ai是开发者日常npm install ai/import { generateText } from ai的主包。从 packages/ai/package.json 可以确认其关键事实当前版本为7.0.97description明确通过单一接口面向任何模型构建应用可直连 OpenAI、Anthropic、Google 或经由 Vercel AI Gateway运行时依赖恰好是另外两个核心包ai-sdk/gateway、ai-sdk/provider、ai-sdk/provider-utils均以workspace:*链接印证了主包聚合底层能力的定位peerDependencies要求zod^3.25.76 || ^4.1.8即结构化输出/工具参数校验依赖外部 Zod导出还细分了./internal内部 API与./test测试辅助两个子路径从 packages/ai/index.ts 可见入口只是简单 re-export./srcprepack脚本会把 content/docs 复制进包内docs/目录随包发布因此 npm 上的ai包自带文档。ai-sdk/provider一切规范的原点packages/provider/package.json 显示该包当前版本4.0.13运行时依赖极少仅json-schema因为它承载的是接口与类型规范——语言模型、嵌入模型、流式传输等能力被抽象成稳定契约供所有 Provider 包实现。它是分层架构中最底层、最稳定的依赖ai、provider-utils以及每一个ai-sdk/*-provider包都依赖它。ai-sdk/provider-utils共享实现细节packages/provider-utils/package.json版本5.0.39在 provider 规范之上提供共享实现从依赖列表可以看到它涵盖的领域eventsource-parserSSE 流解析、undiciHTTP 客户端、standard-schema/spec与workflow/serdeschema 与序列化并同样通过./test子路径暴露测试工具。凡是在多个 Provider 之间需要复用的逻辑请求构建、响应解析、错误规范化、流处理都可以预期沉淀在这里。ai-sdk/codemod迁移即命令行packages/codemod/package.json 定义了bin: { codemod: ./dist/bin/codemod.js }因此可通过 npx 直接调用。其依赖jscodeshiftAST 变换、commanderCLI 参数、cli-progress进度条、semver配合 packages/codemod/README.md 中的用法# 一键运行全部适用的迁移 npx ai-sdk/codemod upgrade # 针对特定大版本 npx ai-sdk/codemod v4 npx ai-sdk/codemod v5 npx ai-sdk/codemod v6 # 单独运行某个 codemod作用于文件/目录/整个项目 npx ai-sdk/codemod v4/remove-experimental-ai-fn-exports src/app/api/chat/route.ts npx ai-sdk/codemod v4/replace-baseurl src/lib/ npx ai-sdk/codemod v5/rename-format-stream-part .这套 codemod 体系与大版本升级流程绑定相关流程见 contributing/releases.md是 SDK 保证用户平滑跨越大版本的关键工具。AI/LLM Provider 包一个模型服务商一个包原文档的核心篇幅是一张 Provider 清单。下表完整继承原文档信息并补充了各包在仓库中的实际位置命名规律目录名与 npm 名一一对应文本 / 对话 / 多模态模型 Provider包目录npm 包名Providerpackages/openaiai-sdk/openaiOpenAIpackages/anthropicai-sdk/anthropicAnthropic (Claude)packages/googleai-sdk/googleGoogle AI (Gemini)packages/google-vertexai-sdk/google-vertexGoogle Vertex AIpackages/azureai-sdk/azureAzure OpenAIpackages/amazon-bedrockai-sdk/amazon-bedrockAmazon Bedrockpackages/cohereai-sdk/cohereCoherepackages/mistralai-sdk/mistralMistral AIpackages/groqai-sdk/groqGroqpackages/cerebrasai-sdk/cerebrasCerebraspackages/deepinfraai-sdk/deepinfraDeepInfrapackages/deepseekai-sdk/deepseekDeepSeekpackages/fireworksai-sdk/fireworksFireworks AIpackages/perplexityai-sdk/perplexityPerplexitypackages/replicateai-sdk/replicateReplicatepackages/togetheraiai-sdk/togetheraiTogether AIpackages/xaiai-sdk/xaixAI (Grok)packages/gatewayai-sdk/gatewayAI Gatewaypackages/openai-compatibleai-sdk/openai-compatibleOpenAI 兼容协议的服务商语音 / 音频 / 视频 / 多模态能力 Provider包目录npm 包名能力方向packages/elevenlabsai-sdk/elevenlabsElevenLabs语音合成packages/assemblyaiai-sdk/assemblyaiAssemblyAI语音转写packages/deepgramai-sdk/deepgramDeepgram语音packages/gladiaai-sdk/gladiaGladia语音packages/revaiai-sdk/revaiRev.ai语音packages/lumaai-sdk/lumaLuma视频packages/falai-sdk/falFal.aipackages/humeai-sdk/humeHume AI生态集成与 Schema 工具包包目录npm 包名集成对象packages/langchainai-sdk/langchainLangChain 集成packages/llamaindexai-sdk/llamaindexLlamaIndex 集成packages/valibotai-sdk/valibotValibot schema 校验从 packages/openai/package.json 可以观察 Provider 包的通用骨架依赖ai-sdk/provider与ai-sdk/provider-utilsworkspace:*以zod为 peer dependency同时提供./internal子路径导出其prepack会把 content/providers/01-ai-sdk-providers/03-openai.mdx 拷贝进包内docs/即每个 Provider 包随包发布各自的文档。命名规律总结除主包ai外所有包统一使用ai-sdk/name作用域目录名就是 npm 名去掉ai-sdk/前缀后的部分如openai、amazon-bedrock、openai-compatible这一一对应关系让仓库导航与发布维护都非常直观。仓库实际还包含比原文档表格更多的 Provider 包例如 packages/alibaba、packages/bytedance、packages/moonshotai、packages/minimax、packages/huggingface、packages/baseten、packages/cartesia、packages/fish-audio、packages/gmicloud、packages/klingai、packages/quiverai、packages/prodia、packages/black-forest-labs、packages/voyage、packages/zai、packages/open-responses 等从 tsconfig.json 的references即可枚举全量列表——这进一步说明根 tsconfig.json 就是包清单这一设计。UI 框架集成包同一套 AI 能力五种前端形态包目录npm 包名框架 / 形态packages/reactai-sdk/reactReact hooks 与工具函数packages/vueai-sdk/vueVue composablespackages/svelteai-sdk/svelteSvelte stores 与工具函数packages/angularai-sdk/angularAngular servicespackages/rscai-sdk/rscReact Server Components这些包的职责不是实现模型调用那属于ai与 Provider 包而是把ai的流式生成、工具调用、消息管理等能力封装为各框架惯用的形态React 的 hooks、Vue 的 composables、Svelte 的 stores、Angular 的 services、RSC 的 server components 集成。以 packages/react/package.json 为例可以确认其依赖关系ai、ai-sdk/provider、ai-sdk/provider-utils、ai-sdk/mcp以及swr数据获取/缓存与throttleit节流peerDependencies支持react ^18 || ~19.0.1 || ~19.1.2 || ^19.2.1。也就是说UI 集成包位于依赖链上游建立在主包与 Provider 层之上形成主包负责核心逻辑 → UI 包负责框架适配的清晰分层。仓库还包含其他 UI 形态的配套包如 packages/tui终端 UI、packages/svelte 等完整的包目录以根 tsconfig.json 的references为准。从文档到仓库如何核对与深入看包清单根 tsconfig.json 的references是权威的包枚举新增包必须在此登记看工作区pnpm-workspace.yaml 定义了packages/*通配所有包自动进入 workspace依赖以workspace:*互链看单个包每个包目录下的 package.json 给出版本、导出子路径.,./internal,./test、依赖与发布配置publishConfig.provenance表明支持带来源证明的发布看代码组织源码统一位于各包src/下测试与__snapshots__随包排除见各 package.json 的files字段。如果想进一步了解 Provider 包应当如何实现与新增可继续阅读 contributing/add-new-provider.md含新包版本号从2.0.0起步、预发布模式的注意事项与 contributing/providers.md想了解命名约定可参考 contributing/naming-conventions.md大版本迁移与发布流程见 contributing/releases.md。【免费下载链接】aiThe AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and agents项目地址: https://gitcode.com/GitHub_Trending/ai/ai创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考