文章目录前言Harness是个啥Agent的经纪人第一步给Agent装个行车记录仪第二步AI当侦探错误自动归归类巡检发现了什么妖魔鬼怪第三步系统自己提PR程序员只负责点同意为什么不让AI自己合并第四步行为分析——没报错不代表没病第五步重放引擎——让bug可以录像回放成本有多低比你请实习生便宜多了成本明细表月度三个层次从搬砖到当老板效果怎么样数据说话怎么落地五步走起生产环境调度建议最后说两句P.S. 无意间发现了一个巨牛的人工智能教程非常通俗易懂对AI感兴趣的朋友强烈推荐去看看传送门https://blog.csdn.net/HHX_01前言你有没有算过自己这辈子花在修bug上的时间加起来够谈几场恋爱我算过。不算不知道一算吓一跳——按照每天两小时、时薪五百块来算我这些年在bug上烧掉的钱够在二线城市全款买套小三居了。关键是这套房子我还住不进去因为bug修完一个又来一个跟打地鼠似的永远打不完。更气人的是什么是你凌晨三点爬起来修的那个bug三个月后一模一样地又蹦出来了。你盯着屏幕感觉自己像个被时间循环诅咒的倒霉蛋每天都在演《土拨鼠之日》程序员版。所以今天聊一个邪门的东西让代码自己修自己。不是科幻片是真的有人在这么干而且成本比你点一顿外卖还便宜。Harness是个啥Agent的经纪人先搞清楚一个概念Harness。这词听起来像马具实际上也差不多——它就是套在AI Agent身上的那套马具。Agent是拉车的马负责干活Harness是车夫缰绳导航仪负责让马别跑偏、别撞树、别跑到别人家地里去吃草。Agent写代码、查资料、回邮件Harness在后面盯着“你刚才那个工具调用参数传错了知道吗”“上下文快爆了还不压缩”“又幻觉了是吧给我重想”说白了Agent是台前明星Harness是幕后经纪人。明星出事了经纪人得兜底。但问题是经纪人自己也会犯错啊。Agent把参数传错了Harness本应该拦住的结果Harness说“我觉得没问题过。”——然后整个系统就崩了。这就好比你请了个保姆看孩子结果保姆自己把电热水壶放茶几上了。你怪保姆保姆说“我培训手册里没写这条啊。”所以Harness也得进化而且最好是自己进化别老让程序员凌晨三点来当它的家教。第一步给Agent装个行车记录仪想让Harness自己进化第一步是让它知道自己在哪儿摔过跤。怎么知道装行车记录仪啊。Tracing就是这个行车记录仪。Agent每次执行调了什么工具、传的什么参数、返回了什么结果、哪一步报错了全部记下来存数据库里。以后出事了不用问Agent你刚才干嘛了——Agent大概率会回答我不记得了跟喝了假酒似的。直接查数据库回放录像一目了然。这玩意儿有多重要我打个比方。你家里WiFi断了你打电话给运营商客服问你您刚才做了什么操作你说我就刷了个视频。“客服说“那您重启一下路由器试试。”——这种对话的本质就是客服没有你的行车记录仪”只能靠猜。而Tracing就是告诉Harness“你刚才在第17步调用webFetch的时候超时了因为URL里多了一个空格。别问我怎么知道的数据库里写得清清楚楚。”但光记录没用一天几千条日志你让谁看程序员看程序员看完估计直接辞职了。所以得让系统自动看自动分类自动找出规律。第二步AI当侦探错误自动归归类这一步叫Pattern识别说白了就是给错误贴标签。系统把相似的错误归到一堆比如所有429限流错误放一起所有Schema校验失败放一起所有上下文窗口爆炸放一起。然后让LLM来看每一堆错误分析“这一堆是怎么回事”“是用户的问题、供应商的问题还是Harness自己的bug”LLM看完会生成一个Pattern包含名称、分类、匹配规则。以后再有新错误进来系统先拿这个Pattern去比对对上了就自动归类不用每次都麻烦LLM。这就像一个老中医坐诊。一开始什么病都得把一次脉慢慢地他发现舌苔发白手脚冰凉八成是脾胃虚寒于是把这个组合写进医案。以后再遇到同样症状不用把脉直接开方。Pattern库就是医案越积累越厚越积累越准。LobeHub那帮人跑过数据9轮巡检下来Pattern从31条涨到104条然后就不涨了——说明该认识的病都认识了未匹配的错误越来越少。这感觉就像你刚入职的时候每天遇到新问题三个月后同样的问题你闭着眼都能解决。巡检发现了什么妖魔鬼怪Schema不兼容——“我以为你是int结果你是string咱俩聊不到一块去”负数max_tokens——“给我生成-100个字”LLM听完直接宕机reasoning_content丢失——DeepSeek的推理过程被吃了跟看电视剧跳过了关键剧情一样Context Window过载——上下文塞太满跟春运火车一样挤不进去新乘客了第三步系统自己提PR程序员只负责点同意Pattern识别出来Harness自己的bug之后下一步怎么办传统做法是建个Jira工单排期等程序员有空了再修。问题是程序员永远没空工单一放就是三个月bug在这期间继续恶心用户。现在的做法是系统自动修。不是修生产环境是生成修复代码提一个PR程序员醒来一看“哟AI给我交了份作业”审一下没问题就合并。这个自动修复Agent怎么工作的跟聊天Agent一样也是LLM工具。给它配一套工具搜索文件、读取代码、修改代码、提交Git。然后告诉它“这里有个bug上下文管理在token接近上限时没有触发压缩你去把这个问题修了。”Agent就开始自己翻代码找相关文件读逻辑定位问题写修复提交。整个过程不需要人参与除了最后那个合并按钮。这让我想起一个段子。以前老板总说这个需求很简单怎么实现我不管明天上线。现在好了AI真的不管怎么实现但它真能明天上线。程序员从写代码的变成了审代码的从搬砖的变成了监工的身份升级了属于是。当然AI不会自己合并代码这是安全边界。万一它修bug的时候顺手把支付模块删了呢所以PR必须人工审核。AI可以当实习生但不能当CTO。为什么不让AI自己合并因为LLM写的代码可能引入新问题。在没有自动化测试覆盖的情况下让AI自己合并代码相当于让实习生直接往主干推代码——胆子也太大了。想跳过人工审核可以但你需要两样东西一套覆盖修改行为的自动化测试以及一个能复现bug的重放引擎。后面会讲。第四步行为分析——没报错不代表没病有些问题不会报错但系统就是不对劲。比如Agent每次回答用户问题都要调十几个工具明明三四个就能搞定比如成功率只有60%但用户没投诉因为Agent重试了三次之后终于蒙对了。这种行为层面的问题Tracing也能抓。系统把Agent的操作序列聚类看哪些行为模式是不健康的工具调用太多、成功率太低、错误率太高、响应太慢。然后给每个行为组打个健康分低于0.8的就标记为亚健康。接着LLM出场给这些亚健康行为组开药方“给webFetch加指数退避重试”“优化dbQuery的Schema描述”“减少不必要的工具调用”。建议分两种critical级别的直接进自动修复队列suggestion级别的让开发者自己决定要不要改。这就像体检。血常规没箭头不代表你健康可能只是还没严重到仪器能检测出来。行为分析就是那个更精细的体检套餐能发现亚健康状态。第五步重放引擎——让bug可以录像回放自动修复生成了PR但这个PR到底修没修好以前只能靠程序员手动测试现在有个更骚的操作重放引擎。原理很简单。Tracing记录了每一步的输入输出——LLM回了什么、工具返回了什么。重放的时候不调用真实的LLM和工具直接把录好的数据按顺序喂给Agent Loop。Agent Loop以为自己还在正常工作实际上它面对的是录像不是直播。这就好比你打游戏录了个存档然后加载存档重新打一遍。如果之前这个地方会触发bug那重放的时候应该也能触发。如果打了补丁之后重放不触发了说明补丁有效。更妙的是每次修复合并后触发bug的那条trace会自动加入回归用例库。以后每次生成新PR除了验证新bug还要把以前修过的bug全部重放一遍确保新改动没有旧病复发。修好的bug越多回归保护越强这叫以战养战。不过重放引擎有个边界它验证的是Harness的处理逻辑不是LLM的回答质量。因为LLM的回复是录好的固定数据所以模型回答得好不好不在验证范围内。重放引擎只关心一件事Harness拿到这些返回值之后上下文管理、工具结果处理、错误恢复这些逻辑有没有正确执行。成本有多低比你请实习生便宜多了说到这你肯定想问这么一套东西跑起来贵不贵直接上数据。按生产环境估算每小时巡检一次每天行为分析和自动修复各一次。巡检一轮大概消耗1万token一天24次一个月720次总共720万token。行为分析一轮2万token一天一次一个月60万token。自动修复比较猛一个目标20到100万token一个月按10个目标算200到1000万token。加起来一个月大概1000万到1800万token。用DeepSeek V4-Pro来算输入3块钱百万token输出6块钱百万token缓存命中还有折扣。月度成本大概30到80块钱。30到80块钱是什么概念你请个实习生吃顿火锅都不止这个价。而且实习生会犯错、会请假、会离职这套系统7×24小时在线从不摸鱼从不喊累从不跟你谈职业规划。当然如果你用GPT-4o或者Claude价格会高出一到两个数量级。这就好比同样的活请DeepSeek是请大学生兼职请GPT-4o是请硅谷资深工程师。效果可能更好但钱包也得更厚。成本明细表月度巡检~720万token主要是重复prompt缓存命中率高行为分析~60万token聚类健康评估自动修复~200-1000万token取决于bug复杂度和文件数量总计~30-80元DeepSeek V4-Pro对比GPT-4o/Claude会贵10-100倍三个层次从搬砖到当老板这套机制按自动化程度可以分三层对应程序员的三种生存状态。L1纯人工人看日志、人分类错误、人写修复代码。这是大多数小团队的现状程序员就是消防员哪里着火往哪跑。优点是掌控感强缺点是累成狗bug永远修不完。L2辅助系统自动采集数据、自动找出可疑错误但分类和修复还是人来做。相当于给消防员配了烟雾报警器至少不用等用户投诉才知道起火了。但灭火还得自己来。L3主导系统负责采集、识别、分类、生成修改、提PR人只负责审查PR和做高风险决策。这是本文主要讲的状态程序员从消防员升级成了消防局长坐在指挥中心看大屏幕偶尔批个文件就行。升级路径也很清晰先加Tracing到L2再接上LLM巡检和自动修复到L3。就像打游戏先解锁基础技能再解锁大招。效果怎么样数据说话LobeHub那帮人已经跑通了。9轮巡检之后Pattern库从31条饱和到104条新增Pattern数量从31持续降到0。这意味着什么意味着系统毕业了该认识的错误都认识了未匹配的错误越来越少。更直观的是成功率数据。Agent成功率从早期的75%提升到95%以上。75%是什么概念每四个请求就有一个失败用户用你的产品就像在玩俄罗斯轮盘赌。95%是什么概念基本可以放心地让用户用了偶尔抽风也能接受。巡检过程中发现了20多个Harness自身的缺陷。这些缺陷以前藏在代码里像定时炸弹不知道什么时候会炸。现在被一个个挖出来、修掉系统的稳定性是实打实地在提升不是那种我们优化了性能但用户完全感受不到的虚招。而且这套机制是越跑越顺的。Pattern库积累多了新错误来了直接匹配不需要每次都麻烦LLM。同一类错误只需要开发者审核一次以后再出现系统自己处理。人的工作量从修每个bug变成了审核每类bug效率提升不是一点半点。怎么落地五步走起想在自己的项目里搞一套不用从头写按这五步来第一步在Agent Loop里加Tracing。每执行完一步就立刻写入数据库关键是即时写入——Agent崩溃了已完成的步骤记录也不会丢。没有trace数据后面什么都干不了这是地基。第二步错误分桶。按供应商×错误类型×状态码×工具名×错误消息做GROUP BY分组通过SQL就能看到哪些错误出现得最频繁。这跟医院看门诊一样先统计哪种病最多再集中资源解决。第三步定时LLM巡检。把未匹配的错误桶发给LLM让它生成新Pattern。用generateObject加Zod Schema约束输出格式保证LLM不会给你返回一堆散文。第四步自动回扫。新Pattern生成后立刻回扫历史错误之前没匹配上的现在能被自动归类。这相当于新学了一个知识点立刻把以前的错题本翻出来重新批改。第五步自动修复。巡检识别出的harness_bug和行为分析标记为critical的问题进入自动修复队列。修复Agent读取源码、生成修改、提交PR人只负责审核。生产环境里这三个任务配成定时任务巡检每1-2小时一次行为分析每天一次自动修复每天凌晨一次。执行顺序有依赖先巡检、再分析、最后修复。实现方式不限cron job、GitHub Actions、Temporal都行核心是定时调用同样的函数。生产环境调度建议错误巡检每1-2小时自动执行只分析上一个周期的新增错误行为分析每24小时自动执行行为模式是慢变量需要积累数据自动修复每天凌晨固定执行代码修改需要审慎安排在低峰期最后说两句这套东西的核心思路其实不复杂让系统自己发现问题、自己分析问题、自己解决问题人只做最后的把关。难点不在技术在思路的转变——从我亲自修每个bug到我设计一套机制让bug自己消失。很多程序员有个执念觉得代码必须自己写才放心。但你想啊你每天写的代码里有多少是在重复解决同样的问题有多少bug是以前修过、换个马甲又出来的如果系统能自动处理80%的常规问题你就有时间去解决那20%真正有价值、真正需要人类智慧的问题。而且说实话凌晨三点被报警叫醒修bug这种体验有一次就够了。让AI去熬那些夜吧你睡个好觉第二天精神饱满地审它的PR不香吗当然AI不是万能的。它可能修错可能引入新问题可能在你最不希望它动手的时候突然提交了一个PR。所以安全边界很重要不自动合并、有回归验证、有人工审核。AI可以当一个好帮手但别把它当成神。最后如果你也想试试GitHub上有个demo项目evo-agent-demo克隆下来跑一跑比看十篇文章都管用。毕竟代码不会骗人但文章可能会。P.S. 无意间发现了一个巨牛的人工智能教程非常通俗易懂对AI感兴趣的朋友强烈推荐去看看传送门https://blog.csdn.net/HHX_01