跳转到内容

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.replypermission.approve / reject否
他人审批另一角色批准approval.decideapproval.approve / reject / expire 等是

会话可将命中规则升级为须 HITL(例如 require_hitl 通配)。权限规则本身仍是 allow / deny / ask。

角色为 operator 时不能调用审批决定接口。HITL 工单也不能用本人确认接口代批。规则:执行者不能在审批中心批准自己发起的执行类放行需求时,应走 HITL 角色;自批不属于审批流程统计。

审批员(approver / admin)可决定工单。批自己发起的工单属于开源能力;批他人发起的工单需要企业版 HITL 特性许可。无许可时相关决定返回 403,且不加载企业实现。

通道环境变量默认
本人确认AGENTFORGE_ASK_TIMEOUT_MS30 分钟
HITLAGENTFORGE_HITL_TIMEOUT_MS8 小时

值为 0 表示关闭超时。超时后拒绝或工单过期,不自动批准。always 类放行只作用于同会话其它本人确认,不自动放行 HITL,也不跨租户或用户。

HITL 覆盖率统计必须按 approval.* 与 permission.* 分开检索。详见审计链与 HITL 指标。选型侧主张见跨进程治理。


相关阅读: