首页 > 教程攻略 > ai资讯 >【AI Agent系列】【LangGraph】3. 一行代码让你的 LangGraph 结构可视化!

【AI Agent系列】【LangGraph】3. 一行代码让你的 LangGraph 结构可视化!

来源:互联网 时间:2026-08-04 14:14:13

可视化是个好东西——尤其当你的 LangGraph 结构越来越复杂的时候,能一眼看清节点与边的走向,简直是调试和优化的利器。今天我们就来聊聊如何用一行代码让 LangGraph 结构变得直观可见,操作简单到让你有点意外。

【AI Agent系列】【LangGraph】3. 一行代码让你的 LangGraph 结构可视化!

没错,一行代码就能搞定,真的就这么简单。

0. 示例Demo

0.1 完整代码

先上完整代码,跑通了再慢慢聊细节。

from langchain_openai import ChatOpenAI
from langchain_community.tools.ta vily_search import Ta vilySearchResults
from langgraph.prebuilt import chat_agent_executor
from langchain_core.messages import HumanMessage

tools = [Ta vilySearchResults(max_results=1)]
model = ChatOpenAI()
app = chat_agent_executor.create_function_calling_executor(model, tools)
app.get_graph().print_ascii()

0.2 踩坑:No module named 'grandalf'

运行的时候可能会遇到一个报错,提示找不到 grandalf 模块。解决办法很简单:装一下 grandalf 就好了。

pip install -U grandalf -i https://pypi.tuna.tsinghua.edu.cn/simple

0.3 运行结果

执行之后,你会看到终端里打印出一个 ASCII 图形,节点和边清晰可见。对比之前手绘的图,结构完全一致。

可以看到它可视化的图与上篇文章我自己画的图一样:

1. 代码详解

整个代码的核心其实只有两行有效代码:

(1)创建 Graph:

app = chat_agent_executor.create_function_calling_executor(model, tools),这一步实际上就是封装了我们之前手动构建 LangGraph 的过程。

(2)打印图结构:

app.get_graph().print_ascii(),以 ASCII 字符的形式把图的结构打印出来。

1.1 create_function_calling_executor

这个函数其实就是把我们上一篇文章中手动实现 LangGraph 创建的那套逻辑打包了。下面是它的源码(简化版):

# 源码略,实际就是将 StateGraph 的创建和边、节点的配置封装在一起

1.2 print_ascii

从运行结果看,它做的事情无非是把节点和边的信息用空格和星号组织起来,输出一个美观的 ASCII 图。原理并不复杂,但想要把间距、对齐排版得刚刚好,确实需要一些精细的功夫。下面是部分源码,了解即可,会用就行:

def draw_ascii(self) -> str:
    return draw_ascii(
        {node.id: node_data_str(node) for node in self.nodes.values()},
        [(edge.source, edge.target) for edge in self.edges],
    )

def print_ascii(self) -> None:
    print(self.draw_ascii())

def draw_ascii(vertices: Mapping[str, str], edges: Sequence[Tuple[str, str]]) -> str:
    """Build a DAG and draw it in ASCII.
    ...
    """

2. 更好看一点的可视化

除了 ASCII 形式,LangGraph 还提供了另一种更直观的可视化方式——直接生成 PNG 图片。结果如下图所示:

代码同样简单,只需要把 print_ascii() 换成下面这两行:

# app.get_graph().print_ascii()  # 替换掉这一句
from IPython.display import Image
Image(app.get_graph().draw_png())

运行之前需要先安装一些依赖库:

pip install -U prompt_toolkit -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install -U grandalf -i https://pypi.tuna.tsinghua.edu.cn/simple

安装过程可能会遇到“ERROR: Could not build wheels for pygraphviz”这样的问题。别担心,这是 Windows 平台下的常见情况,网上有很多解决方案,值得留意的是需要提前安装 Graphviz 的二进制包。

3. 总结

这篇文章介绍了两种让 LangGraph 结构可视化的方法,都是一行代码就能解决的事:

app.get_graph().print_ascii()

或者

Image(app.get_graph().draw_png())

其中 app 就是你用 workflow.compile() 编译之后得到的那张图:

workflow = StateGraph(AgentState)
...
app = workflow.compile()

可视化后,无论是调试逻辑还是向别人解释你的 Agent 架构,都会清晰很多。

4. 参考