用途:该技能用于在构建 AI 聊天界面、使用 Vercel AI SDK 5、流式输出 LLM 响应或集成工具/函数调用时提供编写规范,也可用于从 AI SDK 4 迁移到 v5。
主要能力与 v5 变更要点:useChat 改从 @ai-sdk/react 导入,不再从 ai/react 导入;采用基于 Transport 的架构,使用 DefaultChatTransport 配置接口地址;消息内容改为 message.parts 数组(包含 text、image、工具交互等部分),不再直接读取 message.content 字符串;发送消息使用 sendMessage() 代替 handleSubmit()。
用法:客户端用 useChat({ transport: new DefaultChatTransport({ api: '/api/chat' }) }) 获取 messages、sendMessage、status,发送时调用 sendMessage({ text: input }),渲染时遍历 message.parts,按 part.type === 'text' 取 part.text。服务端路由用 streamText 调用模型并返回 result.toDataStreamResponse(),以保证与 useChat transport 的流式配合。工具调用通过 tool({ description, parameters: z.object(...), execute }) 定义,参数必须提供 Zod schema。简单文本场景可用 useCompletion({ api: '/api/...' })。错误处理通过 useChat 的 onError 回调并在界面中显式展示 error 状态。
适用场景:Next.js 类应用中的 AI 聊天界面、流式文本生成、工具/函数调用集成及 v4 到 v5 的迁移改造。
限制与规则:该技能仅针对 AI SDK v5,明确禁止混用 v4 语法;不要访问 message.content 字符串,须迭代 message.parts;v5 不支持无类型工具调用;服务端必须返回 result.toDataStreamResponse();不得静默吞掉流式错误。未在资料中说明的内容(如安装命令、收费情况、具体模型可用性)暂未提供。