读完能建立Agent评测表、风险清单与发布门禁阈值,今天完成灰度回滚与人工审批检查。
作者:进学斋 · 观山书院
全文约4162字 · 阅读约需14分钟
最近有团队把 Agent 接到工单、报表和邮件草稿。离线评测分数漂亮,上线第一天却把错误数据写进了系统。问题不在模型不会答,而在工程没有门禁。
这篇不讲抽象理念。你可以直接拿三张表落地:评测表、风险清单、发布门禁,再配一套灰度回滚与人工审批检查。
一、模型分数为什么不能直接上线
评测分数常来自固定样例。它说明模型在已知题上能答对,不说明真实任务能稳定完成任务。
真实任务会更脏。输入被截断,附件格式乱,工具超时,权限不足,上下文变长,都会改变结果。
Agent 的风险还来自副作用。一次错误外呼、误删文件、越权读取,往往比文案低分更难补救。
分数只是仪表盘。上线需要把能答对拆成可观测、可拦截、可回滚三个工程状态。
可观测,是知道它为什么这样做。可拦截,是能在越界前停下。可回滚,是出事以后能退到安全路径。
你可以从一个简单动作开始:给最近三次线上失败分别写清楚,工具返回是什么,模型下一步做了什么,人工有没有介入。
—— 分数像车速表,上线还需要刹车和限速。没有刹车,仪表盘只会制造幻觉。

配图·江水竹影
二、三张表怎么搭:评测、风险、门禁
评测表:不要只看总分
评测表记录任务成功率、格式合规、平均成本、延迟和失败轨迹。总分方便比较版本,分维度才方便判断能不能上线。
格式合规包括字段齐全、枚举合法、金额单位、引用来源和结构要求。Agent 常能把话说漂亮,却漏掉关键字段。
平均成本要按任务计,不按对话轮数计。多轮规划、重试、长上下文都会让成本快速上升。
失败轨迹必须留输入摘要、工具调用、返回异常、模型下一步动作。只留一个错误码,无法复盘。
评测集要混入对抗样例、脏数据、长任务和工具失败场景。否则高分可能来自一套太干净的题。
你可以把评测表做成可追加的清单。每周一批线上失败样例,补进回归集,让评测表跟着业务变化。
task_record:
task_id: string
scenario: ticket_draft
success: bool
format_ok: bool
cost: metric
latency: metric
failure_trace: list
tool_errors: list
风险清单:按动作分级
风险清单不要按业务名称分级,要按动作分级。读文件、写文件、发邮件、调用外部 API、访问敏感数据、删除数据,影响不同。
读操作风险低,但可能暴露敏感信息。写操作风险高,因为会改变业务状态。外呼风险最高,因为它会触达外部世界。
每个动作标注四件事:影响等级、责任人、是否需要审批、是否允许自动重试。没有四件事,清单会变成形容词。
允许自动重试的动作,要设上限。工具失败一次可以重,连续失败还重,会放大成本和错误。
你需要一张动作权限矩阵。没有矩阵,Agent 很容易把建议变成执行。
门禁表:把阈值变成动作
门禁表不是口号,是条件判断。低于质量线就阻断,超成本就降级,连续工具失败就熔断。
阈值可以保守。早期宁可少发布,不可让副作用扩大。灰度期更看重停得下,不看重跑得快。
门禁动作要能执行。阻断要停止路由,降级要切到只读或旧模型,熔断要停止新请求并保留现场。
你可以先把阈值写成人工检查,再逐步自动化。比如先看 success_rate、tool_failure_rate、cost_per_task。关键是每个指标有人负责,有人知道下一步做什么。
gate_rule:
if success_rate < quality_line:
action: block_release
if cost_per_task > budget_line:
action: degrade_route
if tool_failure_rate > circuit_breaker:
action: stop_new_requests
| 表 | 回答的问题 | 核心字段 | 上线动作 | 责任人 |
|---|
| 评测表 | 能不能稳定完成任务 | 成功率、格式合规、成本、延迟、失败轨迹 | 低于质量线阻断 | 测试与业务负责人 |
| 风险清单 | 哪些动作会造成副作用 | 动作等级、审批方式、重试上限、责任人 | 高风险动作转人工确认 | 安全与平台负责人 |
| 门禁表 | 什么条件触发什么动作 | 阈值、触发频率、阻断降级熔断、回滚路径 | 超阈值自动降级或熔断 | 发布与值班负责人 |
—— 三张表不是文档,是回路。这套回路要每周校准,不能一年不换。

