用途:在使用 Trigger.dev 时按版本化参考编写并运行持久化 AI 聊天智能体,核心 API 为 @trigger.dev/sdk/ai 的 chat.agent。
主要能力与参考来源:完整且与版本绑定的参考随已安装的 @trigger.dev/sdk 一起提供。技能文件位于 node_modules/@trigger.dev/sdk/skills/trigger-authoring-chat-agent/SKILL.md,覆盖每轮运行循环、chat.toStreamTextOptions()、两个服务端 action、带类型的工具与数据部件以及 React transport。完整版本化文档位于 node_modules/@trigger.dev/sdk/docs/ai-chat/,可用 grep 检索 API,例如 grep -rl "toStreamTextOptions" node_modules/@trigger.dev/sdk/docs/。
必要用法:若上述路径不存在,说明尚未安装 @trigger.dev/sdk,需先安装;在非提升布局下可用 node -p "require.resolve('@trigger.dev/sdk/package.json')" 定位包并读取同级 skills/ 与 docs/。
关键限制与常见错误:最关键的是不能漏写 ...chat.toStreamTextOptions()。应写作 return streamText({ ...chat.toStreamTextOptions(), model, messages, abortSignal: signal }); 且需展开在前,使显式覆盖优先生效;它负责串接 prepareStep(压缩、回合中转向、后台注入)、注入 chat.prompt() 系统提示、解析注册模型并添加遥测,遗漏会导致这些能力静默失效且无报错。工具不能只声明在 streamText 上,还需在 chat.agent({ tools }) 声明、从 run 读回,并传入 chat.toStreamTextOptions({ tools }),否则后续回合重转历史时工具输出会被丢弃。停止功能需转发 abortSignal: signal,否则 UI 停止但服务端仍继续生成。chat.local 应在 onBoot 初始化而非 onChatStart,后者每次聊天只触发一次,续跑会因未初始化而崩溃。不要在浏览器铸造令牌,应通过两个服务端 action 完成,由 transport 调用它们。不要在 chat.endRun() 清除 lastEventId,应保留至 Session 生命周期结束才清除。uiMessageStreamOptions.onError 不应返回原始错误以免泄露内部信息,应返回净化后的字符串。相关技能包括 trigger-chat-agent-advanced、trigger-authoring-tasks 与 trigger-realtime-and-frontend。