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.pyconfig.py
  • 执行核心:invoke 是最小原语;ainvoke 默认通过 executor 包装 sync invoke
  • 组合原语:RunnableSequenceRunnableParallel
  • 关键补充: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.py
  • libs/core/langchain_core/runnables/config.py
  • libs/core/tests/unit_tests/runnables/test_runnable.py
  • libs/core/tests/unit_tests/runnables/test_runnable_events_v2.py

建议记录模板

抽象名

  • 作用:
  • 关键文件:
  • 关键类/函数:
  • 上游:
  • 下游:
  • 研究结论:
  • 未解问题: