Skip to content
LangSmith 文档版本 跟随上游 源快照 a580cdb6 更新于 2026-10-18

应用结构

要在 LangSmith 上部署,应用必须由一个或多个图、一个配置文件(langgraph.json)、一个指定依赖项的文件,以及一个可选的、用于指定环境变量的 .env 文件组成。

本页说明 LangSmith 应用如何组织,以及如何提供部署所需的配置详情。

核心概念

要使用 LangSmith 部署,请提供以下信息:

  1. 一个配置文件(langgraph.json),用于指定应用要使用的依赖项、图和环境变量。
  2. 实现应用逻辑的图。
  3. 一个指定运行应用所需依赖项的文件。
  4. 运行应用所需环境变量。

TIP

框架无关

LangSmith Deployment 支持部署 LangGraph 图。然而,图的节点的实现可以包含任意代码。这意味着任何框架都可以在节点内实现并部署到 LangSmith Deployment 上。这让你能够在不使用额外 LangGraph OSS API 的情况下实现核心应用逻辑,同时仍使用 LangSmith 进行部署、扩缩容和可观测性。有关更多详情,请参阅将任意框架与 LangSmith Deployment 搭配使用。

文件结构

以下是 Python 和 JavaScript 应用的目录结构示例:

plaintext
my-app/
├── my_agent # all project code lies within here
│   ├── utils # utilities for your graph
│   │   ├── __init__.py
│   │   ├── tools.py # tools for your graph
│   │   ├── nodes.py # node functions for your graph
│   │   └── state.py # state definition of your graph
│   ├── __init__.py
│   └── agent.py # code for constructing your graph
├── .env # environment variables
├── requirements.txt # package dependencies
└── langgraph.json # configuration file for LangGraph

NOTE

应用的目录结构可能因所用的编程语言和包管理器而异。

配置文件

langgraph.json 文件是一个 JSON 文件,用于指定部署应用所需的依赖项、图、环境变量和其他设置。

有关 JSON 文件中所有支持的键的详情,请参阅 LangGraph 配置文件参考。

TIP

LangGraph CLI 默认使用当前目录中的配置文件 langgraph.json。

示例

  • 依赖项涉及一个自定义本地包和 langchain_openai 包。
  • 将从文件 ./your_package/your_file.py 中加载一个图,使用变量 agent。
  • 环境变量从 .env 文件加载。
json
{
    "dependencies": [
        "langchain_openai",
        "./your_package"
    ],
    "graphs": {
        "my_agent": "./your_package/your_file.py:agent"
    },
    "env": "./.env"
}

依赖

应用可能依赖其他 Python 包或 JavaScript 库(取决于编写该应用所用的编程语言)。

为了让依赖项正确设置,你通常需要指定以下信息:

  1. 目录中指定依赖项的文件(例如 requirements.txt、pyproject.toml 或 package.json)。
  2. 配置文件中的 dependencies 键,用于指定运行应用所需的依赖项。
  3. 可以使用 LangGraph 配置文件中的 dockerfile_lines 键来指定任何额外的二进制文件或系统库。

图

使用配置文件中的 graphs 键来指定已部署应用中可用的图。

你可以在配置文件中指定一个或多个图。每个图由唯一名称和一个路径标识,该路径指向 (1) 已编译的图,或 (2) 定义图的函数。

将任意框架与 LangSmith Deployment 搭配使用

虽然 LangSmith Deployment 要求应用以 LangGraph 图的形式构建,但该图中的各个节点可以包含任意代码。这意味着你可以在节点内使用任何框架或库,同时仍能受益于 LangSmith 的部署基础设施。

图结构充当部署接口,但你的核心应用逻辑可以使用最适合你需求的任何工具和框架。

要使用 LangSmith 部署,你需要:

  1. 一个 LangGraph 图结构:使用 StateGraph 以及 add_node 和 add_edge 定义一个图。
  2. 具有任意逻辑的节点函数:你的节点函数可以调用任何框架或库。
  3. 一个已编译的图:编译该图以创建一个可部署的应用。

以下示例展示如何将你现有的应用逻辑包装到一个最小的 LangGraph 结构中:

python
from langgraph.graph import StateGraph, START, END
from typing import TypedDict

# Your existing application logic using any framework
from app_logic import process_data
from app_logic import fetch_data

class State(TypedDict):
    input: str
    result: str

def my_app_node(state: State) -> State:
    """Node containing arbitrary framework code."""
    # Use any framework or library here
    raw_data = fetch_data(state["input"])
    processed = process_data(raw_data)
    return {"result": processed}

# Define the graph structure
graph = StateGraph(State)
graph.add_node("process", my_app_node)  # Add node with your logic
graph.add_edge(START, "process")  # Connect start to your node
graph.add_edge("process", END)  # Connect your node to end

# Compile for deployment
app = graph.compile()

在此示例中,节点函数(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 键中配置环境变量。

对于生产部署,你通常希望在部署环境中配置环境变量。


BytesRouter 是社区翻译站点,所有译文仅供参考,一切以官方英文原文为准。