独立部署智能体

55 阅读3分钟

本文将向你展示如何在不使用LangSmith用户界面(UI)或控制面板(control plane)的情况下,部署独立的智能体服务器(Agent Servers)。对于将一个或多个智能体(Agent)作为独立服务运行的场景而言,这是最轻量的自托管方案。

准备

  • 使用 LangGraph 命令行工具(CLI)在本地测试应用程序。
  • 使用 LangGraph 命令行工具(CLI)构建 Docker 镜像(例如执行命令 langgraph build)。
  • 数据面板部署需要配置以下环境变量:
    • REDIS_URI:Redis实例的连接信息。Redis 将用作发布 - 订阅代理,以支持从后台运行任务中流式输出实时结果。REDIS_URI 的值必须是有效的 Redis 连接 URI。
    • DATABASE_URI:Postgres数据库的连接信息。Postgres将用于存储智能助手、对话线程(threads)、任务运行记录,持久化对话线程状态与长期记忆,并以 “恰好一次”(exactly once)语义管理后台任务队列的状态。DATABASE_URI 的值必须是有效的 Postgres 连接 URI。
    • LANGSMITH_API_KEY:LangSmith 的 API 密钥。
    • LANGGRAPH_CLOUD_LICENSE_KEY:LangSmith的许可证密钥。服务器启动时将使用该密钥执行一次身份验证。
    • LANGSMITH_ENDPOINT:若需将调用轨迹(traces)发送至自托管的LangSmith实例,需将LANGSMITH_ENDPOINT设置为该自托管LangSmith实例的主机名。
  • 需从你的网络访问(Egress)beacon.langchain.com。若未在 “隔离模式”(air-gapped mode,指与公网完全断开的环境)下运行,此配置是许可证验证与使用情况上报的必需项。更多详情请参考 “网络访问(Egress)” 相关文档。

Kubernetes

使用此Helm图表将智能体服务器(Agent Server)部署到 Kubernetes 集群中。

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_URI、DATABASE_URI 和 LANGSMITH_API_KEY 提供合适的取值。若你的应用需要额外的环境变量,可通过类似方式传入。

Docker Compose

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 端口启动智能体服务器(Agent Server)(若需修改端口,可通过修改 langgraph-api 服务的端口映射配置实现)。你可通过执行以下命令,验证应用是否正常运行(健康状态):

curl --request GET --url 0.0.0.0:8123/ok

若所有组件均正常运行,你应会看到类似如下的响应信息:

{"ok":true}