Day 027|Human-in-the-loop:高风险工具调用必须有人类确认
·
系列:100 天系统学习 AI Agent 开发
当前阶段:LangChain 与 LangGraph 工程化
今日目标:人工介入可以在写文件、发邮件、执行 SQL、付款等敏感动作前暂停 Agent。
1. 为什么今天必须学
进入「LangChain 与 LangGraph 工程化」之后,我明显感觉 Agent 开发不只是 Prompt 技巧了。人工介入可以在写文件、发邮件、执行 SQL、付款等敏感动作前暂停 Agent。 这件事越早建模,后面流程越不容易散。
2. 关键知识点
- 状态:把任务进度、用户上下文、工具结果和错误信息显式保存。
- 节点:每个节点只处理一个清晰步骤,便于调试和替换。
- 路由:用条件边或规则决定下一步,关键路径不要完全交给模型猜。
3. 任务卡
今天的主任务是:列出你的 Agent 中需要审批的动作,并写 approve/reject/edit 三种处理方式。
我会按这个节奏做:
- 先画状态,再写节点,最后补路由条件。
- 完成主题任务:列出你的 Agent 中需要审批的动作,并写 approve/reject/edit 三种处理方式。
- 检查每个节点的输入、输出、失败处理和是否需要 checkpoint。
4. 表格或代码
今天可以留下一个最小状态图,先把流程跑顺:
5. 我的理解
今天复盘「Human-in-the-loop」时,我不想只问“概念是否背下来了”,而是看它有没有进入我的工程习惯。
- 如果我明天忘了术语,只看今天的产物,是否还能复原思路?一个状态图、节点表或 checkpoint 草案 就是答案。
- 如果别人照着文章做,最可能卡在什么地方?我会提前标出:流程越写越像一堆 if else,状态藏在上下文里不可追踪。
- 如果把它放进真实 Agent,第一条验收规则应该是:每个节点都有输入、输出、失败处理和下一步路由。
面试官会追问:审批按钮怎样避免被重放?
暂停只是第一步。审批请求应绑定 run_id、action_digest、资源版本、发起人、过期时间和一次性 approval_token。恢复时重新校验权限与资源版本;如果订单内容已经变化,旧批准必须失效,不能拿“批准 100 元退款”的令牌去执行 1000 元退款。
approve、reject、edit 也不是三个字符串:
- approve:按已展示参数执行,并记录审批人与摘要。
- reject:终止该动作,允许 Agent 生成安全替代方案。
- edit:产生新动作版本,重新预览并再次审批。
面试加分点是说明 human-in-the-loop 不等于“把责任甩给人”。界面必须让人看懂将要调用的工具、关键参数、影响范围与撤销能力。
今日检查清单
- 文章开头 150 字内说清今天为什么值得学
- 用今天的产物证明自己不是只读了资料:一个状态图、节点表或 checkpoint 草案
- 画出今天流程里的节点、边和共享 state
- 给每个节点写清输入、输出、失败时去哪
- 标出哪一步需要 checkpoint 或人工确认
- 给读者一个可收藏的表格、代码块或流程图
更多推荐


所有评论(0)