LangChain 核心抽象
摘要
这一页用于沉淀 LangChain 最重要的基础概念,并标记每个概念的真实源码位置。
重点概念(待逐步验证)
- Runnable
- Agent
- Tool
- Prompt
- Message
- Model interface
- Output parser
- Callback / tracing
- Retriever
- Document
- Memory / state
当前目标
对每个抽象都补齐:
- 定义位置
- 主要实现文件
- 谁依赖它
- 典型调用场景
- 与旧版抽象的关系
第一轮已确认
Runnable
- 定义位置:
libs/core/langchain_core/runnables/base.py:124 - 导出入口:
libs/core/langchain_core/runnables/__init__.py - 关键实现文件:
base.py、config.py - 执行核心:
invoke是最小原语;ainvoke默认通过 executor 包装 syncinvoke - 组合原语:
RunnableSequence与RunnableParallel - 关键补充:
RunnableLambda适合包装普通 callable,但默认不擅长 streaming transform
RunnableSequence
- 定义位置:
libs/core/langchain_core/runnables/base.py:2817 - 典型语法:通过
|运算符构建 - 结构:
first/middle/last - 重要性:是最常见、最核心的链式组合原语
RunnableParallel
- 定义位置:
libs/core/langchain_core/runnables/base.py:3565 - 典型语法:sequence 中使用 dict literal 会被 coercion 成 parallel
- 语义:同一输入并发喂给多个分支,输出聚合为 dict
RunnableLambda
- 定义位置:
libs/core/langchain_core/runnables/base.py:4399 - 作用:将 Python callable 包装为 Runnable
- 注意:默认不支持
transform,可能阻断 streaming 贯通
建议优先精读文件
libs/core/langchain_core/runnables/base.pylibs/core/langchain_core/runnables/config.pylibs/core/tests/unit_tests/runnables/test_runnable.pylibs/core/tests/unit_tests/runnables/test_runnable_events_v2.py
建议记录模板
抽象名
- 作用:
- 关键文件:
- 关键类/函数:
- 上游:
- 下游:
- 研究结论:
- 未解问题: