Phase 3 / Ep 15: 三振出局 (3-Strike) 兜底协议
上一节里,Agent 在红绿灯测试中展现出了令人惊艳的自愈能动性。但现实中的代码通常充满着比数学区间计算更为折磨人的依赖错误,例如:某个包怎么也装不上、或者遇到了操作系统底层的原生 C++ 绑定报错。
当缺乏限制的时候,头铁的 AI 会陷入**“修复 -> 报错 -> 使用相同的方法重复修复 -> 再次报错”**的无脑死循环里。不仅任务死锁了,还在疯狂烧着极其昂贵的 API Token!
1. 防御重叠区:在 planning-with-files 植入熔断
打开上一阶段写出的 .agents/skills/planning-with-files/SKILL.md 的工作流,我们需要在文件底部注入最为狂野也最关键的人工兜底法则 —— 3-Strike 限制。
追加如下规则:
## 兜底协议:The 3-Strike Error Protocol
**绝对禁忌:永远不要因为遇到相同的报错而反复用完全相同的手法尝试第三遍!**
遵守此项排雷操作序:
**ATTEMPT 1: 遇阻与修复 (Diagnose & Fix)**
→ 读到了 Error 信息,深呼吸,识别错误源点,然后修改代码尝试重跑。
**ATTEMPT 2: 方案推翻 (Alternative Approach)**
→ 如果又遇到了极其类似的 Error?此时严禁你在同样的逻辑里打转!
→ 必须换用完全不同的库库、跳过现有的框架结构,或者绕路实现。并在 `progress.md` 明确记录思路变更。
**ATTEMPT 3: 架构级审视 (Broader Rethink)**
→ 第二次也死了?说明这通常不是语法的 Bug,这是系统依赖或深水区雷。
→ 质疑需求或大结构假设。只修补最外围配置再试。
**AFTER 3 FAILURES: 红色警报,全军退去交接人类 (Escalate to User)**
→ 只要失败累积 3 次。系统你必须强行停止你所有的自我尝试动作!
→ 总结你的三次扑街过程,将错误原点和代码思路写入 `docs/bugs.md` (或 findings 中的专属区块)。
→ 将终端回复交给人类:“长官,我尝试了 3 条路线均宣告阵亡,无法自己突围,请接管查阅日志并给与新指示。”
2. 效果与哲学
大厂开发界有句名言:“Fail fast, fail early.” (早早报错早早结束)。
我们不怕 AI 写错代码,就怕它因为幻觉在假装自己写对了代码。
通过 3-Strike 协议,你能确保一旦这个代理人在复杂业务深水区溺水(连续 3 把都通不过),它会留下一份非常有价值的“排雷尸检报告”。你(长官)接管后,阅读这份报告,只需要花 30 秒指出“哦,因为你没有在这个机器上安装 python 环境所以编译不过”,它就能再度起飞。
这是一个极富生命力的团队结构!
搞定了心智防坠死,在下一期,我们将开始教 Agent 掌握开发大后端应用的核心奥义:如何在不发真请求的前提下 Mock 第三方接口。