LangGraph Studio 可视化调试指南:从零配置 LangGraph + LangSmith 智能体工作流

如何使用LangGraph studio 可视化查看工作流?


配置文件清单(项目根目录结构)

一个标准的、准备好接入 Studio 的项目目录应该是这样的:

text 复制代码
my_agent_project/
├── .env                #  1. 环境变量配置(密钥)
├── langgraph.json      #  2. Studio 核心配置文件(导航图)
└── agent.py            #  3. 你的图逻辑代码(引擎)

详细配置步骤

第一步:配置密钥环境 (.env 文件)

在使用 Studio 时,强烈建议把密钥抽离出来,Studio 在启动时会自动读取它们。

在项目根目录新建一个名为 .env 的文本文件,填入你的配置:

env 复制代码
# .env 文件内容
DEEPSEEK_API_KEY=sk-da217ba... (你的真实密钥)

# LangSmith 追踪配置 (强烈建议开启,Studio 严重依赖它)
LANGSMITH_TRACING=true
LANGSMITH_API_KEY=lsv2_pt_... (你的真实密钥)

(在 Python 代码里,可以把 os.environ["..."] = "..." 那些硬编码删掉了。)

第二步:配置 Studio 导航仪 (langgraph.json)

这是启动 Studio 最核心的配置文件。它告诉 Studio 该去哪里加载代码、加载哪些依赖。 (强烈建议就取名为Langgraph.json,大小写无所谓。这样LangStudio就会自动识别到)

在项目根目录新建 langgraph.json,复制以下标准模板:

json 复制代码
{
  "dependencies": ["."],
  "graphs": {
    "math_agent": "./agent.py:agent"
  },
  "env": ".env"
}
 

配置项深度解析:

  • "dependencies": ["."]:告诉 Studio,项目运行所需的依赖就在当前目录。
  • "graphs":这是核心。你可以把它理解为一个注册表。
    • "math_agent":这是你的图在 Studio 左上角下拉菜单里显示的UI 名称 (你可以随便起,比如 DeepSeek_Calculator)。
    • "./agent.py:agent":这是物理路径映射 。冒号前面是 Python 文件相对路径,冒号后面是你代码中 builder.compile() 赋值的那个变量名
  • "env": ".env":明确告诉 Studio 去读取刚才第一步配置的密钥文件。
第三步:代码端"去记忆化"配置 (agent.py)

为了让 Studio 接管可视化和时光倒流功能,你的代码在导出给 Studio 使用时,必须是"裸编译"的

确保你的 agent.py 文件底部是这样配置的:

python 复制代码
# ... 前面的 Nodes 和 Edges 逻辑保持不变 ...

builder = StateGraph(MessagesState)
builder.add_node("llm_node", llm_node)
# ... 其他连线 ...

# 【关键配置】:不要加 checkpointer=MemorySaver()
agent = builder.compile() 

# 上面这个叫 "agent" 的变量,必须和 langgraph.json 里冒号后面的名字完全一致!

最终启动与验证

1. 启动服务 在项目根目录打开终端(进入到当前项目的父目录),输入:

bash 复制代码
langgraph dev

参考示例如下:输入cd graph_api

2. 进入界面 在终端打印出的图案下方,找到 Studio UI 的链接: https://smith.langchain.com/studio/?baseUrl=http://127.0.0.1:2024

按住 Ctrl (或 Cmd) 点击它,浏览器就会自动打开。

Lang Studio 可视化面板

三大核心控制面板:

当你打开 Studio,整个界面大致分为左、中、右三个核心工作区:

  1. 左侧面板 (Threads & Config):会话与配置中心
    • Threads (线程) :这里管理着你的"记忆"。你在代码里用 MemorySaver 实现的记忆,在这里被具象化了。每次新建一个 Thread,就相当于开了一个全新的干净对话上下文。
    • Configuration:如果你在代码里定义了可配置项(比如切换模型种类、系统提示词),可以在这里实时调整,无需改代码。
  2. 中间面板 (Interaction):交互与时间轴
    • 这是你与 Agent 互动的区域(类似于 ChatGPT 的聊天框)。
    • 神级细节 :当你发送消息后,这里不仅会显示最终结果,还会以时间轴 的形式,列出 Agent 经历的每一个步骤 (Steps)
  3. 右侧面板 (Graph & State):全局视野与 X 光机
    • Graph 视图:完美渲染了你代码中写的 Nodes(节点)和 Edges(连线)。
    • State 视图这是最重要的地方! 实时显示当前整个图的全局变量字典。

进阶指南:可视化调试

步骤 1:审查架构图 (Visualizing the Graph)

在还没开始对话前,先看右侧的 Graph 标签页。

  • 检查连线逻辑是否符合预期(比如你的 llm_node 是否有一条条件边指向 tool_nodetool_node 是否又指回了 llm_node)。
  • 提示:如果有死循环或者断头的节点,在图上会非常显眼。
步骤 2:发起第一次调用 (Invoking)
  1. 在左侧点击 "+" 新建一个 Thread。
  2. 在中间底部的输入框中,输入初始状态数据。注意,这里要求输入的是 JSON 格式 (对应你的 MessagesState)。
    • 例如,输入:{"messages": [{"role": "user", "content": "3乘以5等于多少?"}]}
  3. 点击 Submit
  4. 查看 :盯着右侧的拓扑图!你会看到 START 节点闪烁,数据流入 llm_node,接着条件边触发跳转到 tool_node,最后再回到 llm_node 输出结果。
步骤 3:查看数据 (Inspecting State)

如果大模型胡言乱语,或者工具报错了,怎么办?

  1. 看中间面板的时间轴,点击那个报错的、或者你觉得可疑的 Step
  2. 此时,右侧面板切换到 State 标签。
  3. 你会看到在那个特定时间点 ,全局字典(包括所有的历史消息、大模型生成的 tool_calls ID、工具的中间返回结果)长什么样。这比你在 Python 里到处写 print() 要高效一万倍。
步骤 4:时光倒流 (Time-Travel Debugging)
假设你的 Agent 在第 3 步做了一个极其愚蠢的决定(比如调错了工具):
  1. 在中间面板,点击第 2 步(出错前的那一步)。
  2. 此时右侧会出现一个 "Fork" (分叉)"Edit" (编辑) 按钮。
  3. 点击修改当时的状态(比如,你手动把大模型的系统提示词改严厉一点,或者直接篡改它发出的工具调用参数)。
  4. 点击 "Proceed" (继续运行)
  5. Studio 会从第 2 步开始,沿着你篡改后的新现实,重新往下执行,并生成一条全新的分支记录!

热重载 (Hot Reload)

由于是带着 [inmem] 启动的,这个 Studio 是监听着你的本地文件的。 当在 Python 代码里修改了一个节点的逻辑,或者加了一个新的连线,只要按下 Ctrl+S 保存,浏览器里的 Graph 拓扑图会瞬间自动刷新

相关推荐
HIT_Weston2 小时前
21、【Agent】【OpenCode】源码构建(项目构建)
人工智能·agent·opencode
lovingsoft2 小时前
Agent工程师师岗位:一位软件的交付工程师
人工智能
小仓桑2 小时前
【Agent智能体项目实战一】阿里云通义千问兼容 OpenAI 接口实现 AI 对话
人工智能·阿里云·云计算·agent
往事如yan2 小时前
从0到1软件开发文档蓝图
人工智能
关山月2 小时前
使用自注意力(Self-Attention)与多头注意力(Multi-Head Attention)分析提示词好坏
人工智能
小程故事多_802 小时前
抛弃昂贵MCP,拥抱技能+CLI,AI Agent架构的成本革命与性能突围
人工智能·架构·aigc
tq10862 小时前
参考交通责任与风控体系,构建AI责任与风险体系
人工智能
CareyWYR2 小时前
每周AI论文速递(260316-260320)
人工智能
Bonnie3732 小时前
云边端一体化解析-什么是云边端,为何能成为AI基础设施核心
人工智能·程序人生·云原生·个人开发