AI 编程工具的早期价值很容易衡量:补全了多少行代码、一次生成能否通过单元测试、开发者是否少敲了一些字符。编程代理改变了这个边界。它可以阅读仓库、定位问题、修改多个文件、运行命令、修复测试,甚至完成部署步骤。此时“代码生成量”迅速失去意义,因为更多代码既可能代表更大产出,也可能代表过度设计和更高维护成本。
真正值得关注的问题变成:代理完成的变更是否符合需求,是否保留系统原有行为,是否通过必要检查,出现问题时能否定位和回滚。换言之,研发团队需要从“评估一段输出”转向“验证一次交付”。
真实协作已经不是人写、AI 补全
Anthropic 2026 年 6 月对约 40 万次 Claude Code 会话的隐私保护分析显示,在典型会话中,人类做出约 70% 的规划决策,而代理做出约 80% 的执行决策。人决定做什么、采用什么方向、什么算完成;代理更多决定改哪些文件、运行哪些命令以及怎样实现。研究同时发现,领域知识越强,用户越能清晰定义任务、要求有效验证,并在代理偏离时纠正方向。
| 决策类型 | 人类 | Claude |
|---|---|---|
| 规划 | 约70% | 约30% |
| 执行 | 约20% | 约80% |
来源:Anthropic 对约40万次 Claude Code 交互会话的隐私保护分析(2025年10月至2026年4月)。数据描述单一产品中的典型协作模式,不代表所有团队,也不证明代码最终进入生产。
这组数据来自单一产品的会话与模型分类,不能直接代表所有开发团队,也不能证明代码最终进入生产。它仍揭示了一个重要趋势:人的价值没有从流程中消失,而是向问题定义、约束设计和结果判断移动。代理承担的执行越多,人对“完成条件”的表达就越需要准确。
这也解释了为什么把模糊需求直接交给代理通常会得到看似完整、实际难以合并的变更。代理擅长在明确环境中搜索和执行,却不会自动知道组织隐含的架构偏好、风险容忍度和上线规则。如果这些知识只存在于资深工程师脑中,自动化只会更快地放大歧义。
公共基准提供能力下限,不提供上线结论
SWE-bench把真实 GitHub Issue、代码仓库和可执行测试组合成任务,推动评估从孤立函数生成走向跨文件问题修复。OpenAI 的 SWE-Lancer又加入来自自由职业平台的 1400 多项软件任务,并使用端到端测试或工程管理决策进行评分。这些基准比传统代码题更接近实际工作,也让不同系统可以在可复现环境中比较。
但排行榜分数不能直接回答某个代理是否适合你的仓库。基准使用的语言、依赖、任务描述、测试覆盖和代理脚手架,可能与生产环境完全不同;静态题目还可能逐渐受到训练数据污染或针对性优化影响。更重要的是,企业关心的不只是“能否修好”,还包括是否改动了不该改的文件、是否引入安全风险、是否遵循兼容策略,以及复现失败需要多少时间。
公共基准适合判断能力趋势和建立最低预期,采购与上线则必须使用本组织真实任务的内部评测。模型、系统提示、工具、容器镜像和重试策略应作为一个整体被测,因为最终表现来自整套代理系统,而不是模型名称。
先把“完成”改写成机器可检查的条件
高质量代理任务不只是一个 Issue 标题,而是一份可执行契约。它应说明允许修改的范围、必须保持的行为、需要新增或更新的测试、性能与安全约束、依赖和数据库变更规则,以及需要人工确认的决策。
例如,“优化登录接口”几乎无法验证;“在不改变成功响应结构的前提下,将密码错误与未知账号统一为相同外部响应,保留现有限流,并新增三个安全回归测试”才接近可交付任务。后者给代理留下实现空间,同时提供客观的结束条件。
完成定义最好分成四层:功能测试确认需求成立,回归测试保护旧行为,静态检查覆盖类型、格式和常见安全问题,运行时检查验证迁移、性能或浏览器状态。主观质量可以由人工或模型评分辅助,但只要能用确定性检查验证,就不应退回“看起来不错”。
验证对象既包括结果,也包括过程
Anthropic 的代理评测实践区分了最终环境状态与完整执行轨迹:代理声称“预订成功”并不重要,数据库里是否真的存在正确记录才是结果;与此同时,工具调用、参数、重试和中间修改能够解释结果是如何产生的。
对编程代理而言,结果层应检查测试、构建产物、页面状态、数据库迁移和部署健康度;过程层应记录读取了哪些关键文件、修改范围是否异常、是否绕过测试、是否访问不必要的凭据,以及失败后采取了什么恢复动作。过程不必限制为唯一正确路径,但必须能发现高风险捷径。
每次代理执行都应形成一条可追溯链:需求版本、仓库提交、代理与模型版本、环境镜像、工具权限、补丁、测试结果、人工反馈和最终发布记录。没有这条链,失败只能被归咎于笼统的“AI 不稳定”,团队也无法把真实事故沉淀为回归用例。
研发门禁需要围绕风险分层
并非所有变更都需要相同审批。文档修正、测试补充和局部重构可以在隔离分支中高度自动化;认证、计费、权限、数据库结构和基础设施变更则应保持更严格的人类审查与分阶段发布。风险分层应同时考虑影响面、可逆性、数据敏感度和验证充分度,而不是只看改动行数。
一个实用流程是让代理先在临时工作区中诊断并提出计划,再执行最小补丁和本地验证。系统自动运行受影响测试、全量回归、静态与依赖安全检查,随后生成面向审查者的变更摘要:为什么改、改了什么、证据是什么、剩余风险在哪里。只有满足门禁的低风险变更才进入自动合并候选;高风险变更必须由明确负责人批准。
权限也应逐级开放。早期只允许读取、搜索和提出补丁;稳定后允许在沙箱运行测试;再之后才考虑创建分支、提交合并请求或触发预发布。生产凭据、直接推送主分支和不可逆数据操作不应因为代理在某个基准上得分更高而默认开放。
评估指标要从速度扩展到可靠性
只看单次成功率,会掩盖同一任务重复运行时的波动。代理评测指南建议区分至少一次成功的 pass@k 与连续多次都成功的 pass^k。探索性工具可能接受多次尝试中一次成功,持续集成或客户生产流程则更在意第一次成功和重复一致性。
团队可以建立一组更接近经营结果的指标:首次任务成功率、回归缺陷率、人工返工时间、审查等待时间、单位合格变更成本、回滚率、生产逃逸缺陷以及从需求到上线的总周期。代码行数、提交数和代理运行次数只能作为容量信号,不能作为产出质量。
评测集也要持续更新。把线上事故、被拒绝的补丁、难复现问题和新架构约束转成任务;能力测试用于探索代理还能解决什么,回归测试则保护已经稳定的行为。模型升级、提示调整、工具变更或权限扩大,都应触发同一套基线。
团队角色会改变,但不会消失
编程代理减少的是部分实现摩擦,并没有替代产品判断、领域知识和责任承担。产品与业务专家需要把隐含需求写成可检查条件;工程师需要设计架构边界、测试和回滚;安全与运维团队需要定义权限和发布门禁;代码审查者则从逐行寻找语法问题,转向验证假设、系统影响和证据完整性。
这可能让更多非工程背景的领域专家构建工具,但“能生成代码”与“能运营软件”仍是两回事。只要软件会接触真实用户、数据和资金,组织就必须为变更建立所有权。代理可以执行,责任不能委托给模型。
下一阶段的竞争是验证系统
模型能力继续提升后,生成一个可运行补丁会越来越普通。真正稀缺的能力,将是把模糊问题转成清晰契约,在受控环境中执行变更,用多层证据判断结果,并让失败快速回到可恢复状态。
因此,部署编程代理最值得优先投资的不是更多自动生成,而是更好的测试、更明确的仓库规范、更短的反馈回路和更完整的追溯记录。当团队能够回答“它为什么改、如何证明、谁来批准、出错怎样退回”,代理才从高效演示变成可信的软件交付能力。

DISCUSSION
评论 0
理性讨论,尊重不同观点。
登录后参与讨论。
登录注册账号还没有评论,欢迎留下第一个观点。