AI-Agent面试|高风险工具如何加人工审批?
上周六讲完 LangGraph 的断点续跑,今天继续解决一个更现实的问题:
如果 Agent 准备发邮件、删除数据、执行写 SQL,怎样确保它不会直接动手?
这道题的核心不是“加一个确认按钮”,而是设计一条可靠的 Human-in-the-loop 执行链路。
1️⃣第一步,按风险给工具分级。
查询天气、读取公开数据这类低风险操作可以自动执行;发邮件、付款、删除资源、修改生产数据等外部副作用,才进入人工审批。
2️⃣第二步,在工具执行前暂停。
当策略命中高风险工具时,LangGraph 使用 interrupt 暂停执行,把待执行的工具、参数和当前图状态暴露给审批端。审批必须发生在副作用之前,而不是执行完再补一条审计日志。
3️⃣第三步,把等待状态持久化。
Human-in-the-loop 可能暂停几分钟甚至几天,因此要用持久化 checkpointer 保存 checkpoint,并用稳定的 thread_id 标识这次运行。审批完成后,再用同一个 thread 恢复。
审批者通常有三种决定:
approve:按原参数执行;
edit:修改参数后执行;
reject:拒绝执行并把原因反馈给 Agent。
4️⃣第四步,审批后仍然要保证工具安全。
人工批准解决的是授权问题,不等于副作用只会发生一次。如果工具成功后进程崩溃、但新 checkpoint 还没保存,恢复时仍可能重试。因此工具调用需要稳定业务 key、幂等执行、结果持久化和未知结果对账。
一句话抓住核心:
🌟Pause before the side effect, persist the decision point, and resume the same thread.
第 4 页是一段 30 秒英文回答,建议脱稿复述 3 遍。
评论区练习:
❓Why does an approved tool call still need to be idempotent?
周六继续追问:LangGraph 从 interrupt 恢复后,节点究竟从哪里重新开始?
#程序员英语 #AIAgent #AI工程师 #LangGraph #LangChain #HumanInTheLoop #大模型应用 #Agent开发
夜雨聆风