本节摘要:代码是智能体执行结果最容易被验证的领域——测试能跑、编译能过、评审能看,这三样让代码智能体成为落地最快、也最容易把"验证"制度化的场景。本节讲清它的工具集与安全边界(沙箱、最小权限、审查门),并用一个修复失败测试的完整过程展示务实的用法。
代码场景的独特优势在于反馈闭环是自动的:别的领域判断"做对了没有"要靠人,代码只需要跑一遍测试。这个特性让第 7 章的评测思想在这里可以直接落地成 CI 里的机器门禁——代码智能体也因此成为"自主执行 + 机器验证"模式走得最远的场景。
代码智能体的工具集围绕一条主线设计:观察(读)、验证(跑)、修改(写)三类工具,权限与边界各不相同。
CODE_AGENT_TOOLS = [ # 观察类:只读,放开 "read_file", "search_codebase", "list_dir", "read_test_report", # 验证类:在沙箱内执行,资源受限 "run_tests", "run_lint", "run_build", # 修改类:只在工作分支,且必须走审查门 "create_branch", "commit_changes", "open_pull_request", # 明确不开放:直接推送主分支、修改 CI 配置、操作生产环境 ]
三类里的边界设计是关键。观察无界:读懂上下文是修对代码的前提,代码库内的只读操作不设限。验证沙箱化:运行测试意味着执行代码——执行环境必须是隔离容器,限 CPU、限内存、禁外网(防测试代码被诱导外联),每次执行即弃。修改走分支:所有修改落在新分支,变更的唯一出口是拉取请求——这条通道天然嵌入了人类评审与 CI 门禁,是审查门的物理载体。
跑模型生成的代码,等同于跑一份来路需要警惕的程序——即使没有恶意,也有误操作(递归删除文件、死循环占满资源)。沙箱配置的四个硬项:文件系统只挂载项目目录且临时化;网络默认禁用,白名单按需开(装依赖时开包管理源);资源上限(CPU 时间、内存、进程数)写死;敏感凭据(部署密钥、数据库口令)永不进入沙箱环境。这些约束与 7.4 节的权限最小化一脉相承,只是代码场景把它变成了物理隔离。
背景:CI 报错,一个日期格式化函数在某些时区下返回错误结果。开发者把任务交给代码智能体:"修复 test_format_date 的失败,保持既有行为约定。"
操作:智能体的轨迹清晰走了工程师的四步——先读测试报告与相关测试代码,复现失败样例(东八区之外的时区返回了本地日期而非 UTC 派生日期);再读实现代码,定位到未显式指定时区参数的调用;修改实现并自跑全量测试(十二个相关用例全绿);最后在拉取请求里写明:根因、修改点、验证结果与一个此前未覆盖的边界用例(夏令时切换日)。
结果:人类评审四分钟批准合并——评审时间短的原因是拉取请求把证据链摆全了,评审者核对结论即可,无需自行排查。
解读:这个案例最能体现代码场景的"验证前置":智能体在提出修改前已经用测试自证,人类评审从"验证者"前移为"裁决者"。务实的代码智能体用法从来不是"替你写整个系统",而是把这类根因明确、验证自动、边界清晰的任务整段接管——测试生成、依赖升级、样式重构、报错排查,都是同类富矿。
变式:测试生成是另一个高价值方向——给既有实现补单元测试。它的验证闭环更巧妙:生成的测试要求先在当前实现上全绿(不臆造行为),变异测试再检验测试的有效性(故意改坏实现,测试应当变红)。两道机器关卡让"测试质量"本身可度量。
⚠️ 常见坑:把代码智能体的产出直接视为可信。测试全绿只说明"符合既有测试的预期",测试盲区里的回归、被"顺手修改"带进的无关变更,都要靠人类评审与变更范围约束兜住——审查门的存在意义正在于此:智能体改得越快,门越不能松。
最后一节收全册的口:无论哪种场景,上线前的成本、延迟、降级、回滚四件事,一张检查单备齐。
代码智能体的效果度量常被简化成"生成了多少行代码",这几乎是所有度量里误导性最强的口径。务实的度量围绕三个层级:采纳层——智能体提交的变更有多少被人类评审原样或略改后合并(采纳率),被整体拒绝的变更里高频原因是什么(理解错需求、改动范围过大、风格不符);验证层——智能体自报"测试通过"的准确率,有没有虚报(跑了部分测试就说全绿);回流层——被合并的变更后续的返工率与故障关联,采纳但一周内回滚的变更是理解偏差的滞后信号。三个层级合起来回答一个真实问题:这个智能体在替团队省时间,还是在制造更隐蔽的返工。度量建好后,还有个反直觉的发现值得期待——采纳率的提升往往不来自更强的模型,而来自任务描述模板与工具边界的微调,这正是 8.1 节"场景工程师"角色的价值所在。
代码智能体嵌入研发流程的位置,决定它的价值天花板与风险下限。按嵌入深度分三档:IDE 内辅助——补全、解释、局部重构,人机同屏,风险最低,几乎所有团队都可以直接启用;分支级托管——本节的模式,智能体在独立分支上完成整段任务并走拉取请求,适合测试完备、边界清晰的维护类任务;流水线级自治——智能体自动响应告警、定位、修复、提交,只有测试覆盖极深、回滚成本极低的系统才敢尝试。团队的上行路径通常是从 IDE 辅助起步,用采纳数据证明价值,再逐档放开——跳过 IDE 阶段直接上流水线自治的团队,大多在第一次静默回归后就全部回退。与 8.1 的形态光谱对照着看,三档嵌入位置正是副驾驶到后台自治光谱在代码场景的具体投影。