要在 LangSmith 上部署,应用必须包含一个或多个图、一个配置文件(langgraph.json)、一个用于指定依赖项的文件,以及一个可选的 .env 文件(用于指定环境变量)。 本页面介绍 LangSmith 应用的组织方式,以及如何提供部署所需的配置详细信息。

核心概念

要使用 LangSmith 进行部署,请提供以下信息:
  1. 一个配置文件(langgraph.json),用于指定应用要使用的依赖项、图和环境变量。
  2. 实现应用逻辑的图。
  3. 一个用于指定运行应用所需依赖项的文件。
  4. 应用运行所需的环境变量。
与框架无关LangSmith Deployment supports deploying a LangGraph graph. However, the implementation of a node of a graph can contain arbitrary code. This means any framework can be implemented within a node and deployed on LangSmith Deployment. This lets you implement your core application logic without using additional LangGraph OSS APIs while still using LangSmith for deployment, scaling, and observability. For more details, refer to Use any framework with LangSmith Deployment.

文件结构

以下是 Python 和 JavaScript 应用的目录结构示例:
应用的目录结构可能会因使用的编程语言和包管理器而有所不同。

配置文件

langgraph.json 文件是一个 JSON 文件,用于指定部署应用所需的依赖项、图、环境变量及其他设置。 有关 JSON 文件中所有受支持键的详细信息,请参阅 LangGraph 配置文件参考。
LangGraph CLI 默认使用当前目录中的配置文件 langgraph.json。

示例

  • 依赖项包括一个自定义本地包和 langchain_openai 包。
  • 将从文件 ./your_package/your_file.py 中加载一个图,其变量名为 agent。
  • 环境变量从 .env 文件中加载。

依赖项

应用可能依赖其他 Python 包或 JavaScript 库(具体取决于编写应用时所使用的编程语言)。 通常需要指定以下信息,才能正确设置依赖项:
  1. 目录中用于指定依赖项的文件(例如 requirements.txt、pyproject.toml 或 package.json)。
  2. 配置文件中的 dependencies 键,用于指定运行应用所需的依赖项。
  3. 任何其他二进制文件或系统库,都可以使用 LangGraph 配置文件中的 dockerfile_lines 键进行指定。

图

使用配置文件中的 graphs 键,指定已部署应用中可用的图。 你可以在配置文件中指定一个或多个图。每个图都由唯一名称以及以下两者之一的路径标识:(1) 已编译的图,或 (2) 定义图的函数。

使用任意框架进行 LangSmith 部署

虽然 LangSmith Deployment 要求应用采用 LangGraph 图的结构,但该图中的各个节点可以包含任意代码。这意味着你可以在节点中使用任意框架或库,同时仍然享受 LangSmith 部署基础设施带来的便利。 图结构充当部署接口,但你的核心应用逻辑可以使用最适合需求的工具和框架。 要使用 LangSmith 进行部署,你需要:
  1. LangGraph 图结构:使用 StateGraph,结合 add_node 和 add_edge 定义一个图。
  2. 包含任意逻辑的节点函数:你的节点函数可以调用任意框架或库。
  3. 已编译的图:对图执行 Compile,以创建可部署的应用。
以下示例展示了如何将现有应用逻辑封装在一个最小化的 LangGraph 结构中:
在此示例中,节点函数(Python 中的 my_app_node 和 JavaScript 中的 myAppNode)可以包含对任意框架或库的调用。LangGraph 结构仅提供部署接口和编排层。 有关端到端示例,请参阅 Google ADK 以及 Claude Agent SDK、Strands、CrewAI 和 AutoGen 的部署指南。LangSmith 通过 deployments-wrap-sdk 添加了对 Google ADK 的支持。这是一个可扩展的软件包,用于封装代理 SDK,使其能够在 LangSmith Deployment 上运行。

环境变量

如果你正在本地使用已部署的 LangGraph 应用,可以在配置文件的 env 键中配置环境变量。 对于生产部署,通常需要在部署环境中配置环境变量。