架构与核心概念
本章说明 LangChain 1.0 的分层设计、Agent 循环,以及何时使用 LangGraph。
分层架构
- langchain-core:与厂商无关的抽象(消息、Runnable 协议、工具接口)
- LangGraph:有状态、可循环、可持久化的执行引擎
- LangChain 1.0:在 LangGraph 之上提供「标准 Agent 循环 + Middleware 扩展点」
Agent = Model + Harness
官方定义 Harness 负责:在任务的每个阶段,为模型准备正确的上下文。
Harness 包含:
LangGraph 上的 Agent 循环
create_agent 内部是 LangGraph 图,典型节点:
- model:调用 LLM,可能产生 tool_calls
- tools:执行工具,结果写回 messages
Middleware 可在进入/离开 model 节点前后运行,相当于在「Web 中间件」模型下包装 Agent 循环。
LangChain vs LangGraph
官方建议:
- 先用 LangChain 起步
- 需要 固定流程 + 条件分支 + 并行工作者 时,用 LangGraph 建图
- 可将
create_agent作为 子图 嵌入大图(可组合、不锁定)
工作流 vs Agent
LangGraph 同时支持二者:Prompt chaining、路由、Orchestrator-Worker 等模式见 LangGraph 工作流。
Runnable 与 LCEL(遗留概念)
0.x 时代的 LCEL(LangChain Expression Language)用 | 管道组合 Runnable:
1.0 仍以 Runnable 为底层协议,但 Agent 开发的主路径是 create_agent。许多 LCEL Chain 场景可被 Agent 或 LangGraph 节点替代;集成包中的 ChatOpenAI 等仍是 Runnable,可与图节点共用。
包版本与兼容
langchain1.x 与langgraph1.x 对齐- 旧版
AgentExecutor、initialize_agent等已 deprecated,新项目勿用 - 文档入口:docs.langchain.com