LangChain简介
简介
Agent
ReActChain
推理与行动交替执行,LLM在完成任务过程中边思考,变调用工具或执行操作。
适合的任务类型:多轮工具使用;中间步骤需要反思的任务;查询型或逻辑型的任务
内部实现:
是只需要通过构造合适的提示模板,就可以让LLM输出ReAct风格的输出吗?
Reflection
将人的“反思性学习”引入LLM,LLM在失败后复盘自己的决策路径,以进行自我改进。
典型的应用场景:编程、工具调用等。
LLM获得执行失败的信息途径:
- 环境反馈
- 用户反馈
- LLM自我反馈(self-critic)
Plan-and-Execute
将复杂任务拆分成两个阶段,分别由两个大模型作为Planner和Excutor承担任务拆解和执行拆解的子任务步骤的角色。
适合任务:
- 有清晰的任务结构与流程;
- 支持长期任务与复杂流程;
- 更容易集成多个 Agent 协作处理。
[]
Tools
Q&A
🧠 一、LangChain 的多智能体协作机制(Multi-Agent)
LangChain 多智能体系统是建立在 Chain、Tool 和 Agent 架构之上,支持多个 Agent 在一个任务中以协同或竞争方式工作。
🌐 核心机制:
定义多个 Agent
每个 Agent 拥有独立的:
- LLM(大模型或 API)
- 工具集(Tools)
- 专业角色(系统 prompt)
- 状态与记忆(Memory)
中控调度(Coordinator Agent)
通常采用一个「决策 Agent」管理任务分配,如:
- Planner + Executor(ReAct 思维)
- Router + SubAgents(基于任务类型路由)
通信机制
Agent 间通过消息传递或共享上下文合作,例如:
1
2
3agent1_output = agent1.run(input)
agent2_input = agent1_output
agent2.run(agent2_input)
工具共享与上下文统一
- 支持多个 Agent 共享一套工具(Toolset)或共享 Memory,提高协作效率。
✅ 示例:多人问诊助手系统
- 👩⚕ 医学 Agent:调用症状分析工具
- 🧑⚕ 药品 Agent:调用药品匹配与推荐工具
- 🤖 中控 Agent:协调提问、信息整合与用户输出
🧠 二、LangChain 的记忆功能(Memory)
LangChain 的 Memory 是对语言模型 stateless 特性的补充,模拟「上下文记忆」,用于支持多轮对话、任务持久化、个性化响应等。
🌟 记忆的类型:
ConversationBufferMemory
- 存储全部历史对话内容(适合短对话)
ConversationSummaryMemory
- 使用 LLM 对历史对话总结摘要存储(适合长对话)
VectorStoreRetrieverMemory
- 将对话信息嵌入为向量,支持语义相似召回(记忆容量大)
CombinedMemory
- 结合多个 Memory 类型进行灵活存储与回忆
✨ 如何工作?
1 | |
- 每轮对话后自动
save_context - 下轮调用时
load_memory_variables注入 prompt
⚔️ 三、LangChain vs AutoGen 核心差异
| 维度 | LangChain | AutoGen |
|---|---|---|
| 理念 | 构建任务链式流程(Chain of Thought + 工具链) | 多 Agent 协同完成复杂任务(像多人项目协作) |
| 多智能体 | 有路由/子 Agent/中控支持,但偏「流程控制」 | 原生支持多角色对话,多 Agent 互发消息,结构灵活 |
| 通信机制 | Agent 调用彼此输出,有限支持异步 | Agent 间可自由 chat(同步/异步) |
| 编程模型 | 基于 Chain → Agent → Tool 模式 | 基于 UserProxyAgent, AssistantAgent,强调轮流沟通 |
| 使用门槛 | 更偏工程流程,适合有结构化工具 | 更偏研究探索,适合探索 Agent 社会行为 |
| 典型场景 | 问答系统、RAG、对话机器人 | 多智能体论文生成、项目协作、AI团队实验 |
👉 总结:LangChain 更像搭流水线,AutoGen 更像组织项目组。
💾 四、基于 LangChain 开发一个本地知识库系统
🎯 目标:
构建一个支持文档上传、嵌入、检索、问答的本地知识库系统。
📌 技术架构:
- 文档预处理(PDF, Word, Markdown) → 文本
- 文本分块 → 向量嵌入
- 存储到本地向量数据库(如 Chroma)
- 用户提问 → 检索相关 chunk → 构建 Prompt → 回答
🧱 模块构建(简化版代码)
1 | |
🧠 可选增强:
- 加入
ConversationBufferMemory,实现上下文连续问答 - 加入
LangServe+FastAPI提供 Web 服务 - 使用
LangGraph实现更复杂的知识流转(如结构化摘要 → QA)
✅ 总结
| 问题 | 回答摘要 |
|---|---|
| 多智能体协作机制 | 通过链式任务规划 + Agent 调度支持多角色协作 |
| 记忆实现 | Memory 模块支持 Buffer、摘要、向量等多种记忆方式 |
| 与 AutoGen 区别 | LangChain 偏流程驱动、插件化;AutoGen 偏角色协作、交互式 |
| 本地知识库系统构建 | 利用 LangChain 的向量检索 + Chain/QA 模型,快速搭建 |
参考
LangChain简介
https://summerchengh.github.io/tech-blog/2025/05/26/大模型-Agent-框架-LangChain/