HITL 审批:本人确认与他人审批的边界
高风险动作的人工门禁分成两条流程:执行者在会话内本人确认,以及另一角色对工单的他人审批(HITL)。二者事件、接口与超时不同;混用会导致覆盖率统计把自批算进人工审批。
flowchart TD Ask[工具权限 ask] --> Rule{confirm_by} Rule -->|operator| Self[本人确认 permission.reply] Rule -->|approver| Hitl[HITL 工单 approval.decide] Self --> Ev1[permission.* 审计] Hitl --> Ev2[approval.* 审计]| 流程 | 条件 | 决定接口 | 审计事件 | 是否进审批待办 |
|---|---|---|---|---|
| 本人确认 | 执行者在会话内放行 | permission.reply | permission.approve / reject | 否 |
| 他人审批 | 另一角色批准 | approval.decide | approval.approve / reject / expire 等 | 是 |
会话可将命中规则升级为须 HITL(例如 require_hitl 通配)。权限规则本身仍是 allow / deny / ask。
不可自批(执行者)
Section titled “不可自批(执行者)”角色为 operator 时不能调用审批决定接口。HITL 工单也不能用本人确认接口代批。规则:执行者不能在审批中心批准自己发起的执行类放行需求时,应走 HITL 角色;自批不属于审批流程统计。
审批员(approver / admin)可决定工单。批自己发起的工单属于开源能力;批他人发起的工单需要企业版 HITL 特性许可。无许可时相关决定返回 403,且不加载企业实现。
超时:fail-closed
Section titled “超时:fail-closed”| 通道 | 环境变量 | 默认 |
|---|---|---|
| 本人确认 | AGENTFORGE_ASK_TIMEOUT_MS | 30 分钟 |
| HITL | AGENTFORGE_HITL_TIMEOUT_MS | 8 小时 |
值为 0 表示关闭超时。超时后拒绝或工单过期,不自动批准。always 类放行只作用于同会话其它本人确认,不自动放行 HITL,也不跨租户或用户。
与指标口径的关系
Section titled “与指标口径的关系”HITL 覆盖率统计必须按 approval.* 与 permission.* 分开检索。详见审计链与 HITL 指标。选型侧主张见跨进程治理。
相关阅读: