在使用LangChain + LangGraph构建智能体(Agent)后,我们可以通过LangGraph 内置的get_graph()方法生成该 Agent 工作流的可视化流程图。这是 LangGraph 官方推荐的方式,适用于调试、文档和展示。本文就总结下生成 LangChain Agent 流程图的几种方法。
✅ 前提条件
确保已安装以下依赖:
pipinstalllanggraph langchain langchain-openai# 或其他 LLM providerpipinstallpygraphviz💡 注意:
pygraphviz是需要依赖相应的系统库文件的,除了pip install pygraphviz外,还需安装 Graphviz 软件(如 macOS 用brew install graphviz,Ubuntu 用apt install graphviz)。
流程图生成
构建 LangChain Agent
这里先构建一个简单的 agent 用于后续流程图生成
fromlangchain.toolsimporttoolfromlangchain.agentsimportcreate_agentfromlangchain_openaiimportChatOpenAI@tooldefsearch(query:str)->str:"""Search for information."""returnf"Results for:{query}"@tooldefget_weather(location:str)->str:"""Get weather information for a location."""returnf"Weather in{location}: Sunny, 72°F"model=ChatOpenAI(model="gpt-4o-mini")agent=create_agent(model,tools=[search,get_weather])获取 Agent 对应的图对象
graph=agent.get_graph()四种可视化输出方式
方式一:保存为 PNG(使用 Mermaid,在线渲染)
# 保存为 PNG 文件(需联网)withopen("agent_flow.png","wb")asf:f.write(graph.draw_mermaid_png())输出图片显示如下:
🔒 如果你在内网环境,可改用
draw_mermaid()获取 Mermaid 代码,再用本地 Mermaid Live Editor 渲染。
方式二:获取 Mermaid 代码(纯文本,适合嵌入文档)
mermaid_code=graph.draw_mermaid()print(mermaid_code)输出示例:
--- 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:#bfb6fcMarkdown 渲染如下:
生成的 mermaid 代码可直接粘贴到支持 Mermaid 的平台(如 Typora、Obsidian、GitHub README、Notion 等)。
方式三:使用 Graphviz(传统方式,需本地安装)
# 保存为 PNG(需系统安装 graphviz)graph.draw_png("flow.png")# 需 pygraphviz 和系统软件 graphviz 支持输出图片显示如下:
方式四:打印 ASCII 流程(简单调试)
graph.print_ascii()+-----------+ | __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