LangChain

langchain2026-09-16 17:09:46

LangChain 是用于构建大语言模型应用和 AI Agent 的开源开发框架。它为模型、工具和 Agent 循环提供统一的高层接口,使开发者能够组合不同模型服务与外部能力,而不必为每一种组合重新实现完整的调用流程。

LangChain 不是大语言模型,也不是一个已经配置完成的 Agent。它是开发者用来实现 AI Agent、聊天应用、结构化信息提取和其他模型应用的代码框架。

它解决什么问题

不同模型服务的请求格式、消息对象、结构化输出和工具调用方式并不完全相同。如果直接面向每个服务编写代码,切换模型或增加工具时通常需要修改调用层和 Agent 循环。

LangChain主要提供以下抽象:

  • 模型接口:用相近的调用方式接入不同模型提供商;
  • 消息:统一表示系统指令、用户消息、模型回答和工具结果;
  • 工具:用名称、说明和参数结构描述模型可以调用的能力;
  • 结构化输出:让模型输出符合指定数据结构的结果;
  • Agent:提供预制的模型决策与工具调用循环;
  • 中间件和集成:在模型调用、工具执行和状态更新前后加入控制逻辑,并连接外部服务。

这些抽象减少了接入代码,但不会自动解决权限、事实准确性、完成条件和结果验证。相关工程责任仍属于 Agent Harness 和具体应用。

一个基本 Agent 怎样运行

使用 LangChain 构建的常规工具调用 Agent,可以概括为:

  1. 应用把用户消息、系统指令和可用工具交给 Agent;
  2. Agent 调用模型;
  3. 模型选择直接回答,或者生成结构化工具调用;
  4. Agent 执行允许的工具,并把结果返回模型;
  5. 模型依据工具结果继续判断;
  6. 满足结束条件后返回最终回答。

其中,一次结构化调用的基本机制可参见 Agent 工具调用,多轮执行过程可参见 Agent 工具调用循环。

与早期“Chain”的关系

LangChain 的名称来自早期将模型调用、检索和处理步骤连接成 Chain 的设计。随着模型原生工具调用和 Agent 应用的发展,当前 LangChain 的主要高层入口已经转向 Agent 抽象。

因此,LangChain 不能只理解为“把几个提示词串起来”。在当前架构中,它还负责模型标准接口、工具绑定、结构化输出和预制 Agent 循环。

与 LangGraph 的关系

当前 LangChain Agent 构建在 LangGraph 之上。

可以把二者的关注点简化为:

  • LangChain提供模型、工具和常见 Agent 循环的高层组件;
  • LangGraph提供状态、节点、边、持久化和中断恢复等底层编排能力。

开发者可以只使用 LangChain 快速构建常规 Agent,也可以直接使用 LangGraph 控制复杂流程;还可以在 LangGraph 节点中使用 LangChain 的模型和工具组件。

这种关系类似于“预制组件”和“流程运行结构”,但只是帮助理解的比喻:二者都可以独立组合其他库,并不是必须成套使用。

适用场景

LangChain适合以下情况:

  • 希望快速建立模型与工具调用 Agent;
  • 需要在多个模型提供商之间保持相近接口;
  • 需要结构化输出、工具绑定和常见 Agent 中间件;
  • 执行过程主要符合常规的模型—工具—模型循环;
  • 希望以后接入更低层的 LangGraph 编排能力。

如果应用具有严格的业务阶段、复杂分支、人工审批、长任务恢复或多个 Agent 之间的协调,仅使用高层 Agent 抽象可能不足,需要进一步设计显式工作流。

使用边界

使用 LangChain不代表应用自然具备可靠性或安全性。开发者仍需明确:

  • 模型和工具能够访问哪些数据;
  • 哪些操作需要用户确认;
  • 工具参数和结果怎样验证;
  • Agent 最多可以执行多少步;
  • 失败、超时和重复调用怎样处理;
  • 怎样判断任务真正完成。

本文依据 LangChain 官方文档于 2026 年 9 月 15 日核实。具体 API 和包结构可能随版本变化,使用时应继续查阅对应语言和版本的官方文档。

本页目录