配图·秋色温黄
三、发布控制回路实操步骤
先做只读试点
只读试点是最便宜的安全垫。禁用写入、外呼、删除和自动发送。只允许查询、生成草稿、给修改建议。
草稿必须进入人工确认,不能直接触达业务系统。你可以要求每条草稿带来源、依据和待确认字段。
这一步验证路由、日志、成本和失败停止能力。不要急着扩大能力。稳定比完整更重要。
只读试点稳定后,再开放低风险写操作。写操作必须先进入预演,不能直接生产。预演可以记录差异,方便审批。
灰度按场景分批
灰度不是按用户百分比简单切换。按任务风险分批:内部任务先跑,低风险外部任务后放,高影响动作单独审批。
保留旧路由是灰度前提。旧版本要保持可调用,不能发布即下线。新旧版本同时在线,才敢快速切回。
你可以设置四个开关:模型版本、工具权限、提示模板、业务线。开关可以映射到 model_version、tool_scope、prompt_id。开关越粗,事故越难控制。开关越细,定位越快。
每一批灰度都观察至少一个业务周期。报表任务看一个周期,工单任务看一批真实工单。观察期结束再扩大。
一键切回旧路由要真的能切。权限、配置、数据格式都要兼容。切回后,还要检查任务状态是否能续跑。
监控看板至少五件事
监控看板跟踪错误率、工具失败率、人工干预率、单笔成本和回滚耗时。只盯模型输出会错过系统风险。
工具失败率要按工具拆。某个工具连续失败,比整体错误率更能提前发现问题。失败原因也要拆:权限、超时、参数、返回异常。你可以给 retry_limit 和 timeout_ms 单独统计。
人工干预率反映自动化边界。干预太高,说明 Agent 还不能稳定做主。干预太低,要警惕越权操作未被发现。
回滚耗时必须记录。据公开资料和行业实践,很多事故不是第一次失败,而是恢复太慢。恢复慢会让问题扩散。
你可以给每个指标绑定动作:告警、降级、阻断、值班介入、复盘任务。没有动作的看板,只是墙上的装饰。
熔断后的四步
触发熔断后,不要边看边改。先停止扩大。再保护证据。最后才恢复。
- 停止新请求:阻断新任务,保留已在执行中的低风险查询。高风险动作一律暂停。
- 保留现场日志:不要立即清空会话、缓存和重试队列。现场是复盘入口。
- 回滚或降级:回到旧模型、旧工具、只读模式。恢复路径要写清。
- 复盘并更新评测集:把线上失败样例回流。没有回流,同类问题还会回来。
四步里最容易丢的是现场。现场没了,问题会变成玄学。日志保留策略要在事前确认。
—— 控制回路跑起来,分数才变成工程。工程能跑起来,上线才从赌运气变成走流程。
四、常见坑与修正清单
高分来自固定评测集
模型在干净题上表现好,不表示能处理真实脏输入。长上下文、截断、乱码、重复调用、权限不足,都可能改变行为。
你可以给评测集加三类样例:脏输入、工具异常、边界权限。脏输入看鲁棒性,工具异常看重试,边界权限看越界。
只测输出,不测过程
Agent 会规划、读写记忆、调用工具、重试。输出正确也可能过程越权。过程不对,结果再漂亮也不安全。
要检查规划是否可停、记忆是否可审、工具重试是否可查。过程不可见,门禁就只是摆设。你可以给调用链加 trace_id 和 action_status。
你可以记录每次工具调用前的意图、调用后的结果、重试次数和停止原因。意图越清楚,审批越容易。
门禁没有 Owner 会空转
阈值没有责任人,没人会及时判断。每个门禁指标绑定值班人、审批人和回滚操作人。Owner 不是盖章,而是能动作。
审批人不要只签字。审批人要知道自己批准的是哪类动作,会不会触达外部系统。不知道影响,就无法审批。
你可以把 Owner 写进门禁表,而不是只在群里口头承诺。口头承诺会在故障时失焦。
回滚没有演练等于没有回滚
真出事时,人的动作会变形。演练能暴露配置、权限、数据兼容和通知路径的问题。没演练的回滚,只能算文档。
定期做模拟故障:工具超时、模型切换、成本飙升、敏感动作请求。每次演练都从看板触发,不靠口头通知。
确认能停、能查、能恢复。停不了,就继续扩大只读限制。查不到,就补齐调用链日志。恢复不了,就拆掉灰度开关。
发布前检查清单
- ☐ 评测表包含成功率、格式合规、成本、延迟、失败轨迹。
- ☐ 风险清单按动作分级,标明审批、重试和责任人。
- ☐ 门禁表每个阈值都有阻断、降级、熔断动作。
- ☐ 只读试点已完成,人工确认链路跑通。
- ☐ 灰度批次能切回旧路由,旧版本仍可调用。
- ☐ 看板跟踪错误率、工具失败率、人工干预率、单笔成本、回滚耗时。
- ☐ 最近一次线上失败样例已回流评测集。
- ☐ 回滚演练已完成,操作人能独立完成。
这张清单可以先贴在发布流程里。每缺一项,就补一个可执行动作,而不是补一句原则。清单不是摆设,是发布前的刹车测试。
五、长期校准:让门禁越跑越准
门禁不是一次上线文档。它会随着工具、权限、业务变化漂移。工具越接越多,旧规则会漏掉新动作。
每周把线上失败样例回流到评测表,形成可复用回归集。不要等到重大事故才补题。小事故补题,大事故才不会重演。
每月复盘风险清单。新增工具、权限开放、流程变化,都会改变动作等级。风险等级不是永久标签。
你可以把重复出现的人工检查沉淀成自动规则。自动规则要保留紧急放行入口。没有入口,值班会绕开流程。
紧急放行必须有原因、有效时间和责任人。长期例外会变成新风险。例外要过期,不能默认开放。
校准的目标不是让门禁变松,而是让团队知道什么时候可以安全放开。放开的动作要有边界,收回的动作要有证据。
三句话讲透
把模型分数当仪表盘,看它跑得快不快。仪表盘不能代替刹车,也不能代替路况判断。
把风险清单当刹车片,知道哪类动作可能把车带出路面。动作越接近外部系统,越需要硬拦截。
把发布门禁当限速器,规定不同风险场景下只能跑多快。限速器不是限制能力,而是控制能力释放。
今天可以只做三件事:列三张表、跑只读试点、设一个回滚开关。收藏这篇,发给负责发布和审批的同事,把门禁从讨论变成流程。