LangChain 组件
输入输出模块
该模块负责与LLM做交互,通过该接口向模型输入 Prompt 并提取模型输出信息。主要包括:提示词、语言模型,输出解析器。
数据连接
已训练好的大语言模型,在训练时使用了大量的训练数据,但这些训练数据中可能并未包含用户所需的信息,包括模型训练数据本身也有时效限制,不包括训练数据时效后的新事件。为支持利用新数据,LangChain提供了数据连接模块,包括加载,转换,存储和数据查询,即加载新数据,将新数据按照模型规则转换,将转换的数据做Embedding处理,将Embedding数据存储。
链
为处理复杂的需求,LangChain 可使用链式调用多个LLM,这样可以创建一个独立的应用程序以处理特定的情况。
记忆
LangChain中的记忆指的是模型的短期记忆,例如在对话中,模型可以将前面的Prompt及对应回答作为后面问题的参考,使问答更流畅,而在对话结束后,这些记忆会被清除。注:模型预训练的参数不会被改变。
代理
LLM 在处理计算、检索外部信息的能力较弱,这是受限于模型训练数据的时效问题。LangChain 通过代理为LLM提供计算、检索等支持。
回调
回调函数CallBack 适用于程序于各个阶段,可应用于日志记录、监事、流程处理等任务。例如在代理模块中,可记录代理的调用次数,返回的参数值等。CallBack 收集的信息可直接输出到控制台也可输出到文件或应用。
CallBack 有两个类:CallbackHandler 和 CallbackManager。CallbackHandler 用于记录每个应用场景的日志的完整日志信息,属于单个日志处理器。CallbackManager 负责封装管理所有 CallbackHandler。
在构造函数中定义回调函数,此时被用于对该对象的所有调用,对日志、监控等对整个链的监控很有用。
在发出请求中定义回调函数,如在call()/run()/apply()中使用,此时回调函数仅用于特定请求及其所有子请求。
verbose 参数在整个 API 的大多数对象(链、模型、工具、代理等)上都可以作为构造参数使用,如 LLMChain(verbose=True),相当于将 ConsoleCallbackHandler 传递给该对象和所有子对象的 callbacks 参数。这对调试很有用,此时会把所有事件记录到控制台。
LangChain
构建 LLM 应用的基础框架,提供与模型、工具、数据源交互的标准化抽象层。

核心功能:
- **LCEL (LangChain Expression Language)**:声明式管道组合 `prompt | llm | parser`
- **Chat Models**:统一的多供应商 LLM 调用接口
- **Tool Calling**:函数调用 / 工具绑定的标准化
- **Retrieval / RAG**:文档加载、分割、向量化、检索
- **Memory**:对话历史管理
**适用任务**:单轮/多轮问答、RAG、简单 Chain 串联、Prompt 模板化、Tool 调用
LangGraph
构建有状态、多步骤、可循环的 Agent 工作流,基于图(Graph)结构编排复杂决策流程。

**核心功能**:
- **StateGraph**:定义节点(函数)+ 有向边 + 条件分支的执行图
- **Cycles(循环)**:支持 Agent 反复推理→工具调用→判断→继续的循环
- **Human-in-the-loop**:暂停等待人类输入后恢复
- **Checkpointing**:任意节点状态持久化,支持 replay/resume
- **Streaming**:流式输出中间状态和最终结果
- **Subgraphs**:图嵌套,支持多 Agent 协作
适用任务:ReAct Agent、多轮工具调用循环、多 Agent 协作 DAG、需要人工审批的工作流、长时运行任务
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)