返回项目目录
开源平台精选项目

LangChain

用于开发语言模型应用和智能体工作流的开源框架。

主要语言Python
开源许可MIT
项目类型开源平台
维护状态活跃维护
OVERVIEW

项目概述

LangChain 提供模型、工具、检索和智能体编排所需的通用抽象,适合构建需要多步骤推理和外部数据连接的 AI 应用。

LangChain 是采用 MIT 许可证的开源框架,提供 Python 和 TypeScript 生态,用统一接口连接模型、工具、检索系统和应用状态。当前 v1 版本以 create_agent 为主要入口,并使用 LangGraph 作为底层图运行时,为 Agent 提供循环执行、流式输出、持久状态和人工介入等能力。LangChain 负责应用编排,本身不提供模型,也不替代向量数据库、业务 API 或安全边界。

当前主线LangChain v1
Agent 运行时LangGraph
主要生态Python / TypeScript
FEATURES

主要特点

LangChain 将模型能力、外部工具、业务数据和有状态工作流组织成可组合的 AI 应用。

01

统一模型接口

通过独立 Provider 包连接主流云模型和自托管模型,并以一致方式处理消息、流式输出、工具调用与结构化响应。

02

生产级 Agent 入口

create_agent 将模型与工具组合为循环执行的 Agent,直到返回最终结果、触发中断或达到停止条件。

03

工具与外部操作

可把 Python 函数、数据库查询、搜索、内部 API 和 MCP 工具包装为带 Schema 的能力供模型按需调用。

04

检索与 RAG 组件

支持文档加载、切分、Embedding、向量存储和 Retriever,可实现两步式、Agentic 或混合 RAG 流程。

05

结构化输出

可通过 Pydantic、TypedDict、Dataclass 或 JSON Schema 约束返回值,并按模型能力选择原生或工具调用策略。

06

Middleware 与动态策略

可在模型和工具调用前后加入权限过滤、动态 Prompt、重试、错误处理、摘要和人工审批等横切逻辑。

07

状态、记忆与流式处理

借助 LangGraph 管理线程内状态、持久化检查点和长期记忆,并流式返回 Token、步骤和状态更新。

08

可观测性与评估集成

可选接入 LangSmith 追踪模型和工具步骤,建立离线数据集、回归评估与生产反馈闭环。

USE CASES

适用场景

适合需要多模型、多工具或多步骤决策,而不只是完成一次模型调用的应用。

工具调用型 Agent

让模型根据请求选择搜索、数据库、日历或内部 API,并在多轮观察和行动后完成任务。

企业知识问答与 RAG

从文档、数据库和业务系统检索证据,生成带来源、受领域数据约束的回答。

客服与运营助手

结合订单、工单和用户工具处理查询、生成建议,并在敏感操作前转交人工。

信息抽取与分类

通过结构化输出把邮件、合同、对话和网页内容转换为可验证的业务对象。

多步骤业务工作流

适合需要规划、调用多个系统、保存中间状态、失败重试和人工审批的长流程。

多模型原型与评测

统一接口便于快速比较不同 Provider、Prompt、工具设计和检索策略,再用数据集量化效果。

EVALUATION

优点与注意事项

技术选型不仅要看能力,也要理解它带来的团队成本。

主要优点

LangChain 擅长的地方

  • 模型、消息、工具和结构化输出拥有较统一的开发接口
  • Provider、向量库、Loader 和业务系统集成范围广
  • create_agent 与 LangGraph 提供可扩展的有状态执行基础
  • Middleware 便于集中实现权限、重试、摘要和人工审批
  • 同时覆盖 Python 与 TypeScript,社区示例和学习资料丰富
  • 可与 LangSmith 或自有观测方案结合建立测试和反馈闭环

需要注意

采用前应考虑的问题

抽象无法完全屏蔽模型差异

不同 Provider 的工具调用、上下文、结构化输出和多模态能力并不相同,切换模型仍需回归测试。

API 演进较快

v1 已围绕 create_agent 精简命名空间,旧版 Chain 和部分集成迁入 langchain-classic;升级时需要核对迁移指南。

Agent 输出具有不确定性

Prompt 和工具描述不能代替验证,应增加结构化输出、业务规则、停止条件、测试集与失败回退。

循环会放大延迟与成本

一次任务可能产生多次模型和工具调用,需要限制步骤、Token、并发、重试及上下文长度并记录成本。

工具调用需要安全边界

外部内容可能引发 Prompt Injection;工具应采用最小权限、参数校验、结果隔离和高风险操作人工确认。

简单任务可能不需要框架

单次模型调用或固定两三步流程直接使用 Provider SDK 往往更清晰,过早抽象会增加调试层级。

