本页目录
Human-in-the-loop / 人机回路Note 39

00 覆盖清单与常用程度

覆盖表

覆盖表

知识点 覆盖方式 常用程度 说明
interrupt_on=True 01 章真实脚本 默认允许 approve/edit/reject/respond
checkpointer 必需 01-07 章真实脚本 没有 checkpoint 无法暂停后恢复
同一 thread_id 恢复 01-07 章真实脚本 首次 invoke 和 resume 必须同 config
approve 01 章真实脚本 按原参数执行工具
reject 02/03/04/07 章真实脚本 跳过工具,给模型错误/拒绝反馈
edit 02/07 章真实脚本 中高 人类修改工具参数后执行
respond 02 章真实脚本 中低 用人类回复作为合成工具结果,适合 ask-user
allowed_decisions 02 章真实脚本 按工具风险限制可选决策
条件中断 when 03 章真实脚本 按参数只中断高风险调用
多工具批量审批 04 章真实脚本 一个 interrupt 里多个 action,决策顺序必须对应
subagent interrupt 05 章真实脚本 子 Agent 中断由父 Agent 调用结果接住
文件系统权限中断 06 章真实脚本 FilesystemPermission(mode="interrupt")
tool 内直接 interrupt() 文档说明 低到中 适合自定义工具内部复杂审批,本教程不单独跑
PatchToolCallsMiddleware 文档说明 中低 中断/取消时修复消息历史,通常无需手动操作

最常用主线

生产里最常见的是这条:

敏感工具 -> interrupt_on 配置 allowed_decisions
-> checkpointer + thread_id
-> 首次 invoke 返回 interrupts
-> UI/CLI 展示 action_requests
-> 人类 approve/reject/edit
-> Command(resume={decisions: [...]})

优先掌握 01、02、03。04 是批量情况,05/06 是进阶边界,07 是综合。

哪些不常用

respond 不常用,除非工具本来就是问人类问题。别拿 respond 拒绝删除、发邮件这类副作用工具;应该用 reject

tool 内直接 interrupt() 也不是入门主线。它适合工具内部自己判断风险、发起审批,或者你在 CompiledSubAgent 里有自定义审批工具。

安全边界

本教程的 remove_filedelete_recordnotify_email 都只是返回字符串,不做真实删除、真实数据库修改、真实发邮件。文件系统章节用 Deep Agents 虚拟文件系统,不会写真实系统路径。