\n\nAI代理正重塑开发工作流,但在受监管行业中,缺乏审计追溯能力正成为核心阻碍。由于CI日志无法捕捉代理的推理逻辑,企业需建立“记录执行”体系以确保操作可溯源。
译自:As agentic dev tools boom, workflow auditability becomes the constraint
作者:Brian Wald
最近,我正与一家大型金融机构的高级工程负责人合作,审查他们的 DevSecOps 平台工程路线图。他们的团队在开发工作流中部署了一个 AI 编程代理。合并请求(MR)被开启,流水线在运行,速度指标正朝着正确的方向发展。
接着,内部审计和合规团队提出了一个看似简单的问题:对于一个由代理开启、更新了支付服务依赖项的特定 MR,能否展示是谁批准了更改、代理使用了哪些输入和提示语(prompts)、在 MR 时评估了哪些策略检查,以及如何复现或撤销该确切的工作单元?
该团队无法给出答案。
代理正在产生输出,但交付系统对代理的工作没有“有界、可审计的事务”这一概念。通过 CI 并获得批准的差异(diff)只能证明更改发生了。
它无法证明代理消耗了哪些上下文、在创建 MR 之前评估了哪些策略决策,或者你是否能在后续的流水线运行中复现该结果。
在受监管的环境中,“如何做”和“为什么做”才是全部重点。
“我观察到这种动态在每一个我参与过的平台和 DevSecOps 组织中上演。代理式 AI 编程工具的预算在几周内就能获批。而用于代理执行记录、身份绑定和重放工具的预算要么从未出现,要么被视为合规负担。”
我观察到这种动态在每一个我参与过的平台和 DevSecOps 组织中上演。代理式 AI 编程工具的预算在几周内就能获批。而用于代理执行记录、身份绑定和重放工具的预算要么从未出现,要么被视为合规负担。
四大合规异常
一旦代理开始在受监管的 CI/CD 环境中开启 MR,一类可预测的合规异常就会出现。这些类型在不同客户中几乎没有区别:
溯源缺失。 没人能展示代理消耗了哪些输入:任务规范、检索到的上下文引用、工具调用以及调用时的存储库状态。
身份归属不明确。 没人能区分代理发起的更改与人类发起的更改,因为代理是在共享服务令牌下操作的,操作上没有署名的人类发起者。
决策链不可重构。 没人能展示在创建 MR 之前评估了哪些策略检查,或者代理为什么选择一个选项而非另一个,因为推理过程仅记录在临时追踪中。
回滚无界。 撤销变成了跨提交和仓库的手动考古,因为代理的编辑是耦合的,没有清晰的事务边界来撤销。
解决意味着重构:挖掘聊天记录、部分 CI 输出以及任何仍然存在的代理追踪。在大多数组织中,没人统计每周在这上面耗费了多少小时——这正是成本保持隐形成因。
这是一个可证伪的检查:挑选最近一个由代理开启、涉及依赖项或 IaC 文件的 MR。你的团队能否在一小时内提供一份单一证据包,包括确切的任务规范、仓库状态引用、MR 时评估的策略检查以及拥有该操作的人类发起者身份?
为什么 CI 日志力有不逮
由人类编写的 MR 拥有一套相对有界的证据集,包括差异、批准和流水线结果。由代理编写的 MR 则需要所有这些,加上任务规范、检索到的上下文引用、工具调用、模型版本、策略评估,以及足以通过固定输入重放任务的状态。CI 日志不涵盖这些。它们显示流水线步骤和输出,而不是代理的上下文、工具调用或在创建 MR 之前评估的策略决策。
随着代理采用率的普及,每个 MR 的微观决策数量在增加,而手动记录这些决策的能力却停滞不前。这就是计算失效的地方。
“随着代理采用率的普及,每个 MR 的微观决策数量在增加,而手动记录这些决策的能力却停滞不前。这就是计算失效的地方。”
一旦非人类系统开始编写更改,交付系统就需要一个持久的记录来记录它看到、决定和做了什么,并将其作为工作流的一部分,而不是单独的补充。代理让这变得更难,因为它们的输入是不可复制的。如果再次运行,检索到的上下文、模型版本和推理将不会产生相同的输出。缺失的环节是将代理的上下文和操作绑定到 MR,使其成为持久的人工制品而非侧信道。
何时“先上线”可行——以及何时不行
我见过“先上线,后治理”行得通的情况。一个高效的产品团队在有限的范围内使用代理——测试生成、小规模重构、文档更新——并拥有强大的代码审查文化、有限的爆炸半径,以及经验丰富的工程师在合并前捕捉问题。当代理被限制在低风险范围,且每项更改都经过强大的审查和策略即代码门禁时,仓库和流水线通常仍是记录系统。
我也见过相反的失败案例。一家大型企业试图在规模化使用之前,为所有自动化构建一个稳定的工作流底层。结果演变成了一项跨季度的平台工作,涉及架构辩论、无法兑现的重放承诺,以及一旦开始存储提示语就出现的新的 数据保留问题。产品团队为了赶进度绕过了平台,转而使用带有严格防护栏的轻量级代理。审计得到了满足,但平台工作主要延迟了采用,同时创造了更多的治理表面积。
当团队在没有同样的审查纪律的情况下采取“先上线”精神时,当提示语库随着不一致的日志记录而激增时,以及当共享服务令牌使得跨组合的身份归属变得不可能时,这种模式就会破裂。一种可以忍受的局部变通方案,在审计首次要求跨组合证据一致性时,就会变成企业的负债。
当速度超过治理
竞争压力奖励速度,而监管机构奖励可重构性。领导层必须两者兼顾。
在没有记录执行层的情况下快速行动的代价不是构建失败。而是在监管审查期间发现的证据鸿沟、具有高管可见性的长达数周的补救措施,以及在每一个从未被妥善记录的代理发起更改中不断复合的爆炸半径。
“在没有记录执行层的情况下快速行动的代价不是构建失败。而是在监管审查期间发现的证据鸿沟。”
为记录执行工作配置人员
实际的做法是明确命名这项工作为“代理式 CI/CD 的记录执行(Recorded Execution for Agentic CI/CD)”,并像对待产品一样为其配置人员,让平台工程、安全、审计联络和开发者体验部门共同参与。交付成果直接对应于上述四个重构失败:捕获输入、输出、工具调用、模型版本和策略结果的执行记录架构;将每个代理操作与人类发起者绑定的身份绑定;MR 和流水线时的策略决策日志;以及使工作单元在固定输入下可重新运行的重放和回滚原语。
通过运营指标进行管理:代理发起的 MR 的合规异常队列深度、平均证据获取时间、重放成功率以及审计跟进后的异常重新开启率。如果你只能做一件事,请先为风险最高的用例(如依赖项更改、IaC 修改和安全配置)构建执行记录和重放路径,然后再进行扩展。
最后一个测试:要求团队挑选一个已合并的、由代理编写的更改,并仅使用记录的人工制品,执行一次干净的、作为单一有界单元的回滚。如果回滚需要 Slack 搜索、本地克隆或重新创建提示语并寄希望于好运,那么你就有了你的行动计划。全 工智能