参考资料:
langChain介绍
LangChain 是一个 基础框架,专注于大语言模型(LLM)应用 的开发。它提供模块化 的构建块和全生命周期支持,适合简单的任务链式执行。
核心特点:
- 任务链(Chains):支持通过链式结构串联多步骤任务,如提示生成、模型调用和结果解析。
- 工具集成:通过 Agents 协调外部工具(如数据库、API)与模型的交互。
- 检索增强生成(RAG):结合文档加载、向量化存储和语义检索,提升回答的准确性。
- 模块化设计:包含核心接口(langchain-core)和社区扩展(langchain-community)。
适用场景:
- 构建简单的对话系统、问答机器人。
- 实现文档摘要、知识检索等基础任务。
langGraph介绍
LangGraph 是 LangChain 的 扩展库,专注于复杂任务流的编排,尤其适用于多智能体协作 和有状态的任务管理。
核心特点:
- 图结构任务流:通过节点(Nodes)和边(Edges)定义任务图,支持并行执行和依赖管理。
- 状态持久化:支持任务状态的保存与恢复,适合长时任务或人工介入场景。
- 条件分支控制:基于 LLM 推理结果动态选择执行路径。
- 多智能体协作:支持构建多智能体系统,实现任务分工与协作。
适用场景:
- 开发复杂的多智能体系统,如代码生成与测试的反馈循环。
- 实现需要复杂流程控制的自动化任务,如数据分析和审批流程。
LangSmith(开发者辅助平台)
直接发 request 调大模型 API
手写底层调用:直接 request 调 API。
需要自己处理:
- prompt 拼接
- 多轮对话历史
- 输出解析
- 异常重试 / 超时
- 工具调用(函数 schema)
- 检索、记忆、链式推理
- 调多个模型、多个步骤
自由度高,但"脏活累活"全在自己写
langchain和langgraph的区别
| 特性 | LangChain | LangGraph |
|---|---|---|
| 核心理念 | "链式调用 LLM" → 将 LLM、工具、检索、记忆等组成 链(Chain)" | "图化 LLM 计算流程" → 将 LLM 调用、工具调用、数据流设计为 图(Graph)节点" |
| 调用方式 | 顺序、线性或简单分支 | 支持 DAG(有向无环图)、多分支、多输入输出 |
| 适合场景 | 单一任务、链式步骤、简单工具调用 | 复杂业务逻辑、多模型协作、多分支推理、可视化工作流 |
| 记忆管理 | 内置 Memory 对象,容易做多轮对话 | 需要自己设计节点状态,但可以跨节点共享上下文 |
| 代码风格 | 面向链式流程,代码简洁 | 面向图节点,流程可视化,节点间数据流显式 |
补充知识点
LlamaIndex是什么?