LangGraph Studio¶
LangGraph Studio 提供了一种开发 LLM 应用的新方式,它提供了一个专门的代理 IDE,可以实现复杂代理应用的可视化、交互和调试。
通过可视化图和编辑状态的能力,您可以更好地理解代理工作流程并更快地迭代。LangGraph Studio 与 LangSmith 集成,使您能够与队友协作调试故障模式。
功能¶
LangGraph Studio 的主要功能包括:
- 可视化您的图
- 通过从 UI 运行来测试您的图
- 通过修改代理的状态并重新运行来调试代理
- 创建和管理助手
- 查看和管理线程
- 查看和管理长期记忆
- 将节点输入/输出添加到LangSmith 数据集进行测试
入门¶
有两种方法将您的 LangGraph 应用连接到 Studio
已部署的应用¶
如果您已将 LangGraph 应用部署在 LangGraph 平台上,则可以作为该部署的一部分访问 Studio。为此,请在 LangSmith UI 中导航到 LangGraph 平台中的部署,然后点击“LangGraph Studio”按钮。
本地开发服务器¶
如果您有正在本地内存中运行的 LangGraph 应用,您可以在 LangSmith 中的浏览器中将其连接到 LangGraph Studio。
默认情况下,使用 langgraph dev
启动本地服务器将在 http://127.0.0.1:2024
运行服务器,并自动在您的浏览器中打开 Studio。但是,您也可以通过以下任一方式手动连接到 Studio:
- 在 LangGraph 平台中,点击“LangGraph Studio”按钮并在弹出的对话框中输入服务器 URL。
或
- 在浏览器中导航到该 URL
相关¶
更多信息请参阅以下内容:
LangGraph Studio 常见问题¶
为什么我的项目无法启动?¶
如果配置文件定义不正确,或者缺少必要的环境变量,项目可能无法启动。请参阅此处了解如何定义您的配置文件。
中断如何工作?¶
当您选择“中断 (Interrupts)”下拉菜单并选择一个节点进行中断时,图将在该节点运行之前和之后(除非节点直接到达 END)暂停执行。这意味着您可以在节点运行之前和之后编辑状态。此功能旨在让开发人员更精细地控制节点的行为,并更容易观察节点的行为方式。如果该节点是图中的最后一个节点,您将无法在节点运行后编辑状态。
有关中断和人机协作的更多信息,请参阅此处。
为什么我的图中出现了额外的边?¶
如果您没有仔细定义条件边,您可能会注意到图中出现了额外的边。这是因为如果没有正确的定义,LangGraph Studio 会假定条件边可以访问所有其他节点。为了避免这种情况,您需要明确定义条件边路由到的节点。有两种方法可以做到这一点:
解决方案 1:包含路径映射¶
解决此问题的第一种方法是向条件边添加路径映射。路径映射是一个字典或数组,将路由器函数可能的输出与每个输出对应的节点名称进行映射。路径映射作为第三个参数传递给 add_conditional_edges
函数,如下所示:
在这种情况下,路由函数返回 True 或 False,分别映射到 node_b
和 node_c
。
解决方案 2:更新路由器的类型提示 (仅限 Python)¶
除了传递路径映射外,您还可以通过使用 Python 的 Literal
定义来明确指定路由函数可以映射到的节点类型。以下是这种定义路由函数的示例:
def routing_function(state: GraphState) -> Literal["node_b","node_c"]:
if state['some_condition'] == True:
return "node_b"
else:
return "node_c"
Studio 桌面版常见问题¶
弃用警告
为了支持更广泛的平台和用户,我们现在推荐按照上述说明使用开发服务器连接到 LangGraph Studio,而不是使用桌面应用。
LangGraph Studio 桌面应用是一个独立的应用程序,允许您连接到您的 LangGraph 应用并可视化和交互您的图。它仅适用于 MacOS,并且需要安装 Docker。
为什么我的项目无法启动?¶
除了上面列出的原因外,对于桌面应用,您的项目可能无法启动还有一些其他原因:
注意
LangGraph Studio 桌面版会自动填充 LANGCHAIN_*
环境变量用于许可证验证和追踪,无论 .env
文件的内容如何。.env
文件中定义的所有其他环境变量将正常读取。
Docker 问题¶
LangGraph Studio (桌面版) 需要 Docker Desktop 4.24 或更高版本。请确保您安装的 Docker 版本满足该要求,并确保在使用 LangGraph Studio 之前已启动 Docker Desktop 应用。此外,请确保您的 docker-compose 已更新到 2.22.0 或更高版本。
数据区域不正确¶
如果您在尝试启动 LangGraph 服务器时收到许可证验证错误,则您可能登录了错误的 LangSmith 数据区域。请确保您登录的是正确的 LangSmith 数据区域,并确保该 LangSmith 帐户拥有访问 LangGraph 平台的权限。
- 在右上角,点击用户图标并选择“退出登录 (Logout)”。
- 在登录屏幕上,点击“数据区域 (Data Region)”下拉菜单并选择相应的数据区域。然后点击“登录到 LangSmith (Login to LangSmith)”。
如何重新加载应用?¶
如果您想重新加载应用,请不要像通常那样使用 Command+R。相反,请关闭并重新打开应用以进行完全刷新。
自动重建如何工作?¶
LangGraph Studio 的关键功能之一是当您更改源代码时,它会自动重建您的镜像。这使得开发和测试周期非常快,从而易于迭代您的图。LangGraph 重建镜像有两种不同的方式:编辑镜像或完全重建镜像。
因源代码更改而重建¶
如果您仅修改了源代码(没有更改配置或依赖项!),则镜像不需要完全重建,LangGraph Studio 只会更新相关部分。左下角的 UI 状态将在镜像编辑期间暂时从“在线 (Online)”切换到“停止中 (Stopping)”。在此过程中将显示日志,镜像编辑完成后,状态将变回“在线 (Online)”,您就可以使用修改后的代码运行您的图了!
因配置或依赖项更改而重建¶
如果您编辑了图的配置文件 (`langgraph.json`) 或依赖项(`pyproject.toml` 或 `requirements.txt`),则整个镜像将被重建。这将导致 UI 从图视图切换,并开始显示新镜像的构建过程日志。这可能需要一两分钟,完成后,更新后的镜像即可使用!
为什么我的图启动如此缓慢?¶
LangGraph Studio 与本地 LangGraph API 服务器交互。为了与持续的更新保持一致,LangGraph API 需要定期重建。因此,您在启动项目时可能会偶尔遇到轻微的延迟。