跳到主要内容

LangChain

核对日期:2026-05-09。

10.9 上线验收补充

验收项通过标准
依赖锁定LangChain、provider SDK、集成包版本固定
Provider 差异关键任务在目标模型上分别跑回归
Tool 网关写工具不由 LangChain 直接调用底层生产 API
RAG 权限检索前 ACL 生效,跨租户用例为 0
Tracecallback/trace 脱敏并可关联业务 run
复杂流程出现恢复、审批、循环时迁移到 LangGraph

1. 定义与边界

LangChain 是用于构建 LLM 应用和 Agent 的开源框架,提供模型、prompt、tool、retriever、agent 和集成生态。当前 LangChain 的高层 Agent 能力通常构建在 LangGraph 之上;复杂、持久化、可恢复流程应直接考虑 LangGraph。

2. 官方能力、社区能力、实验能力和营销说法

类型内容
官方能力Chat model abstraction、tools、structured output、agents、retrieval、middleware、LangSmith 集成
社区能力大量 provider/integration、document loader、toolkit
实验/快速变化部分集成包、模板、旧版 chain API 迁移
营销说法“LangChain 自动解决 RAG/Agent 可靠性”不成立

3. 核心机制

LangChain 的价值在于标准化模型、工具和上下文组件:

4. 架构与工程实现

适合场景:

场景设计
快速接入多个模型使用统一 chat model 接口
工具调用 Agent 原型create_agent + tools
RAG 应用retriever、document loader、vector store 集成
需要观测接入 LangSmith 或自建 Trace

简化示例:

from langchain.agents import create_agent

def get_weather(city: str) -> str:
return f"{city}: 20C"

agent = create_agent(
model="openai:<official-model-id>",
tools=[get_weather],
system_prompt="Use tools when current external data is required."
)

agent.invoke({"messages": [{"role": "user", "content": "杭州天气如何?"}]})

5. 生产实践

  • 将 provider wrapper 版本固定,避免集成包升级改变行为。
  • 对工具 schema、prompt、retriever 参数做版本化。
  • 复杂状态和人类在环流程优先迁移到 LangGraph。
  • 不要直接使用社区 loader 处理敏感数据,先评估权限和依赖安全。
  • 对每条 chain/agent 记录输入输出、检索文档、工具调用和模型版本。

6. 常见反模式

反模式后果
复制示例拼出生产系统缺少权限、观测和回归测试
过度依赖抽象层无法处理 provider 特有错误
RAG 只调默认参数召回、重排和引用质量不稳定
Agent 工具过多模型选择困难,误调用上升

7. 评测方法

对 LangChain 应用评测工具调用准确率、检索召回、引用准确率、结构化输出解析率、provider fallback 成功率和端到端任务成功率。对多 provider 应用要分 provider 统计。

8. 安全与治理

LangChain 集成生态很大,依赖供应链风险更高。生产环境应锁定版本、审查第三方工具权限、隔离凭证、脱敏日志,并防止外部文档通过 RAG 覆盖系统指令。

9. 权威资料

10. 二次精修:集成框架的边界

10.1 当前官方能力

能力说明适合
Standard model interface统一调用不同模型 provider多模型接入和切换
Agents模型驱动工具调用循环中等复杂度任务
Tools函数、检索器、外部 API 封装快速接入企业能力
Middleware / runtime在调用链中插入策略和控制日志、重试、安全过滤
LangGraph 底座复杂 Agent 编排转到 LangGraph状态化和持久化流程

10.2 适用场景

场景推荐原因
需要大量 provider、向量库、工具 connector生态覆盖广
快速验证 Agent/RAG 应用模板和集成多
团队需要统一模型接口降低 provider 切换成本
简单工具调用和检索增强代码量少,上手快

10.3 不适用场景

  • 长事务、复杂状态恢复和审批流程,优先用 LangGraph 或业务工作流。
  • 极端低延迟、极端可控的单模型服务,直接用 provider SDK 可能更简单。
  • 对供应链和依赖面极度敏感的高安全系统,需要收敛集成数量。

10.4 生产架构

10.5 集成边界

问题LangChain 能做仍需自建
模型调用标准接口、工具绑定供应商配额、成本策略
工具封装tool abstraction鉴权、审批、幂等、审计
RAGretriever、splitter、reranker 集成数据权限、文档治理
观测可接 LangSmith 或自定义 callbacks企业日志脱敏和保留

10.6 评测与回归

维度用例
Provider 差异同一任务在不同模型上结构化输出是否稳定
Tool 调用相似工具、多参数、缺参数、工具失败
RAG过期文档、冲突文档、权限文档、低召回
安全注入文档、恶意工具返回、敏感外发

10.7 生产实践

  • 锁定 LangChain、provider SDK、向量库和工具包版本。
  • 对每个社区集成做依赖和权限审查,不因“官方集成”默认可信。
  • 将高风险工具放在业务工具网关之后,不让 Agent 直接访问底层 API。
  • 对 callbacks/trace 做脱敏,避免把 prompt 和工具返回变成敏感日志仓库。
  • 复杂流程迁移到 LangGraph,LangChain 保持在模型/工具/RAG 集成层。

10.8 迁移策略

来源迁移到 LangChain 的重点
直接 provider SDK先抽象 model 和 tool,不一次迁移业务逻辑
自研 RAG先替换 retriever/reranker 组件,保留 ACL
低代码平台把关键路径代码化,平台只保留运营配置
LangChain 旧版本建回归集后逐步升级,关注 agent API 和集成变更

核对日期:2026-05-09。