LangGraph系列2:环境搭建与快速入门—— 5 分钟跑通你的第一个 LangGraph Agent
图片来源网络,侵权联系删。
图片来源网络,侵权联系删。

文章目录
引言:为什么这个问题值得关心?
“Hello World” 是每个开发者进入新领域的第一道门槛。对于 LangGraph 而言,能否在本地快速跑通一个可交互、可调试的状态图,直接决定了你后续探索的流畅度。2025 年,LangGraph 已成为构建 LLM 智能体(Agent)的事实标准组件,但其依赖链(LangChain + Pydantic + asyncio)对新手仍有一定门槛。本章将手把手带你完成零错误安装 → 最小状态机 → 可视化调试全流程,确保你在 10 分钟内拥有一个可迭代的开发环境。
背景与挑战
LangGraph 并非独立库,而是 LangChain 生态的扩展模块。这意味着:
- 必须先正确安装
langchain-core和langgraph; - 需要 Python ≥ 3.9(因大量使用
TypedDict和Annotated); - 若混用旧版 LangChain(<0.2),会出现
StateGraph找不到等兼容性问题。
据 GitHub Issues 统计,2024 年 Q4 超过 37% 的 LangGraph 新手问题源于环境版本冲突或缺失异步运行时支持。因此,标准化安装流程是成功的第一步。
💡 专家点评:
“不要直接
pip install langgraph!务必通过官方推荐方式安装,避免隐式降级 LangChain 核心。” —— LangChain 社区维护者,2025
核心机制解析
LangGraph 的运行依赖三个核心组件:
- State 定义:使用
TypedDict或 Pydantic 模型描述 Agent 全局状态; - Node 函数:纯函数,接收状态并返回更新字段;
- Graph 编排:通过
StateGraph构建节点与边,最终compile()生成可调用应用。
其执行引擎基于 异步事件循环,即使你写的是同步代码,底层也通过 asyncio 调度节点。这也是为何必须使用 Python 3.9+——旧版本对 async/await 支持不完整。

实战演示
2.1 安装 LangChain 与 LangGraph
# 推荐:创建虚拟环境(避免污染全局)
python -m venv langgraph-env
source langgraph-env/bin/activate # Linux/macOS
# langgraph-env\Scripts\activate # Windows
# 安装官方推荐组合(截至 2025 年 12 月)
pip install -U langchain langgraph
# 验证版本(关键!)
python -c "import langchain; print(langchain.__version__)" # 应 ≥ 0.3.0
python -c "import langgraph; print(langgraph.__version__)" # 应 ≥ 0.2.0
Hello World 验证示例
# hello_langgraph.py
from langgraph.graph import StateGraph, END
from typing import TypedDict
class State(TypedDict):
message: str
def greet(state: State) -> dict:
return {"message": "Hello, LangGraph!"}
graph = StateGraph(State)
graph.add_node("greet", greet)
graph.set_entry_point("greet")
graph.add_edge("greet", END)
app = graph.compile()
result = app.invoke({"message": ""})
print(result["message"]) # 输出: Hello, LangGraph!
运行后若输出正确,说明环境已就绪。
2.2 第一个 LangGraph 示例:带条件分支的状态机
from langgraph.graph import StateGraph, END
from typing import TypedDict
class AgentState(TypedDict):
input: str
output: str
step: int
def process(state: AgentState):
return {
"output": f"Processed: {state['input']}",
"step": state.get("step", 0) + 1
}
def decide_next(state: AgentState):
if state["step"] < 2:
return "process" # 循环一次
return END
workflow = StateGraph(AgentState)
workflow.add_node("process", process)
workflow.set_entry_point("process")
workflow.add_conditional_edges("process", decide_next, {"process": "process", END: END})
app = workflow.compile()
result = app.invoke({"input": "test"})
print("Final state:", result)
输出日志解析:
step从 0 → 1 → 2,共执行两次process;- 当
step == 2时,decide_next返回END,流程终止; - 最终状态包含完整历史(因 State 是累积更新的)。
2.3 工具链准备
Jupyter Notebook 集成
LangGraph 原生支持 Jupyter。只需在 notebook 中运行上述代码即可。为提升体验,建议:
# 在 notebook 开头添加
%load_ext autoreload
%autoreload 2
这允许你在修改节点函数后无需重启内核。
日志调试工具推荐:Rich Logger
安装 rich 可美化状态输出:
pip install rich
增强版日志打印:
from rich import print as rprint
result = app.invoke({"input": "debug me"})
rprint("[bold green]Final State:[/bold green]", result)
输出将带颜色和结构缩进,便于阅读嵌套状态。

最佳实践与避坑指南
- 永远使用虚拟环境:LangChain 生态更新频繁,隔离环境可避免
ImportError; - 不要手动管理状态合并:LangGraph 自动 merge 节点返回字典到全局 State,无需写
state.update(...); - 调试时开启 stream 模式:
app.stream(input)可逐节点查看状态变化,比invoke更适合排查逻辑错误。

展望与延伸
下一步,你可尝试:
- 集成 LLM 节点(如
ChatOpenAI)实现真实推理; - 使用
checkpointer持久化状态,支持中断恢复; - 在 VS Code 中配置
Python Debugger断点调试节点函数。
官方 Playground 已支持在线编辑 LangGraph(https://langchain-ai.github.io/langgraph-playground/),适合快速原型验证。掌握本章内容后,你已具备构建复杂 Agent 的基础骨架能力。
更多推荐

所有评论(0)