跳到内容

LangGraph Studio

LangGraph Studio 提供了一种开发 LLM 应用的新方式,它提供了一个专门的代理 IDE,可以实现复杂代理应用的可视化、交互和调试。

通过可视化图和编辑状态的能力,您可以更好地理解代理工作流程并更快地迭代。LangGraph Studio 与 LangSmith 集成,使您能够与队友协作调试故障模式。

功能

LangGraph Studio 的主要功能包括:

入门

有两种方法将您的 LangGraph 应用连接到 Studio

已部署的应用

如果您已将 LangGraph 应用部署在 LangGraph 平台上,则可以作为该部署的一部分访问 Studio。为此,请在 LangSmith UI 中导航到 LangGraph 平台中的部署,然后点击“LangGraph Studio”按钮。

本地开发服务器

如果您有正在本地内存中运行的 LangGraph 应用,您可以在 LangSmith 中的浏览器中将其连接到 LangGraph Studio。

默认情况下,使用 langgraph dev 启动本地服务器将在 http://127.0.0.1:2024 运行服务器,并自动在您的浏览器中打开 Studio。但是,您也可以通过以下任一方式手动连接到 Studio:

  1. 在 LangGraph 平台中,点击“LangGraph Studio”按钮并在弹出的对话框中输入服务器 URL。

  1. 在浏览器中导航到该 URL
https://smith.langchain.com/studio/?baseUrl=http://127.0.0.1:2024

更多信息请参阅以下内容:

LangGraph Studio 常见问题

为什么我的项目无法启动?

如果配置文件定义不正确,或者缺少必要的环境变量,项目可能无法启动。请参阅此处了解如何定义您的配置文件。

中断如何工作?

当您选择“中断 (Interrupts)”下拉菜单并选择一个节点进行中断时,图将在该节点运行之前和之后(除非节点直接到达 END)暂停执行。这意味着您可以在节点运行之前和之后编辑状态。此功能旨在让开发人员更精细地控制节点的行为,并更容易观察节点的行为方式。如果该节点是图中的最后一个节点,您将无法在节点运行后编辑状态。

有关中断和人机协作的更多信息,请参阅此处

为什么我的图中出现了额外的边?

如果您没有仔细定义条件边,您可能会注意到图中出现了额外的边。这是因为如果没有正确的定义,LangGraph Studio 会假定条件边可以访问所有其他节点。为了避免这种情况,您需要明确定义条件边路由到的节点。有两种方法可以做到这一点:

解决方案 1:包含路径映射

解决此问题的第一种方法是向条件边添加路径映射。路径映射是一个字典或数组,将路由器函数可能的输出与每个输出对应的节点名称进行映射。路径映射作为第三个参数传递给 add_conditional_edges 函数,如下所示:

graph.add_conditional_edges("node_a", routing_function, {True: "node_b", False: "node_c"})
graph.addConditionalEdges("node_a", routingFunction, { true: "node_b", false: "node_c" });

在这种情况下,路由函数返回 True 或 False,分别映射到 node_bnode_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 平台的权限。

  1. 在右上角,点击用户图标并选择“退出登录 (Logout)”。
  2. 在登录屏幕上,点击“数据区域 (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 需要定期重建。因此,您在启动项目时可能会偶尔遇到轻微的延迟。

评论