当前位置: 首页 > news >正文

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 ~> 四大核心抽象关系图

Chain = 可组合的步骤序列

Step1: 检索

Step2: 拼Prompt

Step3: 调LLM

Step4: 解析输出

用户输入

Chain 工作流编排

需要自主决策?

Agent 自主决策引擎

LLM直接生成

Tool 外部能力
(搜索/数据库/API)

Memory 记忆系统


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可靠

思考 && 总结

  1. Chain是骨架,Agent是大脑,Tool是手脚,Memory是记忆:四个抽象覆盖了AI应用从简单到复杂的全部需求。
  2. LCEL让Chain的定义像Unix管道一样自然:step1 | step2 | step3的写法比面向对象的链式调用更直观。
  3. Agent = LLM驱动的决策循环:它不是"更高级的Chain",而是一个完全不同的范式——LLM决定做什么、什么时候停。
  4. 不要为了用而用LangChain:一个简单API调用不需要LangChain。框架的价值在复杂工作流和组件生态。

理解这些抽象的关系,你就从"LangChain使用者"变成了"AI工作流设计者"。


结尾

各位小伙伴,本文完!源码骑士 — Android Framework & 全栈开发

👀关注| ❤️点赞| ⭐收藏| 💬评论| 🔄一键四连!🗡️寄语:框架是手段不是目的——理解框架的设计哲学比会调API更重要。

往期回顾:【Python+AI】企业知识库实战 / 【Python+AI】RAG评估体系 / 【Python+AI】多模态RAG / 【Python+AI】Self-Querying / 【Python+AI】检索策略进阶

http://www.jsqmd.com/news/1128857/

相关文章:

  • 从0到1用C#开发ABB机器人上位机:PC SDK通信+运动控制+状态监控
  • PyTorch 2.0+ 实战:Fashion MNIST 图像分类从 91% 到 95% 的 3 个调优技巧
  • XPS深度剖析概述
  • 2026全球汽车资本风向:为什么Tier 1供应商正在比主机厂赚得更多?
  • 测试框架体系 TDD DDT BDD ATDD 介绍
  • 2026年7月亲测,汽修引流这样干超有效!
  • 2026 AI 开发者生存指南(9):AI 产品的数据分析与增长方法——从流量到留存
  • WSL2 安装LeRebot开发环境
  • TVA在具身智能商业化部署中的技术突破(10)
  • 腾讯元宝复制内容带乱码怎么办?AI 导出鸭一键解决复制粘贴乱码难题,程序员高效办公必备
  • 论文学习:2.Semi-Supervised Classification with Graph Convolutional Networks(1)
  • Onekey Steam游戏解锁器:智能自动化DLC解锁的全面解决方案
  • Python练习题2
  • TPA3128D2音频放大器与PIC18F4458微控制器的集成应用
  • 26. 【C语言】编译前的“文本大师”:预处理器指令
  • 华盛顿邮报发文:中国企业正在改写全球 AI 竞争格局——不靠最顶尖,靠最实用
  • merge、concat、join:三张表合并搞崩你的不是语法是逻辑
  • 智慧职教自动化学习助手:让在线课程学习更高效
  • X射线光电子能谱(XPS)全元素深度剖析
  • 基于 Simulink 的双向 DC-DC 变换器效率 MAP 图自动化扫描仿真实
  • 医学图像分割神器TotalSegmentator:三步掌握100+解剖结构自动识别
  • 高效智能图像去重解决方案:ImageDedup 终极指南
  • STM32L433RC与MC6470 IMU的高精度姿态检测方案
  • Cangaroo:免费开源CAN总线分析软件的完整指南
  • ConvertToUTF8:终极指南 - 彻底解决Sublime Text中文乱码问题
  • TVA对具身智能领域的核心技术支撑(19)
  • 【QT】qt里的c++项目为啥不能用NULL
  • 现代化文件管理系统:在线预览、权限控制与高效管理实践
  • 本文想借用故事的方式来说一下ADO.net的工作方式。虽然现在都ORM了,但是了解一下ADO.net还是有必要的。
  • FindSomething:5分钟快速部署的浏览器隐私保护终极方案 [特殊字符]