跳到主要内容

AI SDK Core

  • AI SDK Core 可以理解为Vercel AI SDK 里运行在服务端的“模型能力层

核心能力​

  • 文本生成
  • 结构化数据生成
  • 工具调用
  • 多模型 Provider 接入
  • Embedding
  • 错误处理
  • 测试
  • Telemetry

记忆理解:

text
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 调用过程

学习顺序:

bash
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

ts
generateText()
streamText()
API场景是否流式
generateText总结、分类、脚本任务、后台任务否
streamText聊天、Agent、前端实时输出是

Generating Structured Data:结构化数据生成​

这个模块解决的问题是:

  • 不要让模型返回一段自由文本,而是返回你规定好的 JSON 结构

常用API

ts
generateObject()
streamObject()

场景:

  • 表单提取
  • 信息抽取
  • RAG 引用来源结构化
  • Agent 执行计划生成

Tool Calling:工具调用​

  • 普通 Chatbot 只能回答。Agent 要能做事,比如:
bash
查数据库
调用接口
搜索知识库
查询订单
创建任务
发邮件
操作业务系统
  • AI SDK Core 里的 tool() 就是把你的业务函数暴露给模型

Prompt Engineering:提示词工程​

  • 这个模块不是教你“写玄学 prompt”,而是告诉你如何在 AI SDK 的调用结构里组织
bash
system
prompt
messages
tool description
tool input schema description
few-shot examples
  • 尤其是 Agent 应用里,prompt 不只是写给模型看的自然语言,还要影响:
bash
什么时候调用工具
如何使用工具结果
找不到答案时怎么处理
是否允许编造
输出格式是什么

比如 RAG 系统里常见 prompt:

bash
system: `
你是企业知识库助手。
只能根据工具返回的知识库内容回答。
如果没有找到相关内容,直接说知识库中没有足够信息。
不要编造。
`

Settings:模型参数设置​

  • 这个模块是控制模型生成行为的。

常见参数:

bash
temperaturetopPmaxOutputTokensfrequencyPenaltypresencePenaltystopSequencesseedmaxRetriesabortSignal

常见理解:

参数作用
temperature越高越发散,越低越稳定
maxOutputTokens限制输出长度
maxRetries调用失败后重试次数
abortSignal中断生成
stopSequences遇到指定文本停止生成
seed尽量让结果可复现,取决于模型支持

Embeddings:向量化​

  • 这是做 RAG 必须掌握的模块。
  • Embedding 的作用是把文本转成向量:
  • Embeddings 可以把词、短语或图片表示成高维空间中的向量,相似内容在向量空间里距离更近;AI SDK 提供 embed 用于单个值的向量化

常用 API:

bash
embed()embedMany()

RAG 里一般这样用:

bash
文档入库:文档 → chunk → embedMany → 存入向量数据库用户提问:question → embed → 向量检索 → 找到相关 chunk → 交给 LLM 回答

Image Generation:图片生成​

  • 这个模块用于通过模型生成图片。

Video Generation:视频生成​

  • 这个模块用于视频生成模型。

Transcription:语音转文本​

  • 这个模块是音频转文字。

Speech:文本转语音​

  • 这个模块是 TTS,文本转语音。

Provider Management:模型供应商管理​

  • 这是AI SDK 的一个核心价值是:
  • 用统一 API 接不同模型

比如你可以切换:

bash
OpenAIAnthropicGoogleMistralDeepSeekxAIVercel AI Gateway

Middleware:中间件​

  • Middleware 是高级能力。
  • 它可以包裹模型调用,在请求前后做增强。
  • 官方文档提到,middleware 可以实现 transformParams、wrapGenerate、wrapStream,用于在传给模型前转换参数,或包裹生成和流式生成过程

常见用途:

bash
日志记录自动注入 system prompt敏感词过滤guardrails缓存模型 fallback成本统计请求改写输出后处理

Error Handling:错误处理​

  • AI 应用里错误很多:
bash
模型超时Provider 限流API key 错误JSON 结构不合法工具调用失败网络错误用户取消生成上下文过长

Testing:测试​

AI 调用有几个问题:

bash
慢贵结果不稳定依赖外部模型服务

所以不能所有测试都真的调模型。

  • 官方文档说明 AI SDK Core 提供 mock providers 和 test helpers,可以让你在不真实调用模型的情况下,控制 AI SDK 输出,从而做可重复、确定性的单元测试

适合测试:

bash
工具是否被正确调用RAG 检索结果是否被拼进 prompt结构化输出解析是否正确错误是否被正确处理UI 是否正确展示 tool result

Telemetry:可观测性​

  • Telemetry 用来观察 AI 调用过程。
bash
一次请求花了多久用了多少 token调用了哪些工具每一步输入输出是什么哪一步失败了模型成本是多少
  • 做 Agent 时,Telemetry 很重要,因为 Agent 不是一次简单调用,而可能是:
bash
Step 1: 理解用户问题Step 2: 调用知识库检索Step 3: 调用订单接口Step 4: 生成最终回答

没有 tracing,很难排查问题。