Tutorial 9: Human-in-the-Loop
为什么需要人工介入
在敏感操作、合规审核、创造性决策等场景下,需要在关键步骤暂停,由人确认、修改或批准后再继续执行。Eino 通过 Interrupt(中断) 与 CheckPoint(检查点) 支持这类 Human-in-the-Loop 流程。
中断与检查点
Interrupt:在图或 Agent 的某个节点执行后,不继续到下一节点,而是暂停并返回当前状态(及可选提示信息)给调用方。
CheckPoint:将当前执行状态(如对话历史、工具结果、图状态)持久化,以便:
稍后从该点 恢复 执行;
或供人工界面展示、编辑后再触发恢复。
这样,一次「运行」可以分成多段:运行 → 中断 → 人工处理 → 从检查点恢复 → 继续运行。
在 Agent 中的使用
ChatModelAgent 等可与 Runner 配合:在指定步骤(如「调用某工具之后」「生成最终回答之前」)注册中断。
Runner 执行到该步骤时触发 Interrupt,将 CheckPoint 保存;外部系统(如 Web 后端)可:
读取状态并展示给用户;
接收用户输入(确认/修改/驳回);
调用恢复 API,传入 CheckPoint 与可选新输入,继续执行。
文档:Eino ADK: Interrupt & CheckPoint Manual、Interrupt System Architecture。
设计要点
中断点:明确哪些节点后需要人工介入(例如「发布前」「支付前」)。
状态暴露:CheckPoint 中保存的内容要足够「可展示、可编辑」,便于前端或审核界面使用。
恢复策略:恢复时是否允许修改消息、跳过某步、重试等,需与业务约定。
超时与取消:长时间未恢复的会话可超时关闭或取消,避免资源占用。
小结
Human-in-the-Loop 依赖 Interrupt(暂停)与 CheckPoint(持久化状态)。
Runner 与 Agent 在配置的中断点暂停并写入 CheckPoint;恢复时从 CheckPoint 继续。
适合审核、确认、人工修正等需要「人参与决策」的流程。
下一节将介绍 生态与生产:eino-ext 集成、回调与可观测性。