我们组的 CI 有个顽疾:测试经常半夜挂。有次是真问题,更多时候是环境抖动、依赖拉取超时、某个第三方接口偶尔 502。值班的同学半夜被叫起来,一看是超时,重跑一遍就绿了——一晚上白醒。这个月我把"第一轮排查"交给了 Agent,说说效果。
原来的流程:测试挂 → 企业微信告警 → 值班同学起来看。现在的流程:测试挂 → Agent 先接管 → 它判断出结论之后才发通知,通知里带着它的判断和处理建议,值班同学是看到结论才决定要不要起床。
Agent 接到失败通知后干的事:拉失败日志,判断失败类型。是断言失败就分析是哪个用例、最近哪次提交改了相关代码,给出嫌疑 commit;是超时或网络错误就先自动重跑一次,重跑绿了就标注"环境抖动,已恢复"不发人;重跑还挂才升级成人工告警。
一共触发 23 次。12 次是环境抖动和网络超时,Agent 重跑后恢复,值班同学一次都没被叫。6 次是真代码问题,它给的嫌疑 commit 全部命中或接近命中,其中两次直接定位到了具体某行改动。剩下 5 次是它拿不准的,比如一个 flaky 测试时好时坏,它老实标了"原因不明,建议人工",没有硬编结论。
也就是说,半夜被叫醒的次数从 23 次降到了 11 次,而且每次醒来时案发现场已经有人(虽然不是人)勘查过了。
最初版本我让它可以自动重试部署,被我自己否了。Agent 的判断再准,"重新部署到环境"这种带副作用的动作也必须人来点确认。它的职责是排除噪音和提供线索,决策权留在人手里。这条边界画清楚之后,我才敢让它在半夜无人值守地跑。
这个场景给我的启发比之前任何智能体都深:Agent 最好的落地姿势不是替代谁,是站在告警和人之间当那道过滤网。噪音它吃掉,信号它加上下文再递过来。值班这种最消耗人的杂活,可能就是智能体最先普及的地方。