Human-in-the-loop / 人机回路第 41 篇

01 基础中断与 approve

它是什么

本站只展示教学文档和静态源码。不会执行示例、启动服务、访问模型、数据库或其他外部系统。

约 234 字·预计阅读 1 分钟
本页目录

它是什么

interrupt_on 可以让某个工具在执行前暂停,先交给人类审批。approve 表示按模型原始工具参数继续执行。它解决的问题是:敏感操作不让模型直接落地执行。

常用程度

高。删除、发送邮件、付款、写生产数据、改权限这类工具都应该优先考虑。

最小代码

文件:deepagent_src/human_loop_teach/01_basic_approve.py

agent = create_deep_agent(
    model=get_real_model(),
    tools=[remove_file],
    interrupt_on={"remove_file": True},
    checkpointer=MemorySaver(),
)

运行

uv run python deepagent_src/human_loop_teach/01_basic_approve.py

预期输出末尾:

basic approve HITL real agent ok

运行现象

第一次调用会返回 interrupt:

tool=remove_file args={'path': '/tmp/a.txt'}
review=remove_file decisions=['approve', 'edit', 'reject', 'respond']

然后脚本用:

Command(resume={"decisions": [{"type": "approve"}]})

恢复同一个 thread,工具才真正执行。

常见误区

HITL 必须有 checkpointer,并且恢复时必须使用同一个 thread_id。换 thread 就像让另一个人接着听半截电话,肯定对不上。

参考资源与示例代码