正在打开工具详情…
正在打开工具详情…
Python 里搭 LLM 应用与代理的抽象层:模型、嵌入、向量库可随时替换。适合快速做原型又想留后路的团队;如果你要的是可控的复杂代理,官方自己会让你去看 LangGraph。
需要接多个模型 provider、向量库和工具,并且预期其中一两个以后会换掉的团队;以及要做多步检索与工具调用的应用。
只是调一次 API 拼个 prompt 的人——直接调官方 SDK 更轻;也要小心照着旧教程写:早期 Chain 风格与现在的推荐写法差别很大。
今天的 LangChain 已经不是 2023 年那个「链式调用」的库,官方一句话定位自己是 agent engineering platform:给你一套模型、嵌入、向量库、检索器、工具的统一接口,让你在这些东西之间换供应商时不用重写业务代码。
上手只有两行:uv add langchain,然后 from langchain.chat_models import init_chat_model + init_chat_model("openai:gpt-5.5")。JS / TS 项目有对等的 LangChain.js。
要理解它的边界,得看清生态里的分工:LangChain 是通用抽象层;LangGraph 是低层编排框架,用来做可控的多步 agent 工作流;Deep Agents 是更高层的封装,自带规划、子代理、文件系统这些常见能力;LangSmith 负责评估、可观测性与部署。README 的 TIP 直接建议你:刚入门想做复杂任务的 agent,从 Deep Agents 开始。
代价要讲清楚:抽象层是有成本的。它让你换模型容易,但也意味着调试时要穿透一层间接调用;版本演进快,早期教程里的 Chain 写法和现在推荐的写法已经不是一回事。如果你的需求就是「调一次模型、拼一段 prompt」,直接调 SDK 比引入框架轻得多——抽象层的收益要在「确实会换供应商、确实会多步编排」时才兑现。
上手步骤之外的具体做法:常见场景怎么配、命令怎么写、报错怎么处理。
按第一次用会卡在哪讲:两行代码跑通之后,LangChain、LangGraph、Deep Agents、LangSmith 到底该用哪个,以及抽象层什么时候是负担。
bashuv add langchainpythonfrom langchain.chat_models import init_chat_model
model = init_chat_model("openai:gpt-5.5")
result = model.invoke("Hello, world!")这两行就是现在推荐的起手式。注意 init_chat_model 里的字符串是 provider:model 形式,换供应商就是换这个前缀——这正是整套抽象存在的理由。
这是新人最常卡住的地方。生态里四个名字各有分工:
| 组件 | 干什么 | 什么时候用 |
|---|---|---|
| LangChain | 通用抽象层:模型、嵌入、向量库、工具 | 接外部系统、想保留替换余地 |
| LangGraph | 低层编排:可控的多步 agent 工作流 | 流程复杂、需要精确控制每一步 |
| Deep Agents | 高层封装:自带规划、子代理、文件系统 | 刚入门,想要常见能力开箱即用 |
| LangSmith | 评估、可观测性、调试、部署 | 要上线、要看 trace、要跑评估 |
README 的 TIP 说得很直接:刚入门先看 Deep Agents,它就是为了「agent 该有的常见能力」而做的高层包。
LangChain 卖的是「以后能换」:模型换、向量库换、工具换,业务代码不动。
这个收益在两种情况下才兑现:
反过来,如果你的需求就是「拼一段 prompt 调一次模型」,直接调官方 SDK 更轻——少一层间接调用,报错栈也短得多。
LangChain 演进很快,Chain 时代那批教程(LLMChain、ConversationalRetrievalChain 之类)与现在的推荐写法已经不是一回事。
照着 2023 年的博客抄,大概率会装上一堆废弃接口。判断方法:以 docs.langchain.com 的当前 overview 为准,博客只当思路参考。
框架本身不提供生产可观测性。上线前要回答「这次回答为什么这么答」「token 花在哪」「改 prompt 有没有变好」,这三件事靠 LangSmith:trace、评估集、部署。
如果你的项目只是脚本级别跑一跑,先别引入;一旦要给人用、要迭代 prompt,它就是必需的。