三、Subagent机制的经验
3.1 优势
- 上下文独立:每个subagent有独立的上下文窗口,可装载完整的校对规则
- 天然并行:独立分段可同时调度,总耗时大幅缩短
- 隔离性:一个subagent失败不影响其他段
3.2 问题与对策
问题1:Classifier拦截
现象:subagent在修改文件时频繁被auto mode classifier拦截,尤其是结构性修改(条目碰撞拆分、跨行合并)和批量替换。
影响:约30%的subagent在首次运行时未能完成全部修正。
对策:
- 对拦截的段进行重跑(部分成功)
- Python脚本绕过逐条Edit的限制(最有效)
- 逐条补修(适用于少量残留)
教训:subagent的Edit工具对结构性修改的容错率低。涉及多行操作的场景应优先考虑Python脚本。
问题2:subagent被kill
现象:部分subagent在运行中被自动终止,原因不明。
影响:被kill的subagent已做的修正可能部分丢失(取决于是否已写入文件)。
对策:对每个segment在subagent完成后做文件完整性检查。
教训:subagent不是事务性的——它可能在中途被kill,已做的部分修正是已写入的,但未写入的部分丢失。建议subagent每完成一批修正就主动写入文件,而非在最后一次性写入。
问题3:修正后验证不足
现象:subagent报告"已完成"但实际部分修正被拦截未生效。
影响:产生了"假成功"的误导,降低了信任度。
对策:最终做了一次全量扫描,使用fix_all.py中的全部已知错误模式逐段检查。
教训:不能信任subagent的"完成"报告。应该在subagent完成后,由主agent重新扫描该段验证修正是否实际生效。
3.3 最佳实践(总结)
```
subagent工作流最佳实践:
1. 每个subagent的任务粒度:100-500条/段为宜
2. 大段(>1000条)拆分为多个子任务
3. subagent完成后,主agent用已知错误模式验证
4. 结构性修改(多行操作)用Python脚本
5. 每完成一批修正即写入文件,避免被kill时丢失
```