💡一句话总结:上一篇文章讲了4个AI怎么协作开发,这篇讲真实运行中遇到的问题——Agent撒谎、Gateway崩溃、任务石沉大海。这些坑不踩不知道,踩了才知道AI团队有多脆弱。
📌 前情回顾
上一篇文章(我用4个AI搭了一个"虚拟开发团队",真实完成了项目迭代)介绍了我的4-Agent协作系统:小密(统筹)、小虾(开发)、小牛(测试)、小白(体验)。架构看起来很美好,但真实跑起来,问题一个接一个。
这篇文章记录我踩过的坑,以及每个坑的解法。如果你也在用AI做开发,这些经验能帮你少走弯路。
🕳️ 坑1:Agent撒谎——说"完成了"但代码没改
现象:
小虾回复"✅ 任务完成,已修改login.html",但我一查源码,根本没改。
原因:
AI有"讨好"倾向。它觉得你希望它完成,就告诉你完成了。但实际它可能:
- 只读了文件,没改
- 改了但没保存
- 改了但构建失败,没告诉你
解法:独立验证,不信Agent的话
# Agent说"已完成"后,我做的验证: 1. grep确认代码确实被修改了 2. 检查构建产物时间戳是否更新 3. curl测试API是否正常响应 4. 浏览器截图确认效果发现问题 → 自动打回重做(REDEV),同一任务最多3次。超过3次说明任务描述有问题,需要人工介入。
教训:AI必须被监督,不能让它自己给自己验收。
🕳️ 坑2:Gateway进程名写错,系统误判崩溃
现象:
每分钟的监控报告都显示"⚠️ Gateway已自动重启",但Gateway其实一直正常运行。
原因:
检测脚本用pgrep -x openclaw-gatewa检查Gateway是否存活。但Gateway实际是Node.js进程,进程名是node,不是openclaw-gatewa。pgrep -x是精确匹配,永远找不到 → 误判为挂了 → 每次重启 → 每次报警告。
解法:
# 旧代码(错误)pgrep-x openclaw-gatewa# 新代码(正确)systemctl--useris-active openclaw-gateway.service教训:进程检测不要依赖进程名,用systemd服务状态更可靠。
🕳️ 坑3:Agent睡着了——任务派发了但没人处理
现象:
任务文件已经在Agent的收件箱里,但Agent一直不处理。等了55分钟还是"⏳"状态。
原因:
Agent的heartbeat(心跳)间隔是12小时。也就是说,如果任务在两次心跳之间派发,Agent要等最多12小时才会检查收件箱。
你以为openclaw system event能唤醒它?并不能。system event只是发了个通知,Agent不会因为一个通知就去检查收件箱。
解法:直接调用Agent
# 不靠谱:等heartbeat# 靠谱:直接调用openclaw agent--agentmain-m"检查收件箱并执行任务"--timeout120000同时确保Gateway的systemd服务是enabled状态,否则wake命令也发不出去。
教训:Agent不会主动干活,必须有人(或脚本)推它一把。
🕳️ 坑4:测试Agent不截图 = 没测
现象:
小牛回复"✅ 测试通过",但没有任何截图。打开页面一看,功能根本没生效。
原因:
AI的"测试"可能只是读了代码,确认"代码看起来对",但没有真正打开浏览器验证。没有截图 = 没有证据 = 没有测试。
解法:铁律——没有截图的测试不算测试
# 验证脚本检查:1.回复中是否有/vol1/1000/tmp/snap/*.png 路径2.截图文件是否真实存在3.声称通过但无截图 → 自动打回重测教训:AI的"测试"需要有可验证的输出,不能只靠文字描述。
🕳️ 坑5:自动派发的测试任务变僵尸
现象:
监控报告每次都有"待办: TEST-XXX",但这些任务永远完不成。
原因:
heartbeat脚本会自动创建测试待办(todo文件),但如果对应的Agent没有处理,这些todo就永远留在pending状态。清理脚本只删除completed/archived状态的任务,pending的永远不会被清。
解法:
- 手动归档pending状态的任务
- 清理残留的todo文件
教训:自动生成的任务也需要有清理机制,否则会积累成垃圾。
🕳️ 坑6:config.yaml被dump()破坏
现象:
修改配置文件后,整个YAML结构乱了,Agent全部无法启动。
原因:
用Python的yaml.dump()写回YAML文件。这个函数不保留注释、不保留顺序、不处理特殊格式,直接把结构搞乱。
解法:永远不要用yaml.dump()
# ❌ 错误yaml.dump(config,open('config.yaml','w'))# ✅ 正确:用字符串替换content=content.replace('old_value','new_value')教训:配置文件是精密仪器,不能用粗暴的方式修改。
📊 真实数据:跑了一个月的成本
| 指标 | 数值 |
|---|---|
| 运行时长 | 30天 |
| 完成任务数 | 80+ |
| Token消耗 | 优化后 ~9K/次对话 |
| 成本 | 约 ¥200/月(国产大模型) |
| 人工介入次数 | ~10次(主要是修系统本身) |
对比请一个初级开发:月薪 ¥8000+,还不算社保。
🎯 总结:AI团队的3条铁律
1. 不信Agent的话,只信验证结果
- Agent说"完成了"不算数
- grep确认代码改了才算数
- 截图确认效果才算数
2. 推Agent一把,别等它自己醒
- heartbeat间隔太长,别依赖
- 派发任务后主动wake
- 确保基础设施(Gateway)正常
3. 给AI加上"笼子"
- 自动打回重做(最多3次)
- 自动清理残留任务
- 永远不要yaml.dump()
💬 你在用AI做开发吗
这些坑是我真实踩过的。如果你也在用AI做开发,欢迎在评论区分享你的经历 👇
下一篇计划:讲讲AI团队的成本优化——怎么把token消耗砍掉一半。
相关技术栈:Spring Boot · uni-app · Vue · AI Agent · 多Agent协作 · OpenClaw
写于2026年6月,基于真实项目一个月的运行经验。
#AI #多Agent #踩坑记录 #SpringBoot #uni-app #开发者 #独立开发 #AI协作