需要人工确认的智能体任务,应让确认对应到具体动作、对象与内容版本,并保留任务状态。恢复前核对内容是否变化、权限是否仍有效,以及动作是否已经执行。暂停能力本身不等于完整审批机制;本文结合官方文档提出检查方法,未做生产实测。
- 让确认对应具体对象与版本,避免只保存一个“同意”。
- 任务状态与长期记忆分开管理,恢复时找回正确任务。
- 测试拒绝、修改、过期和重复恢复,而不只测试批准成功。
确认之前,先让人看清将发生什么
MCP 2025-06-18 版工具规范没有规定唯一的交互界面,但建议让人能够拒绝工具调用,并提供调用提示和确认界面。[3] 这是协议层面的建议,不能据此认定接入工具后已经具备业务审批能力。
编辑建议:以对外发送一份报价草稿为例,确认界面应列出收件对象、正文版本、附件和将执行的动作。示例仅说明界面设计,不代表本文执行过发送。业务方还需指定谁有权确认、拒绝后交给谁处理,不能把“已读”和“批准执行”混在一起。
保存任务状态,也保存确认所依据的内容
LangGraph 文档说明,interrupt 可以暂停流程并等待外部输入,状态由 checkpointer(检查点存储器)保存,生产环境需使用可持久保存的实现;恢复需要使用同一个 thread_id。[1] Persistence 文档则区分线程内图状态与跨线程存储:前者用于延续当前任务,后者可保存长期信息。[2] 据此,编辑建议不要只依赖聊天记录或长期记忆判断某次动作是否已获确认。
可建立一张最小确认记录:任务编号、动作名称、目标对象、内容版本、确认人、决定、时间、有效条件和执行结果。版本可以采用固定快照或可核对的版本标识,具体方式由系统设计决定。记录中只保留必要信息,不直接放入口令和 API 密钥。
等待期间发生变化,原来的确认还算数吗
以下属于编辑建议,需要结合业务约定实现:收件对象、附件、金额或动作范围变化后,应按预先约定的规则使旧确认失效并重新审核实质变更;不要用旧版本的批准自动放行新版本。等待超过约定时限时转为“待重新确认”,由责任人决定继续、修改还是取消。
恢复时再核对当前权限和业务状态。例如订单已取消或目标记录已被其他人更新,就应先停止该动作并解释原因。让系统清楚区分“等待确认”“被拒绝”“确认过期”“已执行”和“执行结果待核对”,比让用户反复点击同一个继续按钮更容易排查。
恢复测试,要覆盖重复点击与执行结果不明
LangGraph 的中断节点在恢复时会从头运行,文档提醒,中断前的副作用需要考虑幂等,也可将副作用放到中断之后或独立节点。[1] 幂等是指重复执行同一操作不会产生额外结果。具体流程仍需验证外部系统的行为,不能把恢复机制当作业务动作只执行一次的保证。
编辑建议:在隔离环境准备批准、拒绝、修改后批准、过期和重复恢复几组输入,检查是否操作了正确版本、是否留下可追溯结果。若外部动作可能已经成功但本地未记下结果,先核对目标系统,再决定是否重发。为确认界面列一个验收问题:“换一个同事接手,他能否从记录判断现在该做什么?”
适用条件与限制
本文讨论需要人工确认的动作,不要求所有只读步骤都逐次审批。MCP引用为2025-06-18版规范;LangGraph行为以2026年10月20日查阅的文档为依据,实际项目需核对所用版本。记录字段、过期规则和测试方案属于编辑建议,不是框架默认功能或交付保证。 三份资料来自两个文档体系,不代表所有智能体框架。