使用 AI 编程代理修复遗留代码时应遵循的原则
25 April 2026
0
Computing/SoftwareComments (0)
Log in to leave a comment
No posts yet
Log in to leave a comment
No posts yet
让代理在你的电脑上随意操作是很危险的。特别是如果将 API 密钥随意留在环境变量中,代理可能会意外地将密钥记录在日志中或将其发送到外部。请使用 1Password CLI。这种方式只在执行命令时才将密钥临时存入内存。
为了防止代理意外触碰核心文件,必须隔离文件系统。创建一个 .cursorignore 文件,并将 SSH 密钥、构建产物和敏感配置文件从列表中完全排除。仅在项目根目录下放置该文件,就能使代理修改错误文件的概率降低 80%。尽可能在 Docker 容器内运行代理。这是防止代理直接触碰宿主系统的最可靠方法。
让代理读取整个项目会导致每月的 API 费用无法承受。尤其是让代理读取 node_modules 或 .git 文件夹纯粹是在浪费钱。
只向代理传递必要的代码。随着项目规模的扩大,缩小索引范围是必不可少的。如果你使用的是 Aider,请通过 /tokens 命令实时查看目前的消耗情况。任务完成后,必须立即通过 /drop 命令将文件从上下文中移除。仅此一项就能将不必要的 Token 消耗减少 70% 以上。选择支持 Anthropic 上下文缓存的模型,可以对重复的代码结构获得约 75% 的额外折扣,因此请务必检查 API 账单并适时更换模型。
遗留代码的依赖关系错综复杂,如果草率地交给代理处理,整个系统可能会崩溃。不要盲目地让它编写代码。必须使用 XML 标签为代理提供上下文。明确写出要修改哪些函数,以及必须遵守的规则是什么。
不要直接合并代码。首先强制要求代理提交修改计划。采用只有在开发者批准计划后才允许编写代码的方式。代理修改后的代码必须在本地测试环境中运行。将 CI 失败日志直接扔回给代理,它就能自行修复 bug。研究结果表明,经过这一过程,无需额外干预即可修复 84% 的错误。
如果你想确认引入代理后效率提高了多少,请忘记代码编写速度。周期时间 (Cycle Time) 才是核心。必须衡量从编写、审查、修改到部署代码的整个总时长。
首先记录当前项目从首次提交到实际部署所需的天数。将代理反复犯的错误整理到 AGENTS.md 文件中,并作为编码规范保留下来。如果 AI 编写的代码在某个模块中质量特别差,那不是 AI 的错,而是系统架构的问题。每周检查每个 PR 的返工率。工具终究只是工具。将代理视为同事,并根据团队的工作流程调整基础设施,这才是决定开发团队竞争力的关键。