AI多Agent协作系统实战(十二):当AI Agent学会写代码后,我花了3天清理它的“技术债“ 引言我让AI Agent小密帮我管理一个开发团队——小虾负责开发小牛负责测试小白负责运维。听起来很美好对吧但运行观察我发现自己掉进了一个坑AI写的100多个脚本互相调用、互相矛盾最后连它自己都搞不清该调哪个。这篇文章分享我如何发现并清理这些技术债以及给同样在用AI写代码的开发者的建议。一、问题是怎么发现的周五下午我问小密“心跳报告为什么重复发”小密的回答让我懵了“heartbeat调用auto_review.run_auto_review()进行复核而ws_server调用review.py --all进行复核。两者功能重叠但实现不同可能导致重复执行。”等等两个复核脚本我明明只设计了一个复核流程啊。我让小密排查发现了更严重的问题模块预期功能实际情况auto_review.py复核入口400行代码包含验证、部署、唤醒等逻辑review.py复核入口另一套复核逻辑更完整auto_pipeline.py派发测试包含验证、部署、唤醒等独立功能auto_pipeline_db.py派发测试另一套派发逻辑基于DB驱动4个脚本2套复核逻辑2套派发逻辑。谁调谁没人说得清。二、根因分析AI为什么会这样写代码2.1 缺乏全局视角AI Agent每次执行任务时只看到当前的任务MD看不到整个系统的架构。它会为了快速完成任务写一个新的脚本不检查是否已有类似功能的脚本不考虑与其他模块的调用关系2.2 Skill文档与实际代码脱节我写了一份详细的skill文档pf-workflow描述了理想的架构派发测试 →auto_pipeline_db.py复核 →review.py超时修复 →diagnose_and_fix_timeout()但实际代码呢auto_pipeline.py里也有auto_dispatch_tests_for_completed_dev()auto_review.py里也有复核逻辑ws_server.py直接调用review.py不走统一入口Skill描述的是理想代码写的是现实。2.3 没有统一的函数入口最致命的问题每个脚本都自己实现了一遍核心逻辑。复核逻辑出现了3次 1. auto_review.py: run_auto_review() 2. review.py: run_review() 3. ws_server.py: 直接调用 subprocess.run([python3, review.py, --all])谁是正确的没人知道。三、清理过程统一调用链3.1 第一步识别所有重复功能我让小密列出了所有脚本的功能映射功能脚本A脚本B问题派发测试auto_pipeline.pyauto_pipeline_db.py两套逻辑复核auto_review.pyreview.py两套逻辑超时修复auto_pipeline.pydiagnose_and_fix_timeout()函数重复唤醒Agentauto_pipeline.pywake_agent.py调用链混乱3.2 第二步确定唯一入口我制定了统一规则派发测试 → auto_pipeline_db.auto_dispatch_tests_for_completed_dev() 复核 → review.py --all 超时修复 → diagnose_and_fix_timeout() 唤醒Agent → wake_agent.py3.3 第三步废弃旧模块auto_review.py → 废弃功能合并到review.py auto_pipeline.py → 只保留验证工具函数 ws_server.py → 调用统一入口3.4 第四步更新skill文档将理想架构和实际代码对齐skill描述的函数名 代码中实际的函数名调用链 代码中的实际调用路径四、关键教训教训1AI写代码需要代码审查AI不会主动检查这个功能是否已经存在。每次它写新代码时你需要让它先搜索现有代码库检查是否有重复功能确认调用链是否正确教训2Skill文档必须与代码同步Skill不是写完就忘的文档而是活的规范。如果代码变了skill必须同步更新。我犯的错误skill描述的是理想架构代码是另一个样子结果AI按skill写代码但实际调用的是另一个模块教训3统一函数入口是关键# ❌ 错误每个模块自己实现 auto_pipeline.py: def auto_dispatch_tests_for_completed_dev() auto_pipeline_db.py: def auto_dispatch_tests_for_completed_dev() ws_server.py: subprocess.run([python3, auto_review.py]) # ✅ 正确唯一入口 所有模块 → auto_pipeline_db.auto_dispatch_tests_for_completed_dev()教训4定期审计AI写的代码我建立了一个每周审计机制列出所有Python脚本检查是否有重复函数确认调用链是否正确更新skill文档五、给同样在用AI写代码的开发者5.1 建立代码规范在让AI写代码之前先定义唯一的函数入口模块职责边界命名规范5.2 使用代码审查提示词每次AI完成任务后用这个提示词审查请检查你刚才写的代码 1. 是否有重复功能的现有代码 2. 调用链是否与其他模块一致 3. 是否遵循了项目的命名规范5.3 建立技术债清单每周花10分钟列出重复的函数混乱的调用链过时的skill文档然后逐个清理。六、总结AI Agent写代码很快但也很容易制造技术债。关键是要统一函数入口— 一个功能只有一个实现Skill与代码同步— 文档描述的必须是实际的定期审计— 发现重复及时清理代码审查— AI写的代码也需要review现在我的系统清爽多了复核只有一个入口review.py派发只有一个入口auto_pipeline_db.pySkill文档和代码完全一致清理技术债花了3天但省下的调试时间远不止3天。如果你也在用AI写代码建议你今天就检查一下代码里有没有两个复核脚本