AI 编程工具如何接到既有代码库
把 AI 编程工具接到既有代码库,先划定它可以读、可以改的目录,再允许它提出差异。秘密、凭证与尚未公开的合同留在这个范围之外。差异进入主分支之前,仍由负责人审查。
先划可读可改的目录
打开整个磁盘,等于让工具把任何读到的内容写进建议或差异。先列出本次任务要动的目录,以及明确排除的目录,例如凭证、薪酬、未公开合同、客户导出档。
范围写在项目说明里,让下一个接手的人看得到。评估是否值得接到现有审查与构建,见 方案评估、原型及整合。
秘密与凭证留在范围外
密钥、连接字符串与个人资料不放进会被工具读取的目录,也不贴进对话。需要连接时,用既有的秘密管理方式在执行环境注入,让程序读环境,让工具看不到值。
GitHub Copilot inline suggestions 的负责任使用说明 要求沿用安全编程做法,例如避免写死密码,以及避免会造成注入的写法,并写明语法正确的建议仍未必安全。建议被接受之前,仍对照这两类问题看一遍。
代理会自己挑文件
在 IDE 中使用 agent mode 写明,Copilot 在 agent mode 自行决定改哪些文件。你审查变更,并在默认情况下先核准终端命令。若菜单里没有 Agent,可能是管理员已关闭这个模式。
Cursor Agent 说明 写明,Agent 的工具包含搜索与读取文件、套用编辑、执行终端命令,且一次任务里的工具调用次数没有上限。调用次数没有上限,更需要事先写明哪些目录不在范围内。产品怎么选,见 Cursor 和 GitHub Copilot 怎么选。
终端命令默认要人核准
Copilot 的说明把「默认先核准命令」写成控制的一部分,并写明管理员或编辑器设置可以允许部分命令自动执行。自动执行的清单要短,而且每一项都写明失败时会不会改资料。
会安装依赖、会推送远端、会改数据库或会删文件的命令,不放进自动执行。人核准时要看到完整命令,少只看到一句「需要跑一下终端」。
检查点不能代替版本库
Cursor Agent 说明写明,检查点在较大改动前自动建立,存在本机,与 Git 分开;还原只恢复文件,不删除对话。该页并写明,检查点只用来撤销 Agent 的改动,永久的版本控制仍用 Git。
因此,代理改完之后仍要提交到团队已经在用的分支与审查。只留在编辑器的检查点里,换一台机器或换一个人就看不到这份差异。
差异进审查再进主分支
代理提出的差异走与人工修改相同的审查:谁可以核准、要跑哪些既有检查、哪些文件类型必须另有负责人看过。审查人看的是差异本身,少把「代理说已完成」当成核准。
超出事先目录的文件一律退回。退回时由人删除多余改动,再把范围写得更窄,然后才允许下一次任务。自动完成与代理的分别,见 AI 编程代理和自动完成有什么分别。
什么时候先不要接上
代码库还没有分支与审查、目录里仍混着秘密、或没有人有时间看差异时,先不要把代理接到这棵树上。先补审查与目录,自动完成可以留在单个打开的文件里。
本文不给出缺陷下降或交付加快的数字。那些数字要来自贵司自己的审查与构建记录,并注明口径。没有这份记录之前,用「范围有没有写明、差异有没有进审查、命令有没有按规定核准」来检查接上是否在按流程走。
