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

前提条件

  1. 使用 LangGraph CLI 在本地测试您的应用程序
  2. 使用 LangGraph CLI 构建 Docker 镜像(即 langgraph build)。
  3. 数据平面部署需要以下环境变量。
  4. REDIS_URI:Redis 实例的连接详细信息。Redis 将用作发布-订阅代理以启用从后台运行流式传输实时输出。REDIS_URI 的值必须是有效的 Redis 连接 URI
    共享 Redis 实例 多个自托管部署可以共享同一个 Redis 实例。例如,对于 Deployment AREDIS_URI 可以设置为 redis://<hostname_1>:<port>/1,对于 Deployment BREDIS_URI 可以设置为 redis://<hostname_1>:<port>/212 是同一实例内的不同数据库编号,但 <hostname_1> 是共享的。不能为单独的部署使用相同的数据库编号
  5. DATABASE_URI:Postgres 连接详细信息。Postgres 将用于存储助手、线程、运行、持久化线程状态和长期内存,以及使用”恰好一次”语义管理后台任务队列的状态。DATABASE_URI 的值必须是有效的 Postgres 连接 URI
    共享 Postgres 实例 多个自托管部署可以共享同一个 Postgres 实例。例如,对于 Deployment ADATABASE_URI 可以设置为 postgres://<user>:<password>@/<database_name_1>?host=<hostname_1>,对于 Deployment 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 将 Agent Server 部署到 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
You can run the command docker compose up with this Docker Compose file in the same folder. This will launch an Agent Server on port 8123 (if you want to change this, you can change this by changing the ports in the langgraph-api volume). You can test if the application is healthy by running:
curl --request GET --url 0.0.0.0:8123/ok
Assuming everything is running correctly, you should see a response like:
{"ok":true}

Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.