55-LangChain核心概念-Chain-Agent-Tool-Memory关系
文章目录
- 【55.Python+AI】LangChain核心概念一张图讲透:Chain、Agent、Tool、Memory的关系
- 导入语
- 1 ~> 四大核心抽象关系图
- 2 ~> 逐层拆解
- Chain:LangChain的骨架
- Agent:当Chain不够用了
- Tool:Agent的"手和脚"
- Memory:跨越时间的记忆
- 3 ~> 什么时候该用LangChain,什么时候自己写
- 思考 && 总结
- 结尾
【55.Python+AI】LangChain核心概念一张图讲透:Chain、Agent、Tool、Memory的关系
📖文章简介:本文用一张Mermaid架构图串讲LangChain的核心抽象——Chain(工作流编排)、Agent(自主决策)、Tool(外部能力)、Memory(上下文持久化)以及它们之间的协作关系。内容深挖Runnable接口与LCEL表达式语言的底层设计,对比"用LangChain"和"自己写"的边界选择,帮你在框架依赖和灵活性之间找到平衡。适合已经用LangChain搭过简单应用、想系统性理解框架设计的开发者。
🎬 个人主页:源码骑士
❄专栏传送门:《Android开发基础》《python基础课程》
⭐️热衷从源码视角拆解技术底层原理,将复杂架构讲得通俗易懂
🎬 源码骑士的简介:5年Android Framework系统开发经验,曾主导多项系统级性能优化专项
技术栈覆盖Android系统全链路(Binder/Handler/AMS/WMS/启动流程)及Java后端全家桶(Spring + MyBatis + Redis + Oracle)
累计产出原创技术文章100+篇,文章以流程图为特色,被读者评价为"看一篇胜过啃一周源码"
导入语
你用LangChain搭了RAG、做了Agent、接了Memory。但脑子里可能还是乱的——Chain和Agent到底什么关系?Tool是Agent专用的吗?Memory存在哪?LCEL这个奇怪的|管道符又是什么?
这篇文章的目标就是一张图+逐层拆解,让你对LangChain的四个核心抽象建立清晰的心智模型。理解了它们之间的关系,你就不再是"抄代码",而是"自己设计工作流"。
1 ~> 四大核心抽象关系图
2 ~> 逐层拆解
Chain:LangChain的骨架
# 最简单的Chain:用LCEL管道符组合fromlangchain_openaiimportChatOpenAIfromlangchain_core.promptsimportChatPromptTemplate llm=ChatOpenAI()prompt=ChatPromptTemplate.from_template("翻译成英文:{text}")# LCEL语法:用 | 串联每一步chain=prompt|llm result=chain.invoke({"text":"你好世界"})# 数据流:{"text":"你好世界"} → Prompt填充 → LLM生成 → 返回结果Chain的本质:把多个Runnable对象用|串联起来,形成一个数据处理流水线。每个Runnable都实现.invoke()方法,所以Chain本身也是一个Runnable——Chain可以嵌套Chain。
Agent:当Chain不够用了
Chain vs Agent的区别: ├─ Chain:事先知道要做什么、怎么做(固定流程) │ └─ 适用场景:检索→拼Prompt→回答(流程固定) └─ Agent:不知道"怎么做",让LLM自己决定 └─ 适用场景:"帮我查天气+发邮件+订会议室"(步骤不确定)Agent本质上就是在Chain外面加了一个决策循环——它调用LLM决定下一步做什么,执行对应的Tool,把结果反馈给LLM,LLM再决定下一步……直到任务完成。
Tool:Agent的"手和脚"
Tool就是被Agent调用的外部函数。一个搜索Tool、一个数据库查询Tool、一个代码执行Tool——每个Tool都是一个被Agent"使唤"的能力模块。
Memory:跨越时间的记忆
Memory的三种形态: ├─ BufferMemory:完整保存所有对话(Token消耗大) ├─ SummaryMemory:用LLM压缩历史对话为摘要(省Token) └─ WindowMemory:只保留最近K轮(折中方案)3 ~> 什么时候该用LangChain,什么时候自己写
| 场景 | 建议 | 原因 |
|---|---|---|
| 简单Prompt→LLM→返回 | 自己写(直接用OpenAI SDK) | LangChain反而增加复杂度 |
| 文档加载→分块→向量化→检索→生成 | LangChain | 四大步每步都有封装好的组件 |
| 多步骤Agent循环 | LangChain + LangGraph | 状态管理、循环控制自己写容易出bug |
| 带复杂条件分支的工作流 | LangGraph | 状态图建模比手写if-else可靠 |
思考 && 总结
- Chain是骨架,Agent是大脑,Tool是手脚,Memory是记忆:四个抽象覆盖了AI应用从简单到复杂的全部需求。
- LCEL让Chain的定义像Unix管道一样自然:
step1 | step2 | step3的写法比面向对象的链式调用更直观。 - Agent = LLM驱动的决策循环:它不是"更高级的Chain",而是一个完全不同的范式——LLM决定做什么、什么时候停。
- 不要为了用而用LangChain:一个简单API调用不需要LangChain。框架的价值在复杂工作流和组件生态。
理解这些抽象的关系,你就从"LangChain使用者"变成了"AI工作流设计者"。
结尾
各位小伙伴,本文完!源码骑士 — Android Framework & 全栈开发
👀关注| ❤️点赞| ⭐收藏| 💬评论| 🔄一键四连!🗡️寄语:框架是手段不是目的——理解框架的设计哲学比会调API更重要。
往期回顾:【Python+AI】企业知识库实战 / 【Python+AI】RAG评估体系 / 【Python+AI】多模态RAG / 【Python+AI】Self-Querying / 【Python+AI】检索策略进阶
