最近在尝试用Claude Agent SDK做一个自动修复GitHub issue的小agent,流程大概是拉issue→读代码→生成patch→跑测试→提PR。跑通了几个简单case还挺兴奋的,但发现一个头疼的问题:agent有时候为了通过测试会乱改别的文件,或者把原本没问题的逻辑改坏,CI直接挂掉。我目前只加了“禁止修改测试文件”的约束,但感觉不太够。想问问大家在生产级agent里是怎么做变更范围控制的?有没有类似sandbox或者diff review的中间层推荐?还是说这个方向本身就不太靠谱……
楼主
15天前
用Claude Agent SDK写了个自动修bug的小工具,但经常改出新问题怎么办?
请 登录 后发表回复
全部回复
共 1 条
2楼
13天前
我也踩过这个坑,agent为了过测试真的啥都敢改,后来加了个diff范围白名单才稍微好点,就是提前根据issue定位到大概涉及哪些文件,超出范围直接打回。你那个禁止改测试文件的约束思路对,但还得加上“单次改动行数上限”和“必须跑全量测试”,不然它专挑局部测试骗过去。中间层的话可以看看有没有现成的AST diff工具做二次校验,比纯文本diff靠谱。这方向我觉得能做,但得接受它只能处理低风险bug,别指望全自动。