AI SDK Core
- AI SDK Core 可以理解为Vercel AI SDK 里运行在服务端的“模型能力层
核心能力
- 文本生成
- 结构化数据生成
- 工具调用
- 多模型 Provider 接入
- Embedding
- 错误处理
- 测试
- Telemetry
记忆理解:
Generating Text = 让模型说话
Structured Data = 让模型按 JSON 输出
Tool Calling = 让模型调用你的函数做事
Prompt Engineering = 告诉模型该怎么做
Settings = 控制模型生成行为
Embeddings = 把文本变向量,做 RAG 检索
Image/Video = 生成多媒体
Transcription = 语音转文字
Speech = 文字转语音
Provider Management = 管理不同模型供应商
Middleware = 给模型调用加拦截器/增强层
Error Handling = 处理失败和异常
Testing = 用 mock 测 AI 逻辑
Telemetry = 记录和观察 AI 调用过程
学习顺序:
1. Generating Text / streamText
2. useChat 前端接入
3. Tool Calling
4. Embeddings
5. RAG
6. Structured Data
7. Error Handling
8. Telemetry / Testing
9. Middleware / Provider Management
单词理解:
- Prompt Engineering :提示词工程
- Embeddings:向量嵌入 / 文本向量化
Generating Text:文本生成
常用API
generateText()
streamText()
| API | 场景 | 是否流式 |
|---|---|---|
generateText | 总结、分类、脚本任务、后台任务 | 否 |
streamText | 聊天、Agent、前端实时输出 | 是 |
Generating Structured Data:结构化数据生成
这个模块解决的问题是:
- 不要让模型返回一段自由文本,而是返回你规定好的 JSON 结构
常用API
generateObject()
streamObject()
场景:
- 表单提取
- 信息抽取
- RAG 引用来源结构化
- Agent 执行计划生成
Tool Calling:工具调用
- 普通 Chatbot 只能回答。Agent 要能做事,比如:
查数据库
调用接口
搜索知识库
查询订单
创建任务
发邮件
操作业务系统
- AI SDK Core 里的
tool()就是把你的业务函数暴露给模型
Prompt Engineering:提示词工程
- 这个模块不是教你“写玄学 prompt”,而是告诉你如何在 AI SDK 的调用结构里组织
system
prompt
messages
tool description
tool input schema description
few-shot examples
- 尤其是 Agent 应用里,prompt 不只是写给模型看的自然语言,还要影响:
什么时候调用工具
如何使用工具结果
找不到答案时怎么处理
是否允许编造
输出格式是什么
比如 RAG 系统里常见 prompt:
system: `
你是企业知识库助手。
只能根据工具返回的知识库内容回答。
如果没有找到相关内容,直接说知识库中没有足够信息。
不要编造。
`
Settings:模型参数设置
- 这个模块是控制模型生成行为的。
常见参数:
temperaturetopPmaxOutputTokensfrequencyPenaltypresencePenaltystopSequencesseedmaxRetriesabortSignal
常见理解:
| 参数 | 作用 |
|---|---|
temperature | 越高越发散,越低越稳定 |
maxOutputTokens | 限制输出长度 |
maxRetries | 调用失败后重试次数 |
abortSignal | 中断生成 |
stopSequences | 遇到指定文本停止生成 |
seed | 尽量让结果可复现,取决于模型支持 |
Embeddings:向量化
- 这是做 RAG 必须掌握的模块。
- Embedding 的作用是把文本转成向量:
- Embeddings 可以把词、短语或图片表示成高维空间中的向量,相似内容在向量空间里距离更近;AI SDK 提供
embed用于单个值的向量化
常用 API:
embed()embedMany()
RAG 里一般这样用:
文档入库:文档 → chunk → embedMany → 存入向量数据库用户提问:question → embed → 向量检索 → 找到相关 chunk → 交给 LLM 回答
Image Generation:图片生成
- 这个模块用于通过模型生成图片。
Video Generation:视频生成
- 这个模块用于视频生成模型。
Transcription:语音转文本
- 这个模块是音频转文字。
Speech:文本转语音
- 这个模块是 TTS,文本转语音。
Provider Management:模型供应商管理
- 这是AI SDK 的一个核心价值是:
- 用统一 API 接不同模型
比如你可以切换:
OpenAIAnthropicGoogleMistralDeepSeekxAIVercel AI Gateway
Middleware:中间件
- Middleware 是高级能力。
- 它可以包裹模型调用,在请求前后做增强。
- 官方文档提到,middleware 可以实现
transformParams、wrapGenerate、wrapStream,用于在传给模型前转换参数,或包裹生成和流式生成过程
常见用途:
日志记录自动注入 system prompt敏感词过滤guardrails缓存模型 fallback成本统计请求改写输出后处理
Error Handling:错误处理
- AI 应用里错误很多:
模型超时Provider 限流API key 错误JSON 结构不合法工具调用失败网络错误用户取消生成上下文过长
Testing:测试
AI 调用有几个问题:
慢贵结果不稳定依赖外部模型服务
所以不能所有测试都真的调模型。
- 官方文档说明 AI SDK Core 提供 mock providers 和 test helpers,可以让你在不真实调用模型的情况下,控制 AI SDK 输出,从而做可重复、确定性的单元测试
适合测试:
工具是否被正确调用RAG 检索结果是否被拼进 prompt结构化输出解析是否正确错误是否被正确处理UI 是否正确展示 tool result
Telemetry:可观测性
- Telemetry 用来观察 AI 调用过程。
一次请求花了多久用了多少 token调用了哪些工具每一步输入输出是什么哪一步失败了模型成本是多少
- 做 Agent 时,Telemetry 很重要,因为 Agent 不是一次简单调用,而可能是:
Step 1: 理解用户问题Step 2: 调用知识库检索Step 3: 调用订单接口Step 4: 生成最终回答
没有 tracing,很难排查问题。