跳到主要内容
本指南向您展示如何在没有 LangSmith UI 或控制平面的情况下部署独立的。这是将一个或几个代理作为独立服务运行的最轻量级的自托管选项。
独立服务器主要用于开发目的。此部署选项提供了灵活性,但要求您管理自己的基础设施和配置。每个环境都可能差异很大,因此,解决配置问题可能具有挑战性。对于生产工作负载,我们建议使用LangSmith 部署,它提供标准化的部署模式和更全面的支持选项。
这是直接部署 LangGraph 服务器而不使用 LangSmith 平台的设置页面。请查阅自托管选项以了解:在继续之前,请查阅独立服务器概述

先决条件

  1. 使用LangGraph CLI在本地测试您的应用程序
  2. 使用LangGraph CLI构建 Docker 镜像(即langgraph build)。
  3. 数据平面部署需要以下环境变量。
  4. REDIS_URI:Redis 实例的连接详细信息。Redis 将用作发布/订阅代理,以实现从后台运行流式传输实时输出。REDIS_URI的值必须是有效的Redis 连接 URI
    共享 Redis 实例 多个自托管部署可以共享同一个 Redis 实例。例如,对于部署 AREDIS_URI可以设置为redis://<hostname_1>:<port>/1;对于部署 BREDIS_URI可以设置为redis://<hostname_1>:<port>/212是同一实例中的不同数据库编号,但<hostname_1>是共享的。不能将相同的数据库编号用于单独的部署
  5. DATABASE_URI:Postgres 连接详细信息。Postgres 将用于存储助手、线程、运行、持久化线程状态和长期内存,以及以“精确一次”语义管理后台任务队列的状态。DATABASE_URI的值必须是有效的Postgres 连接 URI
    共享 Postgres 实例 多个自托管部署可以共享同一个 Postgres 实例。例如,对于部署 ADATABASE_URI可以设置为postgres://<user>:<password>@/<database_name_1>?host=<hostname_1>;对于部署 BDATABASE_URI可以设置为postgres://<user>:<password>@/<database_name_2>?host=<hostname_1><database_name_1>database_name_2是同一实例中的不同数据库,但<hostname_1>是共享的。不能将相同的数据库用于单独的部署
  6. LANGSMITH_API_KEY:LangSmith API 密钥。
  7. LANGGRAPH_CLOUD_LICENSE_KEY:LangSmith 许可证密钥。这将在服务器启动时进行一次身份验证。
  8. LANGSMITH_ENDPOINT:要将跟踪发送到自托管 LangSmith实例,请将LANGSMITH_ENDPOINT设置为自托管 LangSmith 实例的主机名。
  9. 从您的网络到https://beacon.langchain.com的出口。如果不在气隙模式下运行,则需要此项进行许可证验证和使用情况报告。有关更多详细信息,请参阅出口文档

Kubernetes

使用此Helm chart将 LangGraph 服务器部署到 Kubernetes 集群。

Docker

运行以下docker命令
docker run \
    --env-file .env \
    -p 8123:8000 \
    -e REDIS_URI="foo" \
    -e DATABASE_URI="bar" \
    -e LANGSMITH_API_KEY="baz" \
    my-image
  • 您需要将my-image替换为您在先决条件步骤中构建的镜像名称(来自langgraph build
并且您应该为REDIS_URIDATABASE_URILANGSMITH_API_KEY提供适当的值。
  • 如果您的应用程序需要其他环境变量,您可以以类似的方式传递它们。

Docker Compose

Docker Compose YAML 文件
volumes:
    langgraph-data:
        driver: local
services:
    langgraph-redis:
        image: redis:6
        healthcheck:
            test: redis-cli ping
            interval: 5s
            timeout: 1s
            retries: 5
    langgraph-postgres:
        image: postgres:16
        ports:
            - "5432:5432"
        environment:
            POSTGRES_DB: postgres
            POSTGRES_USER: postgres
            POSTGRES_PASSWORD: postgres
        volumes:
            - langgraph-data:/var/lib/postgresql/data
        healthcheck:
            test: pg_isready -U postgres
            start_period: 10s
            timeout: 1s
            retries: 5
            interval: 5s
    langgraph-api:
        image: ${IMAGE_NAME}
        ports:
            - "8123:8000"
        depends_on:
            langgraph-redis:
                condition: service_healthy
            langgraph-postgres:
                condition: service_healthy
        env_file:
            - .env
        environment:
            REDIS_URI: redis://langgraph-redis:6379
            LANGSMITH_API_KEY: ${LANGSMITH_API_KEY}
            DATABASE_URI: postgres://postgres:postgres@langgraph-postgres:5432/postgres?sslmode=disable
您可以在同一文件夹中使用此 Docker Compose 文件运行命令docker compose up 这将启动一个在端口8123上运行的 LangGraph 服务器(如果您想更改此端口,可以通过更改langgraph-api卷中的端口来更改)。您可以通过运行以下命令来测试应用程序是否正常:
curl --request GET --url 0.0.0.0:8123/ok
假设一切运行正常,您应该会看到类似以下内容的响应
{"ok":true}

以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。
© . This site is unofficial and not affiliated with LangChain, Inc.