关于 ai-sdk-core-v7
面向使用 Vercel AI SDK v7 的后端开发者,提供版本适配的实现指导与代码模板,涵盖文本生成、流式响应和工具 Agent。
主要功能
- 01针对 SDK 版本的指导
- 02文本生成与流式响应模式
- 03工具循环与 Agent 指引
- 04客户端消息安全规则
- 05后端代码模板
适用场景
- 01使用 generateText 实现请求处理器
- 02构建流式聊天端点
- 03为持久化 Agent 添加工具
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ blockmatic/ basilic-skills --skill ai-sdk-core-v7安装后在 Claude Code 中输入/ai-sdk-core-v7确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/request-handlers.mdtemplates/agent-with-tools.tsgenerate-text-basic.tsstream-text-chat.ts详细介绍
技能:ai-sdk-core
范围
- 适用于:使用 Vercel AI SDK v7(
ai包)的后端 AI - 不涵盖:React 聊天 UI(请参阅 ai-sdk-ui)
假设
- 文件夹中的主版本对应
package.json中安装的ai包,而非技能文件的修订版本 - Node.js 22+、ESM;
inputSchema使用 Zod 4 - 切勿凭记忆编写 AI SDK 代码。 使用
node_modules/ai/docs/和node_modules/ai/src/中的内容搜索已安装的版本。否则请参阅 https://ai-sdk.dev/docs(追加.md)或 https://ai-sdk.dev/api/search-docs?q= - v6 遗留内容:https://ai-sdk.dev/docs/migration-guides/migration-guide-7-0
原则
- 在请求处理程序和一次性 API 路由中使用
generateText/streamText;系统风格的提示词使用instructions - 请求处理程序中的工具循环:在
generateText/streamText上使用stopWhen: isStepCount(n)——不要使用maxSteps或stepCountIs - 对于持久化 Agent,使用
ToolLoopAgent+generate()/stream()——不要手动编写循环,也不要使用new Agent() - UI 流:使用
'ai'中的createUIMessageStreamResponse+toUIMessageStream({ stream: result.stream })。新处理程序以及专门针对流或 SDK 的更新都应使用这些 - 在 v7 中,
result.toUIMessageStreamResponse()仍然可用(已弃用)。只有当任务与流或 SDK 无关时才保留 - 工具结果必须可序列化为 JSON(不能包含
Date) - 系统提示词放在
instructions中。除非服务器完全信任载荷,否则客户端的messages中不得包含{ role: 'system' }
约束
必须
- 编写调用前阅读随附文档
- 客户端发送 UI 消息时使用
convertToModelMessages - 拒绝
messages中不可信的{ role: 'system' }。对于客户端提供的聊天,不要设置allowSystemInMessages: true
避免
toDataStreamResponse/pipeDataStreamToResponsestepCountIs/maxSteps/result.fullStream/ 顶层的system:(改用isStepCount、result.stream、instructions)- 猜测模型 ID
交互
- 与 ai-sdk-ui、fastify、next 互为补充
- 上游:vercel/ai use-ai-sdk
模板
参考
- 请求处理程序 — 工具 +
isStepCount、Fastify SSE、拒绝系统消息
评论
支持 Markdown