1. LangChain与LangGraph:从积木到自动化工厂的进化
在构建基于大语言模型(LLM)的应用时,开发者常常面临流程控制的挑战。三年前我刚接触LangChain时,就像拿到了一盒乐高积木——每个组件都很精致,但要把它们组装成能自动运转的系统,总需要写大量胶水代码。直到LangGraph的出现,这个问题才得到优雅解决。
核心定位差异:
- LangChain(LCEL)是标准化组件库:提供Prompt模板、记忆存储、工具调用等基础模块
- LangGraph是流程编排引擎:在组件之上添加状态管理和循环控制能力
类比说明:LCEL如同汽车零部件(发动机、变速箱),LangGraph则是整车控制系统(ECU),能根据路况动态调整各部件工作状态。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 架构原理深度解析
2.1 LangChain的线性世界
传统LCEL的工作流是这样的典型DAG结构:
python复制chain = (
load_memory()
| prompt_template
| llm
| output_parser
)
这种结构的三大天然限制:
- 单向流动:数据像流水线一样不可逆
- 无状态追踪:中间过程状态无法持久化
- 循环成本高:实现重试机制需要手动包裹try-catch
2.2 LangGraph的图灵完备性
LangGraph引入了计算机科学中的状态机模型,关键创新点:
- 共享状态对象:
python复制class AgentState(TypedDict):
messages: list[BaseMessage]
user_query: str
tool_outputs: dict
- 可循环的边定义:
python复制def should_continue(state):
last_msg = state['messages'][-1]
if "需要更多信息" in last_msg.content:
return "ask_user"
return "end"
- 节点间自由跳转
