LangChain 框架:从编排层到 Agent Engineering
上篇你把多智能体流水线跑通了——调度员派活,研究员、写手、编辑各司其职。但手写协议、手写重试、手写上下文传递,工程负担越来越重。这篇换一条路:认识 LangChain——把 LLM、工具、记忆、检索组装成应用的编排层,以及它眼里的 Agent。
小明想做「AI 旅游助手」
小明已经会 Function Calling、ReAct、Plan-and-Execute,还写过 Researcher → Writer → Editor。同事丢来一个新需求:
他打开旧项目,打算「再拼一套」。半小时后,文件树已经乱了:
小明去找老张:”概念我都懂,但每做一个助手,就要重写一遍胶水代码。网上都说用 LangChain,它到底解决什么?”
老张说:”你现在缺的不是再懂一个算法,而是一个编排层——把模型、工具、记忆、检索用同一套积木拼起来。”
什么是 LangChain
老张在白板上写了三行:
“LangChain 由 Harrison Chase 创建于 2022 年 10 月,定位是 Agent Engineering 平台:帮助开发者把大语言模型与外部数据源、API、工具连接起来,快速构建复杂 AI 应用。
官网:https://www.langchain.com/
中文文档:https://langchain-doc.cn/
你可以把它想成智能应用的乐高底板:
-
底板本身不负责’变聪明’——聪明靠模型 -
底板负责’插得上、换得开、组合得起来’——这叫模块化与可组合“
小明:”那跟我手写 OpenAI SDK 有啥区别?”
| 维度 | 直调 OpenAI SDK / 手写 Agent | LangChain 编排层 |
|---|---|---|
| 模型接入 | 各家 SDK 写法不一 | 统一 ChatModel / init_chat_model |
| 提示词 | 字符串拼接 | Prompt 模板 + 可组合管道 |
| 工具 | 自己解析 tool_calls |
Tool 抽象 + Agent 运行时 |
| 记忆 / 状态 | 自己维护 list | Memory / State / Store 体系 |
| 检索 | 另起一套脚本 | 检索组件可挂进链或 Agent |
| 可观测 | print / 自建日志 | 回调 + LangSmith 等仪表盘 |
“直写课回答怎么调用;LangChain 课回答怎么组织成可维护的项目。”
六大核心模块 + Agent 三阶段
老张继续画:
“导图里的六大模块,你可以这么记:
-
模型 I/O —— 与 LLM 对话的标准接口 -
检索 —— 给模型装上外挂知识库 -
链 —— 应用的骨架(一步步流水线) -
记忆 —— 给应用装上状态 -
智能体 —— 让模型当指挥官(自己决定调不调工具) -
回调 —— 应用的仪表盘(看中间发生了什么)
现代拼法不靠古老的 LLMChain 类山,而靠 LCEL(LangChain Expression Language):用 | 把 Prompt、模型、解析器串成管道。”
说到 Agent,老张换了个比喻:
如果说大模型(LLM)是「大脑」,那么 Agent 就是「拥有手脚和思维逻辑的独立个体」。
它不再只是被动回答问题,而是能主动拆解任务并调用各种工具来完成工作。
“做《AI 旅游助手》可以分三阶段——这也是能力演进路线:
你之前手写的 FC / Memory / Multi-Agent,其实就是在这三个阶段里裸奔。LangChain 不换掉这些概念,只是换了一套标准零件。”
小明复述:”LangChain 是底板;六大模块是积木;Agent 是会自己选积木干活的角色;能力从手脚 → 记忆反思 → 团队。”
“对。下面看零件长什么样——用课件里的真代码。”
代码拆解:先摸到「模型」和「链」
1. 模型工厂:统一接到 ChatModel
“两件事:
-
ChatOpenAI:兼容 OpenAI 协议的端点最直观(通义、很多国内网关都走这条) -
init_chat_model:官方统一入口,换 provider 时少改胶水
注意:这里还不是 Agent。只是六大模块里的第一块——模型 I/O。先把大脑插上底板。”
入口演示在 main.py:
“看接口:invoke 既能吃字符串,也能吃 Messages 列表。后面 Messages、多模态、记忆,全都建立在这个消息协议上。”
2. LCEL:Prompt | Model | Parser
“这一行 | 就是 LCEL:
链是应用的骨架:固定流水线,适合’解释概念、翻译、摘要’这类步骤清晰的任务。
Agent 则是指挥官:步骤不固定,自己决定调不调工具。
旅游助手里,’把景点介绍改写成小红书风’适合链;’先查天气再决定去不去爬山’适合 Agent。”
小明:”所以我以前手写的 messages = [system, user]; client.chat...,在 LangChain 里先被拆成模型工厂 + Prompt 模板 + 管道?”
“对。先会拼链,再上工具和 Agent,不会一上来被 create_agent 全家桶淹死。”
老张说:”这两次运行,你验证的是编排层最小闭环:
-
环境变量 → 模型工厂 → invoke -
Prompt 模板 → |→ 模型 → 字符串解析
还没上工具、记忆、检索。但底板已经通了——后面六大模块都往这上面插。”
环境备忘:
直写 Agent vs LangChain:别混成一件事
| 问题 | 手写 FC / ReAct / 多 Agent | LangChain |
|---|---|---|
| 解决什么 | 把协议与循环吃透 | 用标准组件拼可维护应用 |
| 学习价值 | 高(知其所以然) | 高(知其如何工程化) |
| 换模型供应商 | 改客户端代码 | 多走 ChatModel / init 入口 |
| 加检索 / 记忆 | 自己造轮子 | 挂模块、挂 Runtime |
| 适合何时 | 教学、定制协议、极简脚本 | 中等以上应用、团队协作开发 |
常见坑
坑 1:把 LangChain 当成「另一个更聪明的模型」
症状:以为 pip install langchain 后回答自动变准。
原因:聪明来自 LLM;LangChain 只负责连接与编排。
修法:先固定模型与 Prompt,再谈框架收益。
坑 2:第一天就上齐 Agent + 记忆 + RAG + 多 Agent
症状:环境报错一堆,概念搅成浆糊。
原因:六大模块同时引入,没有「先 I/O、再链、再工具」的坡度。
修法:按路线走——Models → Messages/Prompts(LCEL) → Tools → Memory → Runtime → RAG。
坑 3:用链硬扛「要决策」的任务
症状:prompt | model | parser 写了十几段 if,还是做不好工具选择。
原因:链擅长固定骨架;动态选工具是 Agent 的活。
修法:步骤固定用链;需要指挥官时上 Tools + Agent(下一篇快速入门)。
总结
老张说:”今天只办一件事——把 LangChain 在地图上钉住。”
“三个核心理解:
-
LangChain = Agent Engineering 编排层 —— 连接 LLM 与数据、API、工具,不替代模型本身 -
六大模块 + LCEL —— 模型 I/O、检索、链、记忆、智能体、回调;用 |组合 -
Agent 三阶段 —— 手脚(工具)→ 镜子与日记本(反思 + 长期记忆)→ 团队(多 Agent)”
系列从此分出一条 LangChain 支线:
小明说:”我明白了。以前是自己焊电路;现在是认乐高底板。下一篇就按四步把最小 Agent 跑起来。”
“对。下一篇:Agent 快速入门——加载环境变量、定义工具、create_agent、调用。”
LLM 是大脑;Agent 是带手脚的个体;LangChain 是让你把大脑、手脚、日记本、知识库插在同一块底板上的编排层。
转载请注明来源:LangChain 框架:从编排层到 Agent Engineering


