可观测数据需要治理

Prompt、检索内容和工具参数可能包含敏感信息,无论使用 LangSmith 还是自建追踪都应配置脱敏、访问控制和保留策略。

QUICK START

快速开始

使用 Python、一个本地查询工具和 create_agent 构建最小客服 Agent。

1创建环境并安装依赖
bash
python -m venv .venv
source .venv/bin/activate
pip install -U "langchain[openai]"

export OPENAI_API_KEY="<your-api-key>"
2定义一个受控业务工具
python
from langchain.tools import tool

ORDERS = {
    "A-100": "已发货,预计明天送达",
    "A-101": "等待付款",
}


@tool
def lookup_order(order_id: str) -> str:
    """查询指定订单编号的当前状态。"""
    return ORDERS.get(order_id, "未找到该订单")
3创建并调用 Agent
python
from langchain.agents import create_agent

agent = create_agent(
    model="openai:gpt-5.4-mini",
    tools=[lookup_order],
    system_prompt=(
        "你是订单客服。需要订单状态时必须调用工具,"
        "不要猜测不存在的信息。"
    ),
)

result = agent.invoke({
    "messages": [
        {"role": "user", "content": "订单 A-100 到哪里了?"}
    ]
})

print(result["messages"][-1].content)
4使用结构化输出
python
from pydantic import BaseModel, Field


class SupportReply(BaseModel):
    answer: str = Field(description="给用户的简洁答复")
    needs_human: bool = Field(description="是否需要转人工")


structured_agent = create_agent(
    model="openai:gpt-5.4-mini",
    tools=[lookup_order],
    response_format=SupportReply,
)

result = structured_agent.invoke({
    "messages": [
        {"role": "user", "content": "请查询订单 A-101"}
    ]
})

print(result["structured_response"])
5可选启用 LangSmith 追踪
bash
export LANGSMITH_TRACING=true
export LANGSMITH_API_KEY="<your-langsmith-api-key>"
export LANGSMITH_PROJECT="order-support-agent"

python agent.py

下一步:先为 Agent 设置最大步骤、超时、成本预算和工具白名单,再用固定数据集做离线评估;对发消息、付款、删除数据等高风险工具增加人工确认。

ALTERNATIVES

类似项目

这些框架也用于连接模型、数据与工具,但在检索、编排和生态侧重点上有所不同。

COMPARISON

LangChain vs LlamaIndex

LangChain 和 LlamaIndex 都覆盖 RAG 与 Agent,但 LangChain 更偏通用模型和工具编排,LlamaIndex 则从连接私有数据、索引与检索工作流起步并持续扩展 Agent 能力。

比较维度LangChainLlamaIndex
核心侧重模型、工具和有状态 Agent 编排数据接入、索引、检索与知识型 Agent
Agent 运行时create_agent,底层由 LangGraph 驱动提供 Agent、Workflow 与事件驱动编排能力
RAG 能力组件灵活,适合两步式、Agentic 和混合 RAG数据 Connector、Index、Retriever 和 Query Engine 更集中
工具与集成模型、工具包、数据库和应用集成覆盖广数据源、向量库和知识工作流集成尤其丰富
状态与持久化通过 LangGraph Checkpointer 和 Store 管理通过 Workflow Context、Memory 等组件管理
可观测性可选集成 LangSmith 追踪与评估提供 LlamaTrace 等观测能力,也可接第三方工具
更适合工具密集、多模型和复杂业务 Agent以私有数据检索和知识问答为核心的应用
如何选择

如果主要挑战是编排多种工具、模型和有状态业务流程,LangChain 通常更顺手;如果核心工作集中在复杂文档、索引、检索与知识查询,LlamaIndex 的数据抽象可能更直接。两者都能完成 RAG 和 Agent,最终应以团队语言、关键集成、可观测需求和真实评测结果选择。

VERIFICATION

资料核验

版本、维护信息与本页采用的官方资料来源。

最后核验2026 年 7 月 26 日
核验版本官方当前稳定版与文档主线
内容维护Docs100 编辑整理
项目维护状态活跃维护

本次核验覆盖 LangChain 的核心定位、主要能力、官方入口与开源许可。项目版本持续更新,具体补丁版本、兼容性和迁移要求请在采用前继续核对官方发布记录。

维护状态核验2026 年 7 月 26 日 · 最近可见代码活动:2026 年 7 月 25 日

官方仓库未归档,核验时最近可见的代码活动日期为 2026 年 7 月 25 日。该状态表示项目近期仍有公开维护活动,不代表固定发布频率或长期支持承诺。

查看官方仓库