以添加 echo(回显用户输入)为例,需改 4 处并保持类型一致。
src/lib/agent/types.ts:
export type AgentToolName =
| "search_notes"
| "calculate"
| "current_time"
| "echo"; // 新增
src/lib/agent/tool-catalog.ts:
{
name: "echo",
label: "回显",
description: "原样返回输入文本",
args: { text: "string" },
},
src/lib/agent/tools.ts 的 runAgentTool:
case "echo": {
const text = String(args.text ?? "").trim();
return text || "(空输入)";
}
src/lib/agent/planner.ts 的 plannerSystem 字符串中加入:
- echo: { "text": string } — 回显文本
并在 planner-schema.ts 的 agentToolNameSchema 枚举中加入 "echo"。
可选:在 planner-mock.ts 增加关键词规则,便于 LLM_DISABLED=1 时演示。
pnpm typecheck
pnpm test
pnpm dev # 另一终端
pnpm smoke
在 /agents 页面输入「请 echo 你好」观察 trace 是否出现 tool_call → echo。
types.ts 工具名tool-catalog.ts 文档tools.ts 实现planner-schema.ts Zod 枚举planner.ts system promptplanner-mock.ts 规则agent-quick-prompts.ts 快捷按钮