在使用 LangChain + LangGraph 构建智能体(Agent)后,我们可以通过 LangGraph 内置的 get_graph() 方法 生成该 Agent 工作流的可视化流程图。这是 LangGraph 官方推荐的方式,适用于调试、文档和展示。本文就总结下生成 LangChain Agent 流程图的几种方法。
✅ 前提条件
确保已安装以下依赖:
bash
pip install langgraph langchain langchain-openai # 或其他 LLM provider
pip install pygraphviz
💡 注意:
pygraphviz是需要依赖相应的系统库文件的,除了pip install pygraphviz外,还需安装 Graphviz 软件(如 macOS 用brew install graphviz,Ubuntu 用apt install graphviz)。
流程图生成
构建 LangChain Agent
这里先构建一个简单的 agent 用于后续流程图生成
python
from langchain.tools import tool
from langchain.agents import create_agent
from langchain_openai import ChatOpenAI
@tool
def search(query: str) -> str:
"""Search for information."""
return f"Results for: {query}"
@tool
def get_weather(location: str) -> str:
"""Get weather information for a location."""
return f"Weather in {location}: Sunny, 72°F"
model = ChatOpenAI(model="gpt-4o-mini")
agent = create_agent(model, tools=[search, get_weather])
获取 Agent 对应的图对象
python
graph = agent.get_graph()
四种可视化输出方式
方式一:保存为 PNG(使用 Mermaid,在线渲染)
python
# 保存为 PNG 文件(需联网)
with open("agent_flow.png", "wb") as f:
f.write(graph.draw_mermaid_png())
输出图片显示如下:

🔒 如果你在内网环境,可改用
draw_mermaid()获取 Mermaid 代码,再用本地 Mermaid Live Editor 渲染。
方式二:获取 Mermaid 代码(纯文本,适合嵌入文档)
python
mermaid_code = graph.draw_mermaid()
print(mermaid_code)
输出示例:
plain_text
---
config:
flowchart:
curve: linear
---
graph TD;
__start__([<p>__start__</p>]):::first
model(model)
tools(tools)
__end__([<p>__end__</p>]):::last
__start__ --> model;
model -.-> __end__;
model -.-> tools;
tools -.-> model;
classDef default fill:#f2f0ff,line-height:1.2
classDef first fill-opacity:0
classDef last fill:#bfb6fc
Markdown 渲染如下:
start
model tools end
生成的 mermaid 代码可直接粘贴到支持 Mermaid 的平台(如 Typora、Obsidian、GitHub README、Notion 等)。
方式三:使用 Graphviz(传统方式,需本地安装)
python
# 保存为 PNG(需系统安装 graphviz)
graph.draw_png("flow.png") # 需 pygraphviz 和系统软件 graphviz 支持
输出图片显示如下:

方式四:打印 ASCII 流程(简单调试)
python
graph.print_ascii()
plain_text
+-----------+
| __start__ |
+-----------+
*
*
*
+-------+
| model |
+-------+.
. .
.. ..
. .
+---------+ +-------+
| __end__ | | tools |
+---------+ +-------+
🎯 实际项目建议
- 开发调试 :用
print(agent.get_graph().draw_mermaid())或agent.get_graph.print_ascii()快速查看结构。 - 文档集成:将 Mermaid 代码嵌入 Markdown,自动渲染流程图。
- 生产展示 :调用
draw_mermaid_png()生成图片存入报告或前端展示。
🔗 参考资料
- LangGraph 官方文档:https://langchain-ai.github.io/langgraph/
- Mermaid 流程图语法:https://mermaid.js.org/syntax/flowchart.html