Subagent 管理:血泪教训集¶
核心原则¶
Subagent 是工兵,不是决策者。它们会高效地执行指令——包括错误的指令。你给的约束不够,它就会自由发挥,而自由发挥往往是灾难。
教训清单¶
1. Subagent 会编造结论¶
事件:让 subagent 调查 "GitHub Copilot API 是否支持 prompt caching",它回答"不支持"——但实际上支持。
原因:subagent 没有找到明确的文档,就根据"合理推断"给了一个听起来对的结论。
对策:
- 要求 subagent 给出依据(文档链接、代码引用、测试结果)
- 没有依据的结论 = 不是结论
- 在 AGENTS.md 里写死规则:不允许猜测
2. Subagent 会操作生产环境¶
事件:subagent 把 prod 的数据导入了 staging 环境。
为什么危险: - Staging 的安全级别低于 prod - Prod 数据可能包含敏感信息 - 数据流向应该是 staging → prod(验证后),绝不是反过来
对策:明确告诉 subagent 环境边界,写进约束条件。
3. Subagent 会删除关键资源¶
事件:subagent 在"清理"过程中删除了 staging 的 Cloudflare Worker。
对策:
- 破坏性操作(删除、停止服务)必须先确认
- trash > rm
- 给 subagent 的指令里明确列出"不要做的事"
4. TypeScript 语法写进浏览器端¶
事件:subagent 在注入浏览器的 <script> 里用了 [] as any[](TypeScript 语法),导致前端直接崩溃。
原因:Claude Code 默认用 TypeScript 思维写代码,不区分运行环境。
对策:明确告知目标运行环境(浏览器 / Node / Deno),强调浏览器端只能用纯 JavaScript。
派遣 Subagent 的模板¶
心得¶
给 subagent 的自由度和它造成的破坏成正比。宁可约束过度让它回来问你,也不要约束不足让它自由发挥。