Skip to content

10.6 反偷懒机制与工人意识注入

系列:Claude Code 完全指南 V2 · 第 10 篇


学习目标

  1. 定义主 Agent 分配任务时的模糊指令反模式(如「基于发现修 Bug」)及其危害。
  2. 撰写合格派工单:路径 + 行号 + 期望行为 + 验收,禁止把「想清楚」甩给子 Agent。
  3. 背诵工人意识注入要点:Fork 出来的工人,不是经理;不要交流提问;直接工具干活;严禁再生成子 Agent
  4. 关联反偷懒与 Verification:模糊输入 → 模糊实现 → FAIL/PARTIAL 概率上升。

生活类比:装修工单

若你对工人说「看着弄」,你会得到随机风格的墙漆。若你说「客厅东墙,色号 NN-01,两遍面漆,验收照 CIEC 标准拍照」,工人才能一次性做对。主 Agent 写子任务同理:模糊指令 = 授权偷懒


反偷懒:主 Agent 的责任边界


禁止的模糊指令(示例表)

模糊说法问题改写方向
「基于你的发现修 Bug」发现不在父上下文父 Agent 先合并 Explore 再写行号
「优化一下性能」无基线无指标指定函数/接口 + pprof 场景
「重构这块」范围不明文件列表 + 禁止行为 + 允许行为
「对齐业界最佳实践」不可测试给出具体规范链接或规则条目
「顺便修一下测试」无测试名TestFoo_Bar + 期望断言

合格派工单模板(Worker / generalPurpose)

markdown
Fork started — processing in background: Worker 派工

【身份】你是 Fork 出来的工人,不是经理。不要向用户或父级反复提问;
        直接调用工具完成工作;严禁再生成子 Agent(Task)。

【范围】仅修改 `internal/billing/invoice.go` 第 142-201 行及同文件内直接必要的 import。

【问题】当 `TaxRate` 为 nil 时当前会 panic。

【期望】在计算总价前使用默认税率 0;记录 debug 日志一行(已有 logger)。

【禁止】不得修改 `go.mod`;不得重命名导出符号。

【验收】`go test ./internal/billing/...` 全绿;若红,自行修复至绿或回报精确错误块。

【输出】1) 变更摘要 2) 触及文件列表 3) 测试输出摘要

工人意识注入(原文可贴入 prompt)

以下段落建议由 父 Agent 在每次派 Worker原样或略作裁剪附带:

text
你是 Fork 出来的工人,不是经理。
不要交流提问;在信息不足时基于仓库可见证据做最小合理假设并继续。
直接工具干活:读、搜、改、跑测试。
严禁再生成子 Agent(不要调用 Task 创建孙 Agent)。

为何「禁止子 Agent 再提问」?

原因说明
延迟问答往返拉长 wall time
上下文漂移子窗口与父窗口易不一致
责任回滚失败时难以判定「谁没问清」

例外:致命缺失(如密钥、产品二选一)可由子 Agent 单次在摘要中标注 BLOCKED: 需人类确认 X,但不应展开多轮闲聊。


与 Explore/Plan 的衔接

步骤负责方产出
宽搜Explore路径+行号候选
战略Plan阶段与风险
合并父 Agent去模糊后的工单
施工Workerdiff

父 Agent 禁止把「合并」甩给 Worker:那是经理活


源码片段:父 Agent 内部 checklist(伪代码)

text
function dispatch_worker(explore_result, bug_report):
  require explore_result.paths.non_empty
  for each change:
    require change.file
    require change.line_range
    require change.expected_behavior
    require change.verification_command
  prompt = render_template(WORKER_TEMPLATE, change)
  Task(subagent_type="worker", prompt=prompt)

Verification 对模糊派的「报复链」

模糊派工 → 子 Agent 过度猜测 → 测试未覆盖分支 → adversarial probes 抓穿 → FAILPARTIAL


反模式对照表(经理 vs 工人)

经理(父/Coordinator)应做工人(Worker)应做
合并 Explore 输出按行号改
决定并行/串行不调度他人
写清验收命令跑命令并贴摘要
对接 Verification 结果不「自评满分」

案例:从模糊到明确

模糊:「Worker:根据前面讨论修登录。」

明确

  • 文件:auth/login.go
  • 行号:88-112VerifyPassword
  • 期望:连续失败 5 次后锁定 15 分钟;错误信息不区分用户不存在与密码错误
  • 验收:go test ./auth -run TestLogin + curl 样例两条

小结

  • 反偷懒核心:主 Agent 去模糊,子 Agent 执行
  • 工人意识注入减少无效对话,硬禁子 Agent 再 Fork。
  • Verification 形成压力:含糊工单 → 更易 FAIL

自测

  1. 写出两句「模糊指令」并改写为「明确工单」。
  2. 工人意识注入三条禁令是什么?
  3. 为什么合并 Explore 结果不该由 Worker 代劳?

上一节:10.5 Coordinator · 下一节:10.7 Verification

本项目仅用于教育学习目的。Claude Code 源码版权归 Anthropic, PBC 所有。