返回课程目录
用权限、恢复和成本控制自动化按需:落地案例 · 4 / 4

会审批但不能付款的 Agent:权限阶梯、超时与回滚演练

运营团队让 Agent 准备发票审批包,却移除了付款工具,把审批绑定到发票范围,并演练重复付款与超时后的未知状态。

所属问题主题AI 落地案例
本课完成物 · 权限阶梯更新于 · 2026年10月24日
本分支已读0 / 4
学习方式

先带着一个真实任务阅读,再完成页面中的工作台。能让另一位同事复核你的产物,才算完成本课。

第一次 Demo 很漂亮。Agent 读完发票,匹配采购订单,总结差异,然后建议批准。有人顺口问:能不能也把款付了?会议室安静了一下。那一下安静,是整场演示最有价值的部分。

团队留下了 Agent,但移除了付款工具;把“Agent 说可以”改成有范围、有审批人、有审计记录的人工决定。这个案例讲他们拆开的三个决定,以及让边界真正生效的演练。

Demo 里说“可以批准”,那才是警告

审批看起来是一个动作:同意或拒绝。实际上至少包含三个不同决定:

  • 准备。 读发票、找采购订单、比对金额、收集证据。
  • 批准。 代表公司承诺付款,通常受授权额度约束。
  • 付款。 通过银行或支付服务商真正移动资金,是不可逆的外部效果。

Demo 把三个决定压进了一句聊天回复。Agent 之所以能“批准”,是因为界面只有一个按钮,不是因为它有权限。这是设计缺陷,不是模型缺陷。

团队的第一处改动是结构:Agent 可以准备审批包,但付款工具从工具列表里删掉。第二处是流程:每笔审批必须写明发票、金额、供应商和审批人。第三处是演练:付款结果未知时怎么办?

三个决定,不是一个大按钮

工作流按职责分离重建:

阶段Agent 可以做人必须做留下的证据
准备读发票与采购订单、列出不一致、起草建议确认供应商与业务理由发票号、采购订单号、金额、源文件
批准展示审批包、突出例外在授权范围内批准、缩小或拒绝审批人、范围、时间、决定
付款本工作流不允许通过财务系统放款付款编号、金额、状态

Agent 在准备阶段仍然有用:它能减少找采购订单、核对行项目的时间。但它不能变成审批人,也不能变成付款通道。

团队还写清了审批的范围:具体发票、具体金额、具体供应商、具体时间窗。“批准这家供应商的发票”不是有效范围;“在周五前批准 INV-1042 的这笔金额”才是。

案例一:重复发票

同一张发票来了两次。两个 PDF 文件名不同、排版略有差异,但发票号、供应商、金额和日期一致。Agent 把两份都放进了待审批列表。

人工复核者因为两个审批包并排出现,发现了问题。生产流程不能依赖“刚好看到”。团队在生成审批包之前加了重复检查:

  • 归一化供应商编号、发票号、金额、发票日期;
  • 在未结和近期已付发票里查找匹配;
  • 命中则标记“疑似重复”,要求人工决定;
  • 不自动合并、不自动删除。

检查不可能完美。供应商可能换号重开,正常的周期性扣款也可能看起来一样。所以输出是标记,不是自动拒绝。复核者看到匹配记录,自己做决定。

Agent 的职责是让人在付款前看到重复;财务系统的职责是执行最终控制。两件事都不属于模型的置信度。

反例:付款超时之后

团队演练了更难的情况:付款请求超时。银行可能已经处理,也可能没有。Agent 看到错误,和许多重试循环一样,想再发一次。

盲目重试可能付两次。团队写了另一条规则:

  1. 不重试付款调用。
  2. 用幂等键和发票编号向支付服务商或银行查询状态。
  3. 确认已付,标记完成并停止。
  4. 确认未处理,才允许人工发起新的尝试。
  5. 状态未知,暂停并带着轨迹交给财务。

幂等键不是万能护身符。它只在支付方支持、且工作流在重试时复用同一个键时有效。团队把键存在审批记录里,而不是存在模型的对话历史里。一个忘记键的模型无法安全重试。

演练还暴露了报表问题。Agent 的运行状态写“失败”,但付款其实成功了。看板记了一次失败,财务系统记了一次付款。团队增加了独立的外部效果状态:已确认、已拒绝、未知。只看运行状态不够。

