带急停按钮的自主性
自主代理一直很好用,直到它做出无法撤销的操作那一刻。EDDI 6.2.0 引入人机协同治理:三种粒度的显式审批关卡,辅以超时策略、循环检测,以及可在重启后保留的状态。审批属于配置,而非定制应用代码。
为什么审批关卡应内置于平台
大多数团队把审批加在应用层:这里一个队列,那里一个 webhook,别处再加一个数据库标记。只要进程重启、审批人下线,或代理反复重试同一请求,这套做法就会失效。EDDI 把关卡放进对话管道本身:暂停的回合保持暂停,抢跑的输入会收到明确的 409 Conflict,每一个决定都写入与代理生命周期其余部分相同的审计跟踪。
三个审批层级
- 回合级审批:
PAUSE_CONVERSATION动作会中止整条管道。在有人恢复之前,后续用户输入一律返回409 Conflict,确保没有任何操作抢在待决决定之前执行。 - 逐工具调用设卡:单个工具调用可以要求先获得人工批准再执行。基于 glob 模式的允许列表与豁免列表精确决定哪些调用需要审批,覆盖内置、HTTP、MCP、A2A、动态和记忆类工具。
- 群组阶段审批:多代理讨论阶段可以要求人工签核,粒度可选
PHASE或TASK,避免群组在无人监督的情况下从规划进入执行。
超时策略
人并不是高可用服务。每个关卡都要声明无人及时响应时会发生什么:
WAIT_INDEFINITELY:运行保持暂停,直到有人做出决定。适用于绝不允许无人值守执行的操作。AUTO_APPROVE:时间窗到期后继续执行。适合低风险操作,此时监督属于抽查而非硬性关卡。AUTO_REJECT:拒绝待决操作,让代理沿拒绝分支继续。ABORT:直接终止本次运行,对不可逆或影响面大的操作而言最为稳妥。
为生产环境而生
审批系统的好坏,取决于它最糟糕的一天:审核进行到一半时服务重启、代理反复提出同一个问题、审批人只用 Slack 而不登录管理界面。
- 无进展防护:EDDI 为每次暂停生成指纹。当自动决策之后再次出现相同指纹时,它会识别出无限审批循环并打破它,而不是继续消耗 token。
- 崩溃恢复:待处理审批可在服务器重启后保留,超时计时器会自动重新装载,滚动发布因此不会悄悄丢掉正在进行的决定。
- Slack 审批:交互式 Block Kit 卡片把决定送到审批人面前,参数预览经过脱敏处理,并有审批人白名单,确保只有授权人员可以操作。
- MCP 审批:外部客户端可以列出待处理审批,并通过 MCP 工具批准或拒绝,这些工具是 77 个工具中的一部分,让你的 IDE 或代理客户端成为控制平面。
治理与合规契合
人工监督不只是运营偏好,更是监管要求。审批关卡为《欧盟AI法案》第14条的人工监督提供了具体实现:由具名人员授权具体操作,并记录该决定。结合 EDDI 的合规框架与 HMAC-SHA256 审计跟踪,你可以向审计方证明代理做了什么,以及是谁在何时批准的。