1. LangGraph核心定位解析
LangGraph作为LangChain生态中的工作流编排工具,其设计初衷是解决复杂AI应用中的多步骤任务调度问题。与LangChain的核心差异在于:LangChain更侧重单一任务链的构建,而LangGraph专精于具有分支、循环等复杂逻辑的工作流设计。这就像用乐高积木搭建房屋(LangChain)和设计整个城市规划(LangGraph)的区别。
典型应用场景包括:
- 需要动态决策的客服对话系统(根据用户意图切换处理模块)
- 多模型协作的内容生成(文案生成→图片生成→审核的流水线)
- 带有自检机制的数据分析流程(数据清洗→分析→结果验证循环)
技术架构上采用有向无环图(DAG)模型,节点代表处理单元(可以是LLM调用、API请求或自定义函数),边定义执行路径。特别的是支持状态管理,允许工作流运行时保留和传递上下文数据。
关键提示:LangGraph并非要替代LangChain,而是与之互补。实际项目中常组合使用——用LangChain构建原子能力,用LangGraph编排高阶流程。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境搭建与最小示例
推荐使用Python 3.9+环境,通过pip安装核心包:
bash复制pip install langgraph langchain-openai
基础示例:构建一个带有重试机制的问答流程
python复制from langgraph.graph import Graph
from langchain_core.messages import HumanMessage
from langchain_openai import ChatOpenAI
# 定义处理节点
def validate_input(state):
if len(state["question"]) < 5:
raise ValueError("问题过短")
return {"validated_question": state["question"]}
def generate_answer(state):
llm = ChatOpenAI(model="gpt-3.5-turbo")
response = llm.invoke([HumanMessage(content=state["validated_question"])])
return {"answer": response.content}
# 构建工作流
workflow = Graph()
workflow.add_node("validate", validate_input)
workflow.add_node("answer", generate_answer)
workflow.set_entry_point("validate")
workflow.add_edge("validate", "answer")
# 执行
app = workflow.compile()
result = app.invoke({"question":
