审批工作流——敏感操作挂起等你点批准
回合中途暂停,不是事后确认
传统的 AI 工具执行器要么直接让 Agent 执行完事后给你看结果,要么在执行前弹个 warning 让你「自己看着办」。MateClaw 的审批工作流是执行前挂起——Agent 想调用一个 require_approval 的工具时:
- 执行链暂停
- 生成一条审批请求:哪个 Agent、想调哪个工具、参数是什么(敏感参数自动打码)
- 推送到默认通知渠道(钉钉、飞书、Slack 等,按工作空间配置)
- 等用户批准(或拒绝,或超时自动拒绝)
- 批准 → Agent 继续跑;拒绝 → 这步跳过;超时 → 默认拒绝
整个暂停期间 Agent 不消耗 token、不执行任何其他动作。
审批请求里有什么
一条审批卡片包含:
- Agent 名称和图标
- 工具名和中文描述
- 参数预览(敏感参数如 API Key、密码自动打码)
- 当前会话上下文——Agent 为什么要调用这个工具(来自 Thought 阶段的推理摘要)
- 批准/拒绝按钮——在 IM 里直接点
超时处理
审批请求发出后如果没人处理,默认超时时间(可配)后自动拒绝。超时拒绝的审批会记录在审计日志里——防止 Agent 因为没人管而无限挂起。
批量审批
如果 Agent 在一轮里连续调用多个 require_approval 的工具(Plan-and-Execute 模式常见),MateClaw 会把它们打包成一个审批列表,让你一次批准多个,而不是一个一个弹。
Cron/事件触发时的审批
定时任务和事件触发的 Agent 没有人工值守的场景,审批照样生效:
- require_approval 的工具调用会挂起,审批请求推到默认通知渠道
- 等你上线批准后,Agent 的那次 cron 执行会「从暂停点继续」(不是从头再来)
- 如果你不想被打断,把敏感工具配成 deny 而不是 require_approval——让它在权限之外的地方直接停下,不发审批通知