AI SDK Core 是一份围绕 Vercel AI SDK 的后端 AI 开发资料,主要针对 v5 与 v6(v6 于 2026 年 1 月标记为稳定,最新版本 ai@6.0.26)。
一、用途 用于在 JavaScript/TypeScript 后端项目中调用大语言模型,完成文本生成、结构化输出、流式响应、多模态处理与工具调用等任务。
二、安装 npm install ai @ai-sdk/openai @ai-sdk/anthropic @ai-sdk/google zod
三、AI SDK 6 的 Output API 资料指出,generateObject() 与 streamObject() 已废弃并将在未来版本中移除,应改用新的 Output API。使用 generateText 配合 output 参数:
import { generateText, Output } from 'ai';
const result = await generateText({ model: openai('gpt-5'), output: Output.object({ schema: z.object({ name: z.string(), age: z.number() }) }), prompt: 'Generate a person', });
console.log(result.object); // { name: "Alice", age: 30 }
Output 类型包括:
- Output.object({ schema }):带 Zod 校验的对象
- Output.array({ schema }):对象数组
- Output.choice({ choices }):枚举选择
- Output.text():纯文本
- Output.json():无 schema 校验的非结构化 JSON
流式场景下,streamText 同样使用 output,并通过 result.objectStream 逐段获取、result.object 获取最终对象。
四、v6 新增能力
- Agent 抽象:通过 ToolLoopAgent 类统一构建智能体,可控制执行流程、工具循环与状态管理,替代手动编排工具调用。
- 工具执行审批(Human-in-the-Loop):可为工具调用设置 needsApproval,支持基于输入动态审批(如支付金额大于 1000 时审批)。资料给出的最佳实践包括:对风险依参数而定的操作使用动态审批;对删除、修改、购买等破坏性操作始终要求审批;对安全读取操作不要求审批;添加系统指令“工具执行未被批准时不要重试”;为审批请求设置超时;存储用户对重复操作的偏好。
- RAG 重排序:使用 rerank() 函数,示例模型为 cohere.reranker('rerank-v3.5'),支持 query、documents、topK 参数。
- MCP 工具(Model Context Protocol):通过 experimental_createMCPClient 创建客户端并获取工具。资料警告 MCP 工具有生产风险,且存在已知问题——MCP 工具在流式模式下可能无法执行,建议改用 generateText() 而非 streamText()。
- 语言模型中间件:wrapLanguageModel 配合 extractReasoningMiddleware,可从 <think> 标签中自动提取推理内容。
- OpenTelemetry 遥测:通过 experimental_telemetry 配置 isEnabled、functionId、metadata、recordInputs、recordOutputs。
五、MCP 安全 资料强调动态 MCP 工具在生产环境存在安全风险:工具定义会进入智能体提示词、可能意外变更、被攻破的 MCP 服务器可注入恶意提示、新工具可提升用户权限。提供的解决方案是生成静态工具定义:
npm install -g mcp-to-ai-sdk npx mcp-to-ai-sdk generate stdio 'npx -y @modelcontextprotocol/server-filesystem'
之后导入生成的静态工具,审阅并纳入版本控制,仅在有意识地更新时变更。
六、最新模型(2025-2026) 资料列出可通过各 provider 调用的模型:
- OpenAI:gpt-5.2(400k 上下文、128k 输出)、gpt-5.1、gpt-5、o3、o3-pro、o3-mini、o4-mini
- Anthropic:claude-sonnet-4-5-20250929、claude-opus-4-1-20250805、claude-haiku-4-5-20251015 等;文中给出 Opus 4 与 Sonnet 4 的每百万 token 价格($15/$75、$3/$15)
- Google:gemini-2.5-pro、gemini-2.5-flash、gemini-2.5-flash-lite
七、核心函数与多模态
- 文本生成:generateText()、streamText()
- 语音合成:experimental_generateSpeech,示例模型 openai.speech('tts-1-hd'),返回 result.audio(ArrayBuffer);支持 OpenAI、ElevenLabs、LMNT、Hume
- 语音转写:experimental_transcribe,示例模型 openai.transcription('whisper-1'),返回 text 与带时间戳的 segments;支持 OpenAI、ElevenLabs、Deepgram、AssemblyAI、Groq、Rev.ai
- 图像生成:generateImage,示例模型 openai.image('dall-e-3'),支持 size、n 参数,返回图片 URL 或 base64;支持 OpenAI、Google、Fal AI、Black Forest Labs(Flux)、Luma AI、Replicate
- 嵌入:embed、embedMany、cosineSimilarity;embedMany 支持 maxParallelCalls 并行;支持 OpenAI、Google、Cohere、Voyage AI、Mistral、Amazon Bedrock
- 多模态提示:messages 中可传入 file(如 application/pdf)或 image 内容块
八、v5 流式响应方法
- toTextStreamResponse():纯文本分块,用于简单文本流
- toUIMessageStreamResponse():带 JSON 事件的 SSE,用于聊天界面(text-start、text-delta、text-end、finish) 资料特别说明 toDataStreamResponse() 在 AI SDK v5 中并不存在(常见误解)。
九、版本兼容与启动优化
- workers-ai-provider@2.x 需要 AI SDK v5,而非 v4: npm install ai@^5.0.0 workers-ai-provider@^2.0.0 zod@^3.25.0
- Zod 版本要求 zod@^3.25.0 或更高,否则报 “Could not resolve zod/v4”。
- Cloudflare Workers 启动时间问题:为避免 AI SDK v5 + Zod 导致的超过 270ms 启动开销,建议在路由处理函数内部延迟动态导入 provider,减少顶层 Zod schema,并用 Wrangler 监控启动时间。
十、v5 工具调用变化
- parameters → inputSchema
- 工具属性 args → input、result → output
- 移除 ToolExecutionError,改为 tool-error 内容块
- 移除 maxSteps,改用 stopWhen(stepCountIs(n))
- 新增动态工具与 Agent 类
十一、v4 到 v5 迁移 破坏性变更包括:maxTokens → maxOutputTokens;providerMetadata → providerOptions;CoreMessage → ModelMessage;Message → UIMessage;convertToCoreMessages → convertToModelMessages;消息结构改为 parts 数组;流式架构改为 start/delta/end 生命周期;工具流式默认开启;包路径调整(ai/rsc → @ai-sdk/rsc,ai/react → @ai-sdk/react,LangChainAdapter → @ai-sdk/langchain)。资料提供了 v4 与 v5 的对照代码示例,并列出迁移检查清单,可用 npx ai migrate 自动处理大部分变更。
官方文档:https://ai-sdk.dev/docs AI SDK Core 文档:https://ai-sdk.dev/docs/ai-sdk-core
关于本资料的收费、价格与授权方式,除文中列出的模型调用单价外,暂未提供。