展开本页目录
开始前准备什么
- 将练习包解压到独立目录,不覆盖已有项目或真实业务资料。
- 先运行本包校验并查看实测范围,再按官方文档使用自己的软件、账号与准确版本。
- 需要真实模型的步骤只使用自己的 Key,截图与下载包不包含凭据。
- 创建无模型的审批环境
- 查看中断携带的实际动作
- 先运行拒绝分支
- 再运行批准分支
- 检查前置代码重跑边界
- 运行类型错误负例
- 最后才扩展模型草稿
原创输入、运行脚本、字段校验、负例和执行范围;不含可用密钥。
已真实运行 LangGraph 1.2.15 的 interrupt、Command 恢复、批准/拒绝和字符串负例;没有模型调用或线上副作用。
对应正文的具体资料,保持输入可追溯。
验证字段与负例;不能代替未执行的软件或模型。
明确区分材料验证、框架执行和模型调用。
1. 创建无模型的审批环境
在独立 Python 环境安装 requirements.txt。本例用确定性草稿测试框架控制流,不调用任何模型,也不发送邮件或发布线上内容。
bash
python3 -m venv .venv
.venv/bin/python -m pip install -r requirements.txt2. 查看中断携带的实际动作
run.py 的 review 节点通过 interrupt 暴露 title 与 write-local-draft。暂停之前不写文件;查看 result.json 的 paused_payload,而不是只看一张图。
3. 先运行拒绝分支
同一个 thread_id 下用 Command(resume=False) 继续。返回 rejected 后 approved.md 必须不存在;字符串 false 不是 JSON 布尔 false。
4. 再运行批准分支
为批准示例使用另一个线程,用真正的 True 恢复。finish 节点才创建 output/approved.md,并核对文件写入的固定标题。
bash
.venv/bin/python run.py5. 检查前置代码重跑边界
官方说明恢复时会从中断节点开头重新执行。把外部副作用放在审批之后,不能在 interrupt 前先发送再期待恢复“撤回”。
6. 运行类型错误负例
脚本对第三个线程提交字符串 false,必须抛出 ValueError 并记录拒绝。不能把任意非空字符串按真值当成批准。
bash
.venv/bin/python verify.py7. 最后才扩展模型草稿
需要 AI 生成草稿时单独加入兼容 Chat 模型节点,记录真实输出再审批。本包固定草稿与实际控制流已运行,不能冒称完成模型调用。
怎样确认已经完成
- 脚本对第三个线程提交字符串 false,必须抛出 ValueError 并记录拒绝。不能把任意非空字符串按真值当成批准。
- 需要 AI 生成草稿时单独加入兼容 Chat 模型节点,记录真实输出再审批。本包固定草稿与实际控制流已运行,不能冒称完成模型调用。
- 已真实运行 LangGraph 1.2.15 的 interrupt、Command 恢复、批准/拒绝和字符串负例;没有模型调用或线上副作用。
常见问题
LangGraph恢复审批会不会重复执行写文件?
中断节点恢复时会从节点开头重新运行。把写文件放在明确批准之后,并使用同一线程恢复;本课用独立批准与拒绝线程检查文件差异,拒绝字符串false被当作布尔批准。
LangGraph interrupt 恢复时为何重复打印日志?
中断所在节点从头重跑,interrupt 前的普通代码会再次执行。副作用需要幂等或安排在批准后的独立节点。
这篇智能体人机协同教程需要 Key 吗?
本例框架控制流不需要。只有你扩展真实模型生成时,才配置兼容模型与自己的 Key。



