第4章 链的构建
追踪Runnable的schema、invoke、stream、batch、配置、分支、并行与容错;并列原书2024与当前v1,用版本合同、执行trace和发布门交付schema图、事件流、并发轨迹、重试记录与旧Chain迁移表
学习目标
- 解释Runnable、LCEL高级组合、Chain接口与专用Chain的输入schema、执行状态、事件与输出,而不只背API名称
- 并列原书2024轨道与当前LangChain v1轨道,定位“把同步invoke通过等同于stream、batch、异步事件和并行分支都正确”的首个分岔
- 交付schema图、事件流、并发轨迹、重试记录与旧Chain迁移表,说明评估、回退、安全与未测试边界
为什么从这个问题开始
第4章 链的构建围绕“组合链怎样保持输入输出类型、事件顺序、并发边界和失败恢复?”建立贯穿任务:在锁定的2024原书轨道和当前LangChain v1轨道上重放Runnable、LCEL高级组合、Chain接口与专用Chain。先预测依赖、schema、事件、状态、工具/检索调用或评估中的首个变化,再运行原书参考、v1参考、迁移故障与回退;只有守住“第4章 链的构建的包版本、输入输出schema、执行事件、评估结果与回退路径始终一致”并交付schema图、事件流、并发轨迹、重试记录与旧Chain迁移表,代码运行才构成可发布证据。
原书、伴学材料与当前v1边界
第4章 链的构建以作者李多多(莫尔索)的开放学习站核对作者身份、实践取向和相关公开伴学材料;站点明确称其为个人学习笔记并宣传纸书,但它不是人民邮电出版社纸书的逐页全文,因此本课程把来源级别记为“作者授权伴学样本”,不虚构完整书稿访问权。
第4章 链的构建以首版公开书目与完整目录核对《LangChain编程:从入门到实践》、人民邮电出版社、2024年4月、192页、ISBN 9787115639424,以及前言、10章和全部节/小节。正式分母是1个前言、10个章标题和135个节/小节,共146个层级;课程用学习地图、前言、10章和总复习共13页承载。
第4章 链的构建以LangChain当前官方总览与v1迁移指南建立第二条事实轨道:当前v1精简核心命名空间、把大量旧Chain与检索接口移到langchain-classic,并以create_agent、中间件、LangGraph和LangSmith组织主路径。本站不复制纸书或伴学站正文、代码和图片,所有中文解释、双轨迁移、反例、交互、练习与答案均为独立重写。
本页独立事实来源
- LangChain v1官方迁移指南:在第4章 链的构建中,核对精简命名空间、langchain-classic、create_agent和破坏性变化。
- LangChain当前官方总览:在第4章 链的构建中,核对当前v1的agent harness、模型接口、LangGraph与LangSmith定位。
- LangChain官方代码库:在第4章 链的构建中,核对开源实现、许可证、发布与代码边界。
- LangGraph官方代码库:在第4章 链的构建中,核对当前有状态、可恢复编排层的职责。
146个正式坐标中的本页覆盖
第4章 链的构建
坐标 1/25:第4章 链的构建。 第4章 链的构建在同一输入上比较invoke、stream、batch与分支事件,记录顺序、并发、异常传播和v1迁移后的责任归属。 对第4章 链的构建的验收必须同时保存依赖锁、输入输出schema、参考trace、单一迁移故障、独立评估和回退结果;仅有导入成功、无异常或最终答案流畅,都不能证明当前v1兼容。
4.1 链的基本概念
坐标 2/25:4.1 链的基本概念。 第4章 链的构建在同一输入上比较invoke、stream、batch与分支事件,记录顺序、并发、异常传播和v1迁移后的责任归属。 对第4章 链的构建的验收必须同时保存依赖锁、输入输出schema、参考trace、单一迁移故障、独立评估和回退结果;仅有导入成功、无异常或最终答案流畅,都不能证明当前v1兼容。
4.2 Runnable对象接口探究
坐标 3/25:4.2 Runnable对象接口探究。 第4章 链的构建用消息角色、模板变量、模型配置和解析schema组成类型链,并分别测试正常输出、拒答、截断与格式错误。 对第4章 链的构建的验收必须同时保存依赖锁、输入输出schema、参考trace、单一迁移故障、独立评估和回退结果;仅有导入成功、无异常或最终答案流畅,都不能证明当前v1兼容。
4.2.1 schema
坐标 4/25:4.2.1 schema。 第4章 链的构建在同一输入上比较invoke、stream、batch与分支事件,记录顺序、并发、异常传播和v1迁移后的责任归属。 对第4章 链的构建的验收必须同时保存依赖锁、输入输出schema、参考trace、单一迁移故障、独立评估和回退结果;仅有导入成功、无异常或最终答案流畅,都不能证明当前v1兼容。
4.2.2 invoke
坐标 5/25:4.2.2 invoke。 第4章 链的构建在同一输入上比较invoke、stream、batch与分支事件,记录顺序、并发、异常传播和v1迁移后的责任归属。 对第4章 链的构建的验收必须同时保存依赖锁、输入输出schema、参考trace、单一迁移故障、独立评估和回退结果;仅有导入成功、无异常或最终答案流畅,都不能证明当前v1兼容。
4.2.3 stream
坐标 6/25:4.2.3 stream。 第4章 链的构建在同一输入上比较invoke、stream、batch与分支事件,记录顺序、并发、异常传播和v1迁移后的责任归属。 对第4章 链的构建的验收必须同时保存依赖锁、输入输出schema、参考trace、单一迁移故障、独立评估和回退结果;仅有导入成功、无异常或最终答案流畅,都不能证明当前v1兼容。
4.2.4 batch
坐标 7/25:4.2.4 batch。 第4章 链的构建在同一输入上比较invoke、stream、batch与分支事件,记录顺序、并发、异常传播和v1迁移后的责任归属。 对第4章 链的构建的验收必须同时保存依赖锁、输入输出schema、参考trace、单一迁移故障、独立评估和回退结果;仅有导入成功、无异常或最终答案流畅,都不能证明当前v1兼容。
4.2.5 astream_log
坐标 8/25:4.2.5 astream_log。 第4章 链的构建在同一输入上比较invoke、stream、batch与分支事件,记录顺序、并发、异常传播和v1迁移后的责任归属。 对第4章 链的构建的验收必须同时保存依赖锁、输入输出schema、参考trace、单一迁移故障、独立评估和回退结果;仅有导入成功、无异常或最终答案流畅,都不能证明当前v1兼容。
4.3 LCEL高级特性
坐标 9/25:4.3 LCEL高级特性。 第4章 链的构建把4.3 LCEL高级特性映射到版本、输入schema、执行状态、输出证据和失败边界,再用单一迁移故障定位首个不兼容点。 对第4章 链的构建的验收必须同时保存依赖锁、输入输出schema、参考trace、单一迁移故障、独立评估和回退结果;仅有导入成功、无异常或最终答案流畅,都不能证明当前v1兼容。
4.3.1 ConfigurableField
坐标 10/25:4.3.1 ConfigurableField。 第4章 链的构建把4.3.1 ConfigurableField映射到版本、输入schema、执行状态、输出证据和失败边界,再用单一迁移故障定位首个不兼容点。 对第4章 链的构建的验收必须同时保存依赖锁、输入输出schema、参考trace、单一迁移故障、独立评估和回退结果;仅有导入成功、无异常或最终答案流畅,都不能证明当前v1兼容。
4.3.2 RunnableLambda
坐标 11/25:4.3.2 RunnableLambda。 第4章 链的构建在同一输入上比较invoke、stream、batch与分支事件,记录顺序、并发、异常传播和v1迁移后的责任归属。 对第4章 链的构建的验收必须同时保存依赖锁、输入输出schema、参考trace、单一迁移故障、独立评估和回退结果;仅有导入成功、无异常或最终答案流畅,都不能证明当前v1兼容。
4.3.3 RunnableBranch
坐标 12/25:4.3.3 RunnableBranch。 第4章 链的构建在同一输入上比较invoke、stream、batch与分支事件,记录顺序、并发、异常传播和v1迁移后的责任归属。 对第4章 链的构建的验收必须同时保存依赖锁、输入输出schema、参考trace、单一迁移故障、独立评估和回退结果;仅有导入成功、无异常或最终答案流畅,都不能证明当前v1兼容。
4.3.4 RunnablePassthrough
坐标 13/25:4.3.4 RunnablePassthrough。 第4章 链的构建在同一输入上比较invoke、stream、batch与分支事件,记录顺序、并发、异常传播和v1迁移后的责任归属。 对第4章 链的构建的验收必须同时保存依赖锁、输入输出schema、参考trace、单一迁移故障、独立评估和回退结果;仅有导入成功、无异常或最终答案流畅,都不能证明当前v1兼容。
4.3.5 RunnableParallel
坐标 14/25:4.3.5 RunnableParallel。 第4章 链的构建在同一输入上比较invoke、stream、batch与分支事件,记录顺序、并发、异常传播和v1迁移后的责任归属。 对第4章 链的构建的验收必须同时保存依赖锁、输入输出schema、参考trace、单一迁移故障、独立评估和回退结果;仅有导入成功、无异常或最终答案流畅,都不能证明当前v1兼容。
4.3.6 容错机制
坐标 15/25:4.3.6 容错机制。 第4章 链的构建在同一输入上比较invoke、stream、batch与分支事件,记录顺序、并发、异常传播和v1迁移后的责任归属。 对第4章 链的构建的验收必须同时保存依赖锁、输入输出schema、参考trace、单一迁移故障、独立评估和回退结果;仅有导入成功、无异常或最终答案流畅,都不能证明当前v1兼容。
4.4 Chain接口
坐标 16/25:4.4 Chain接口。 第4章 链的构建用消息角色、模板变量、模型配置和解析schema组成类型链,并分别测试正常输出、拒答、截断与格式错误。 对第4章 链的构建的验收必须同时保存依赖锁、输入输出schema、参考trace、单一迁移故障、独立评估和回退结果;仅有导入成功、无异常或最终答案流畅,都不能证明当前v1兼容。
4.4.1 Chain接口调用
坐标 17/25:4.4.1 Chain接口调用。 第4章 链的构建用消息角色、模板变量、模型配置和解析schema组成类型链,并分别测试正常输出、拒答、截断与格式错误。 对第4章 链的构建的验收必须同时保存依赖锁、输入输出schema、参考trace、单一迁移故障、独立评估和回退结果;仅有导入成功、无异常或最终答案流畅,都不能证明当前v1兼容。
4.4.2 自定义Chain实现
坐标 18/25:4.4.2 自定义Chain实现。 第4章 链的构建把4.4.2 自定义Chain实现映射到版本、输入schema、执行状态、输出证据和失败边界,再用单一迁移故障定位首个不兼容点。 对第4章 链的构建的验收必须同时保存依赖锁、输入输出schema、参考trace、单一迁移故障、独立评估和回退结果;仅有导入成功、无异常或最终答案流畅,都不能证明当前v1兼容。
4.4.3 工具Chain
坐标 19/25:4.4.3 工具Chain。 第4章 链的构建把模型、工具schema、状态、循环、停止原因和权限写成agent合同,并用工具错误与人工介入路径测试恢复。 对第4章 链的构建的验收必须同时保存依赖锁、输入输出schema、参考trace、单一迁移故障、独立评估和回退结果;仅有导入成功、无异常或最终答案流畅,都不能证明当前v1兼容。
4.5 专用Chain
坐标 20/25:4.5 专用Chain。 第4章 链的构建把4.5 专用Chain映射到版本、输入schema、执行状态、输出证据和失败边界,再用单一迁移故障定位首个不兼容点。 对第4章 链的构建的验收必须同时保存依赖锁、输入输出schema、参考trace、单一迁移故障、独立评估和回退结果;仅有导入成功、无异常或最终答案流畅,都不能证明当前v1兼容。
4.5.1 对话场景
坐标 21/25:4.5.1 对话场景。 第4章 链的构建把4.5.1 对话场景映射到版本、输入schema、执行状态、输出证据和失败边界,再用单一迁移故障定位首个不兼容点。 对第4章 链的构建的验收必须同时保存依赖锁、输入输出schema、参考trace、单一迁移故障、独立评估和回退结果;仅有导入成功、无异常或最终答案流畅,都不能证明当前v1兼容。
4.5.2 基于文档问答场景
坐标 22/25:4.5.2 基于文档问答场景。 第4章 链的构建从文档版本、chunk、嵌入和索引追到检索排名、引用上下文与生成答案;检索质量和生成质量必须分开评估。 对第4章 链的构建的验收必须同时保存依赖锁、输入输出schema、参考trace、单一迁移故障、独立评估和回退结果;仅有导入成功、无异常或最终答案流畅,都不能证明当前v1兼容。
4.5.3 数据库问答场景
坐标 23/25:4.5.3 数据库问答场景。 第4章 链的构建从文档版本、chunk、嵌入和索引追到检索排名、引用上下文与生成答案;检索质量和生成质量必须分开评估。 对第4章 链的构建的验收必须同时保存依赖锁、输入输出schema、参考trace、单一迁移故障、独立评估和回退结果;仅有导入成功、无异常或最终答案流畅,都不能证明当前v1兼容。
4.5.4 API查询场景
坐标 24/25:4.5.4 API查询场景。 第4章 链的构建把4.5.4 API查询场景映射到版本、输入schema、执行状态、输出证据和失败边界,再用单一迁移故障定位首个不兼容点。 对第4章 链的构建的验收必须同时保存依赖锁、输入输出schema、参考trace、单一迁移故障、独立评估和回退结果;仅有导入成功、无异常或最终答案流畅,都不能证明当前v1兼容。
4.5.5 文本总结场景
坐标 25/25:4.5.5 文本总结场景。 第4章 链的构建把4.5.5 文本总结场景映射到版本、输入schema、执行状态、输出证据和失败边界,再用单一迁移故障定位首个不兼容点。 对第4章 链的构建的验收必须同时保存依赖锁、输入输出schema、参考trace、单一迁移故障、独立评估和回退结果;仅有导入成功、无异常或最终答案流畅,都不能证明当前v1兼容。
先预测,再操作双轨实验
先预测:在第4章 链的构建只注入“把同步invoke通过等同于stream、batch、异步事件和并行分支都正确”时,依赖解析、输入schema、执行事件、工具/检索状态、输出解析或独立评估中的哪一项最先变化?请先写下可观测信号,再切换原书/v1轨道和参考/故障trace。
版本合同:比较原书与v1
原书 2024 / 当前 v1 双轨合同
第4章 链的构建
选择正式目录坐标和流水阶段,再切换轨道;接口名称变化不能掩盖输入、状态与输出合同。
第4章 链的构建 · 阶段 1/4
第4章 链的构建 · 依赖与输入
- 输入合同
- 在锁定的2024原书轨道和当前LangChain v1轨道上重放Runnable、LCEL高级组合、Chain接口与专用Chain
- 原书接口语义
- 冻结原书Runnable、LCEL高级组合、Chain接口与专用Chain对应的2024包版本、导入路径与示例输入
- 输出证据
- 第4章 链的构建的依赖锁、输入合同和版本泳道
- 兼容裁决
- 第4章 链的构建没有在同一运行中混用v0、langchain-classic与v1接口
最小可复现与迁移协议
- 为第4章 链的构建分别冻结原书2024与当前v1的Python、包锁、集成包、模型/工具版本、输入schema、随机性和评估集,禁止跨轨拼接。
- 在两条轨道运行参考流程,保存schema图、事件流、并发轨迹、重试记录与旧Chain迁移表;若只能看到最终输出,就无法判断差异来自框架、provider还是数据。
- 保持模型、数据和评估不变,只注入“把同步invoke通过等同于stream、batch、异步事件和并行分支都正确”,定位依赖、schema、状态、事件或输出中的首个分岔。
- 撤销故障,从同一快照重放;只有trace、评估和回退都恢复,才允许批准迁移或发布。
小结与上架门
第4章 链的构建的质量不取决于记住多少类名,而取决于能否把Runnable、LCEL高级组合、Chain接口与专用Chain放进版本化证据链:原书轨道解释2024语义,当前轨道依据官方v1文档重建接口,schema和trace揭示行为,单一迁移故障定位不兼容点,独立评估与回退决定能否发布。最终交付schema图、事件流、并发轨迹、重试记录与旧Chain迁移表,并同时报告历史、当前、失败、未知和未测试范围。
练习与答案
练习
问题 1:第4章 链的构建
为第4章 链的构建的第4章 链的构建写一个原书2024输入和一个当前v1输入,指出最小迁移故障、首个可观测分岔、独立评估与回退条件。
问题 2:4.1 链的基本概念
为第4章 链的构建的4·1 链的基本概念写一个原书2024输入和一个当前v1输入,指出最小迁移故障、首个可观测分岔、独立评估与回退条件。
问题 3:4.2 Runnable对象接口探究
为第4章 链的构建的4·2 Runnable对象接口探究写一个原书2024输入和一个当前v1输入,指出最小迁移故障、首个可观测分岔、独立评估与回退条件。
问题 4:4.2.1 schema
为第4章 链的构建的4·2·1 schema写一个原书2024输入和一个当前v1输入,指出最小迁移故障、首个可观测分岔、独立评估与回退条件。
问题 5:4.2.2 invoke
为第4章 链的构建的4·2·2 invoke写一个原书2024输入和一个当前v1输入,指出最小迁移故障、首个可观测分岔、独立评估与回退条件。
问题 6:4.2.3 stream
为第4章 链的构建的4·2·3 stream写一个原书2024输入和一个当前v1输入,指出最小迁移故障、首个可观测分岔、独立评估与回退条件。
问题 7:4.2.4 batch
为第4章 链的构建的4·2·4 batch写一个原书2024输入和一个当前v1输入,指出最小迁移故障、首个可观测分岔、独立评估与回退条件。
问题 8:4.2.5 astream_log
为第4章 链的构建的4·2·5 astream_log写一个原书2024输入和一个当前v1输入,指出最小迁移故障、首个可观测分岔、独立评估与回退条件。
问题 9:4.3 LCEL高级特性
为第4章 链的构建的4·3 LCEL高级特性写一个原书2024输入和一个当前v1输入,指出最小迁移故障、首个可观测分岔、独立评估与回退条件。
问题 10:4.3.1 ConfigurableField
为第4章 链的构建的4·3·1 ConfigurableField写一个原书2024输入和一个当前v1输入,指出最小迁移故障、首个可观测分岔、独立评估与回退条件。
问题 11:4.3.2 RunnableLambda
为第4章 链的构建的4·3·2 RunnableLambda写一个原书2024输入和一个当前v1输入,指出最小迁移故障、首个可观测分岔、独立评估与回退条件。
问题 12:4.3.3 RunnableBranch
为第4章 链的构建的4·3·3 RunnableBranch写一个原书2024输入和一个当前v1输入,指出最小迁移故障、首个可观测分岔、独立评估与回退条件。
问题 13:4.3.4 RunnablePassthrough
为第4章 链的构建的4·3·4 RunnablePassthrough写一个原书2024输入和一个当前v1输入,指出最小迁移故障、首个可观测分岔、独立评估与回退条件。
问题 14:4.3.5 RunnableParallel
为第4章 链的构建的4·3·5 RunnableParallel写一个原书2024输入和一个当前v1输入,指出最小迁移故障、首个可观测分岔、独立评估与回退条件。
问题 15:4.3.6 容错机制
为第4章 链的构建的4·3·6 容错机制写一个原书2024输入和一个当前v1输入,指出最小迁移故障、首个可观测分岔、独立评估与回退条件。
问题 16:4.4 Chain接口
为第4章 链的构建的4·4 Chain接口写一个原书2024输入和一个当前v1输入,指出最小迁移故障、首个可观测分岔、独立评估与回退条件。
问题 17:4.4.1 Chain接口调用
为第4章 链的构建的4·4·1 Chain接口调用写一个原书2024输入和一个当前v1输入,指出最小迁移故障、首个可观测分岔、独立评估与回退条件。
问题 18:4.4.2 自定义Chain实现
为第4章 链的构建的4·4·2 自定义Chain实现写一个原书2024输入和一个当前v1输入,指出最小迁移故障、首个可观测分岔、独立评估与回退条件。
问题 19:4.4.3 工具Chain
为第4章 链的构建的4·4·3 工具Chain写一个原书2024输入和一个当前v1输入,指出最小迁移故障、首个可观测分岔、独立评估与回退条件。
问题 20:4.5 专用Chain
为第4章 链的构建的4·5 专用Chain写一个原书2024输入和一个当前v1输入,指出最小迁移故障、首个可观测分岔、独立评估与回退条件。
问题 21:4.5.1 对话场景
为第4章 链的构建的4·5·1 对话场景写一个原书2024输入和一个当前v1输入,指出最小迁移故障、首个可观测分岔、独立评估与回退条件。
问题 22:4.5.2 基于文档问答场景
为第4章 链的构建的4·5·2 基于文档问答场景写一个原书2024输入和一个当前v1输入,指出最小迁移故障、首个可观测分岔、独立评估与回退条件。
问题 23:4.5.3 数据库问答场景
为第4章 链的构建的4·5·3 数据库问答场景写一个原书2024输入和一个当前v1输入,指出最小迁移故障、首个可观测分岔、独立评估与回退条件。
问题 24:4.5.4 API查询场景
为第4章 链的构建的4·5·4 API查询场景写一个原书2024输入和一个当前v1输入,指出最小迁移故障、首个可观测分岔、独立评估与回退条件。
问题 25:4.5.5 文本总结场景
为第4章 链的构建的4·5·5 文本总结场景写一个原书2024输入和一个当前v1输入,指出最小迁移故障、首个可观测分岔、独立评估与回退条件。
问题 26:为什么不能混合两条轨道
解释第4章 链的构建为什么不能在同一示例中无标记地混用原书v0接口、langchain-classic与当前v1接口。
问题 27:发布证据
第4章 链的构建除了“代码能运行”还需要哪些证据才能上线?
术语与运行证据
在第4章 链的构建中,↡第4章 链的构建把原书2024与当前v1分开的依赖和接口语义、↡第4章 链的构建对消息、文档、工具参数或事件负载的类型合同、↡第4章 链的构建把模型、检索、工具、状态和错误关联起来的事件树、↡第4章 链的构建只改变一个版本或接口假设以定位不兼容点、↡第4章 链的构建不复用演示样本的质量、安全、延迟和成本检查、↡第4章 链的构建能够恢复依赖、状态和服务行为的可部署版本共同约束发布。术语必须落到锁文件、schema、trace、评估和回退;把旧类名替换成新类名而不重跑行为合同,不叫迁移。
名词解释
本章出现的专业名词,用大白话再讲一遍。
- 版本轨道
第4章 链的构建把原书2024与当前v1分开的依赖和接口语义。
- 输入schema
第4章 链的构建对消息、文档、工具参数或事件负载的类型合同。
- 执行trace
第4章 链的构建把模型、检索、工具、状态和错误关联起来的事件树。
- 迁移故障
第4章 链的构建只改变一个版本或接口假设以定位不兼容点。
- 独立评估
第4章 链的构建不复用演示样本的质量、安全、延迟和成本检查。
- 回退快照
第4章 链的构建能够恢复依赖、状态和服务行为的可部署版本。