Agent 一接操作审计就开始把“看到过”当“做过”:从 Evidence Window 到 Action Proof 的工程实战 很多团队把 Agent 接进操作后台后第一反应是把日志打全。可事故复盘里最常见的问题不是没日志而是 Agent 把看过的证据和做过的动作混成一件事。它读到一条旧的“已禁用账号”记录就以为这次工单也完成了禁用或者看到旁路成功提醒就把提交动作跳过去。⚠️ 审计一多更容易制造“做过了”的错觉。这类问题不是权限越界而是证据归属漂移。同一个页面里同时存在历史操作、提醒、草稿状态和最终结果模型如果没有明确的证据窗口就会把任何像结果的文本都拿来当提交依据。 审计真正缺的不是记录密度而是“哪条记录能证明这次动作真的发生过”。图 1审计页面里同时出现历史记录、提醒消息和提交结果时最容易发生证据错绑## 误操作不是没记录而是证据窗口失控 很多审计系统默认把最近几十条记录都暴露给 Agent希望它自己补全上下文。问题在于模型擅长补全却不擅长判定哪条才是本轮有效回执。只要页面上存在“成功”“完成”“已处理”这类词它就可能把旧记录借来当新结论。这里最该先做的是把本轮允许引用的证据限定在一次交互之后形成的窗口里。所谓Evidence Window本质上是给 Agent 一个可核对的证据边界从点击提交开始到拿到当前动作生成的结果 ID、状态文案或回执时间戳为止只有这个区间内的记录才允许被当成“做过”的证明。窗口之外的历史日志可以看但不能直接驱动提交完成。✅图 2Evidence Window 先切出本轮可引用的审计区间再决定哪些记录有资格成为完成依据## 两层约束比“多打一条日志”更有效 ️只有证据窗口还不够因为窗口内也可能同时出现试运行日志、异步补偿消息和真正提交结果。更稳的做法是再加一层Action Proof。它要求 Agent 在执行高风险动作前后显式回证三个字段目标对象、触发动作、结果摘要三者缺一不可。提交前不能只说“页面显示成功”而要说“对账号 A 执行禁用回执 ID 为 X状态为 success”。pythonfrom dataclasses import dataclassfrom typing import Iterabledataclassclass AuditEvent: seq: int target_id: str action: str status: str receipt_id: str | Nonedef build_action_proof(submit_seq: int, target_id: str, action: str, events: Iterable[AuditEvent]): window [e for e in events if e.seq submit_seq] for event in window: if event.target_id target_id and event.action action and event.receipt_id: return { target_id: event.target_id, action: event.action, status: event.status, receipt_id: event.receipt_id, } raise ValueError(missing action proof inside evidence window)| 方案 | 能看到历史记录 | 能证明本轮动作 | 误把旧结果当新结果的风险 ||------|----------------|----------------|--------------------------|| 只堆审计日志 | 高 | 低 | 高 || 仅做对象匹配 | 中 | 中 | 仍然偏高 || Evidence Window Action Proof | 高 | 高 | 低 |这套约束并不复杂却直接改变了协作方式。以前人工复盘常问“它明明看到了为什么还会做错”加上这两层后问题会变成“它这次拿到的 proof 是什么”。前者是在猜模型后者是在验动作。 一旦讨论对象从“感觉像完成”变成“有没有 proof”误操作链路就更易被提前拦住。图 3把对象、动作、结果摘要绑定成 proof 后审计流才真正从“可看”变成“可提交”## 审计能力的分水岭在于敢不敢把“已看到”降级 很多系统把“日志完备”当成熟标志但对执行链路来说最重要的不是看到多少而是哪些证据能推动状态前进。只要还允许模型拿历史成功提示替代当前回执再漂亮的审计面板也只是复盘工具不是在线约束。接下来 3 到 6 个月这类约束会越来越像事务系统里的提交证明。尤其在审批、封禁、批量导入、工单回写这些高风险后台团队会逐步把 proof 变成统一接口而不是留给 prompt 发挥。 值得投入的不是再堆提示词而是把“证据窗口”和“动作证明”做成能力。你的系统今天能区分 Agent 是看到了结果还是做成了动作吗