权限阶梯

最终设计有五级。重点不是数字,而是每一级有不同的负责人和不同的证据要求。

层级动作谁批准证据可逆吗
0读发票与采购订单无需审批源文件编号是
1起草内部建议应付会计差异清单与政策引用是
2生成审批包应付会计发票、采购订单、供应商、金额、重复检查是
3在授权内批准审批包中具名的人审批人、范围、时间部分
4放款财务系统与授权操作员付款编号与对账否

Agent 停在第 2 层。第 3 层是人在财务系统里的动作。第 4 层根本不在 Agent 的工具列表里。

这比 Demo 承诺的范围窄,却是团队能审计的范围。价值不是“Agent 会批发票”,而是“Agent 缩短准备时间,并让人在签字前看到例外”。

恢复演练

团队用 30 分钟做了一次桌面演练,参加者包括应付会计、财务操作员和负责 Agent 的工程师。不需要生产权限。

  1. 普通发票。 Agent 准备审批包,审批人能看到采购订单匹配并批准。
  2. 重复发票。 两张同号发票,审批包被标记,审批人拒绝其中一张并记录原因。
  3. 付款后超时。 付款状态未知,操作员用幂等键查询并对账。
  4. 供应商银行信息变更。 供应商记录前一天刚改,审批人暂停,用已知号码回拨确认。
  5. 部分批准。 发票拆分到多个成本中心,审批包必须展示拆分,审批人逐项批准。

通过条件很简单:每个参与者都能只看记录回答“下一步做什么”,不需要叫工程师读日志。如果做不到,说明证据不足,工作流还没准备好。

Agent 绝对不能做什么

团队写了一份很短、不可协商的清单:

  • 放款;
  • 修改供应商银行信息;
  • 批准自己的建议;
  • 合并重复发票;
  • 绕过超过授权额度的双人规则;
  • 在结果未知时重试付款;
  • 因为发票“看起来正常”而隐藏差异。

清单短,才可执行。一份没人检查的长政策,不如五条写进工具列表和审批界面的禁令。

不适用边界

这个案例适合应付账款准备、发票匹配和审批包组装,前提是已经有审批人和财务系统。它不适合消费者支付、工资、税务申报,也不适合审批人看不到源文件的流程。它也修不好一个混乱的供应商主数据或缺失的授权制度。如果财务团队无法对账未知的付款结果,Agent 就不该靠近付款工具。正确设计是一个准备助手,在钱移动之前硬停下。

核验来源

这篇内容参考了哪些一手资料?

来源用于核对定义、风险边界或操作事实;判断框架和工作台由 AI Vista 独立编写。

  1. NIST AI Risk Management Framework — Playbook核验于 2026-10-24
  2. OpenAI Agents SDK — Documentation核验于 2026-10-24
  3. Temporal — Activity definition and idempotency核验于 2026-10-24
  4. Stripe — Idempotent requests核验于 2026-10-24

AI 工具可能协助研究、提纲和语言编辑;事实、案例和最终措辞由编辑复核。发现错误请通过联系页提交更正。

可带走的工具

五级权限阶梯

按具体动作分配权限,而不是给整个 Agent 定级。

permission / ladder
什么时候用准备把这项工作交给别人执行之前
填写后得到一份可填写、可交接、可复核的工作产物
使用顺序01—03
  1. 01
    写任务摘要用脱敏摘要写明要交付的结果。
  2. 02
    补齐判断字段写清输入类别、风险、证据位置和接手方式。
  3. 03
    交给同事复核对方能复述结论,工具才算完成。
完成信号字段齐全,边界明确,可被复核。
编辑内容会自动保存

本课已读

完成工作台,再标记已读。

已读状态会更新课程目录与学习进度。

  1. 01字段齐全
  2. 02案例走过
  3. 03可以复核

文章实践笔记

读到这里,留下一条可复核的判断。

下方虚构示例展示写法;你的笔记只保存在当前浏览器。记录哪一步有效、哪个边界不成立,或一个值得测试的问题。

↗
关联文章会审批但不能付款的 Agent:权限阶梯、超时与回滚演练查看示例与本机笔记 →
0 条示例与本机笔记观点 · 问题 · 建议