本文系统梳理当前所有主流的 LangChain/LangGraph 智能体部署方式,覆盖从本地开发到大规模生产的全场景,包含官方最新部署工具、分布式架构、自托管方案,并从多个维度进行横向对比,给出不同场景下的最佳选型建议。

一、核心前提:LangChain 智能体的部署本质

LangChain 智能体(特别是基于 LangGraph 的现代智能体)本质上是有状态的 Python 应用,其部署与传统 Python 应用最大的区别在于:

  • 必须通过 Checkpoint 机制 实现状态持久化与跨实例共享(监控端才能检测到)
  • 支持断点续跑、人机交互、长流程执行
  • 需要与大模型服务、工具服务、向量数据库等外部依赖通信

所有部署方式的核心差异,本质上是如何管理状态、如何扩展计算资源、如何运维服务的不同。


二、7 种主流部署方式详解(从简单到复杂)

1. 本地开发部署(开发调试专用)

这是最基础的部署方式,仅适用于本地开发和调试不能用于生产环境。

1.1 方式一:直接运行 Python 脚本
  • 原理:在本地终端直接执行智能体代码,通过命令行或简单的 Python 交互界面进行测试
  • 技术栈:纯 Python + LangGraph 核心库
  • 状态管理MemorySaver(内存存储,重启丢失)
  • 代码示例

    python

    运行

    # agent.py
    from typing import Annotated, TypedDict
    from langchain_openai import ChatOpenAI
    from langgraph.graph import StateGraph, START, END
    from langgraph.graph.message import add_messages
    from langgraph.checkpoint.memory import MemorySaver
    
    class State(TypedDict):
        messages: Annotated[list, add_messages]
    
    llm = ChatOpenAI(temperature=0)
    
    def chat_node(state: State):
        return {"messages": [llm.invoke(state["messages"])]}
    
    builder = StateGraph(State)
    builder.add_node("chat", chat_node)
    builder.add_edge(START, "chat")
    builder.add_edge("chat", END)
    
    checkpointer = MemorySaver()
    app = builder.compile(checkpointer=checkpointer)
    
    # 本地运行
    if __name__ == "__main__":
        config = {"configurable": {"thread_id": "local-001"}}
        while True:
            user_input = input("你:")
            result = app.invoke({"messages": [("user", user_input)]}, config=config)
            print("AI:", result["messages"][-1].content)
    
1.2 方式二:LangGraph Studio 本地调试
  • 原理:通过 langgraph-cli 启动本地开发服务器,提供可视化的调试界面
  • 技术栈langgraph-cli + Docker(可选)
  • 核心功能图结构可视化、单步执行、状态编辑、断点调试、输入测试
  • 部署步骤

    bash

    运行

    # 安装 CLI
    pip install --upgrade "langgraph-cli[inmem]"
    
    # 启动本地开发服务器(自动检测 agent.py 中的 graph 对象)
    langgraph dev agent.py
    
  • 访问地址http://localhost:2024
优缺点与适用场景

表格

优点 缺点 适用场景
零配置,开箱即用 仅支持本地访问,无法对外提供服务 本地开发、调试、功能验证
开发效率最高 无持久化,重启丢失所有状态 团队内部演示
LangGraph Studio 提供强大的可视化调试能力 不支持并发和多用户 快速原型验证

2. 单实例 Web 服务部署(最小生产部署)

将智能体封装为标准的 HTTP API 服务,部署在单台服务器上,是最简单的生产可用部署方式。

技术栈
  • Web 框架:FastAPI(官方推荐)/ Flask
  • ASGI 服务器:Uvicorn / Gunicorn
  • 状态管理:SqliteSaver(本地文件持久化)
  • 部署步骤:
    1. 编写 FastAPI 封装代码
    2. 安装生产依赖
    3. 启动 Uvicorn 服务器
完整代码示例

python

运行

# main.py
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from typing import Optional
from agent import app  # 导入上面定义的 LangGraph app
from langgraph.checkpoint.sqlite import SqliteSaver

# 初始化 FastAPI 应用
api = FastAPI(title="LangGraph Agent API")

# 使用 SqliteSaver 持久化状态(数据存储在 agent_state.db 文件)
checkpointer = SqliteSaver.from_conn_string("agent_state.db")
app = app.compile(checkpointer=checkpointer)

# 请求模型
class ChatRequest(BaseModel):
    user_input: str
    thread_id: str

# 响应模型
class ChatResponse(BaseModel):
    response: str
    thread_id: str

@api.post("/chat", response_model=ChatResponse)
async def chat(request: ChatRequest):
    try:
        config = {"configurable": {"thread_id": request.thread_id}}
        result = app.invoke(
            {"messages": [("user", request.user_input)]},
            config=config
        )
        return ChatResponse(
            response=result["messages"][-1].content,
            thread_id=request.thread_id
        )
    except Exception as e:
        raise HTTPException(status_code=500, detail=str(e))

# 启动命令:uvicorn main:api --host 0.0.0.0 --port 8000
优缺点与适用场景

表格

优点 缺点 适用场景
部署简单,只需单台服务器 单实例性能有限,无法水平扩展 个人项目、小型内部工具
状态持久化,服务重启不丢失 存在单点故障风险 低流量场景(QPS < 10)
支持标准 HTTP API,易于集成 运维简单,无需复杂基础设施 原型验证后的小范围上线

3. 容器化部署(Docker)

将智能体打包为 Docker 镜像,实现环境一致性和可移植性,是现代应用部署的基础。

技术栈
  • 容器运行时:Docker
  • 状态管理:SqliteSaver(挂载数据卷)或外部 PostgreSQL
  • 部署步骤:
    1. 编写 Dockerfile
    2. 构建 Docker 镜像
    3. 运行容器,挂载数据卷
完整 Dockerfile 示例

dockerfile

# 使用官方 Python 镜像
FROM python:3.11-slim

# 设置工作目录
WORKDIR /app

# 安装依赖
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# 复制应用代码
COPY . .

# 暴露端口
EXPOSE 8000

# 启动命令
CMD ["uvicorn", "main:api", "--host", "0.0.0.0", "--port", "8000"]
构建与运行命令

bash

运行

# 构建镜像
docker build -t my-langgraph-agent:latest .

# 运行容器,挂载数据卷持久化状态
docker run -d \
  -p 8000:8000 \
  -v ./agent_state.db:/app/agent_state.db \
  --env-file .env \
  my-langgraph-agent:latest
官方简化方式(LangGraph CLI)

2026 年 3 月推出的 langgraph-cli 支持一键构建 Docker 镜像,无需手动编写 Dockerfile:

bash

运行

# 生成 langgraph.json 配置文件
langgraph init

# 一键构建 Docker 镜像
langgraph build -t my-agent:latest
优缺点与适用场景

表格

优点 缺点 适用场景
环境一致性,避免 "在我电脑上能跑" 问题 单容器仍无法水平扩展 测试环境部署
可移植性强,可运行在任何支持 Docker 的平台 需手动管理容器生命周期 单服务器生产部署
易于集成 CI/CD 流程 需挂载数据卷或使用外部数据库持久化状态 团队内部共享服务

4. 多实例负载均衡部署(中小规模生产)

在容器化基础上,通过负载均衡器分发请求,启动多个容器实例,实现水平扩展和高可用。

核心架构

plaintext

用户请求 → Nginx 负载均衡器 → 多个 LangGraph 容器实例 → 共享 PostgreSQL Checkpoint 数据库
关键技术点
  • 状态共享:必须使用分布式 Checkpointer(PostgresSaverRedisSaver),绝对不能使用 MemorySaverSqliteSaver
  • 并发冲突:LangGraph 通过乐观锁机制保证多实例写入的一致性,当检测到冲突时会抛出 Conflict 异常,业务层需实现重试逻辑
  • 负载均衡:使用 Nginx、HAProxy 或云服务商提供的负载均衡服务
部署步骤
  1. 部署 PostgreSQL 数据库,初始化 Checkpoint 表结构
  2. 修改智能体代码,使用 PostgresSaver
  3. 构建 Docker 镜像,推送到镜像仓库
  4. 启动多个容器实例
  5. 配置 Nginx 负载均衡
状态管理代码修改

python

运行

from langgraph.checkpoint.postgres import PostgresSaver

# 连接到共享 PostgreSQL 数据库
DB_URI = "postgresql://user:password@postgres-host:5432/langgraph_db"
checkpointer = PostgresSaver.from_conn_string(DB_URI)

# 首次使用需初始化表结构(仅执行一次)
checkpointer.setup()

app = app.compile(checkpointer=checkpointer)
优缺点与适用场景

表格

优点 缺点 适用场景
支持水平扩展,可通过增加实例提升并发能力 需管理负载均衡器和数据库 中等流量生产场景(QPS 10-100)
高可用,单个实例故障不影响服务 运维复杂度有所提升 企业内部服务
状态跨实例共享,用户请求可路由到任意实例 需处理并发冲突和重试 面向内部用户的智能助手

5. Serverless 部署(按需付费,突发流量)

将智能体部署在 Serverless 函数计算平台上,按实际使用量付费,适合低流量、突发流量场景。

技术栈
  • 平台:AWS Lambda、阿里云函数计算、腾讯云函数
  • 状态管理:外部 PostgreSQL 或 Redis Checkpoint
  • 触发方式:API Gateway
核心优化点(解决冷启动问题)

冷启动是 Serverless 部署智能体的最大挑战,可通过以下方式优化:

  1. 依赖与代码分离:将大型依赖(如 langchainpandas)预先安装在 NAS 挂载盘,不要打包到函数代码中
  2. 使用自定义容器镜像:替代标准 Zip 包,减少依赖加载时间
  3. 配置预热实例:保留一定数量的常驻实例,避免冷启动
  4. 增加函数内存:内存越大,CPU 性能越好,冷启动速度越快
优缺点与适用场景

表格

优点 缺点 适用场景
按需付费,闲置时几乎无成本 冷启动问题严重,响应延迟高 低流量、突发流量场景
自动扩缩容,无需管理服务器 执行时长有限制(通常最多 15 分钟) 个人项目、演示应用
运维成本极低 不适合长流程任务 间歇性使用的工具类智能体

6. Kubernetes 云原生部署(大规模生产)

这是企业级大规模生产部署的标准方式,提供自动扩缩容、滚动更新、自愈能力、服务发现等企业级特性。

核心架构

plaintext

用户请求 → Ingress → Service → 多个 LangGraph Pod → 共享 PostgreSQL/Redis → 大模型服务/向量数据库
核心组件
  • Deployment:管理 LangGraph 应用 Pod,定义副本数、资源限制、滚动更新策略
  • Service:为 Pod 提供稳定的网络访问入口
  • Ingress:对外暴露服务,处理 HTTP 路由、SSL 终止
  • HPA(Horizontal Pod Autoscaler):根据 CPU、内存或自定义指标自动扩缩容 Pod 数量
  • ConfigMap/Secret:管理配置和敏感信息
  • PersistentVolume:持久化存储(如需本地缓存)
完整 Deployment YAML 示例

yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: langgraph-agent
spec:
  replicas: 3
  selector:
    matchLabels:
      app: langgraph-agent
  template:
    metadata:
      labels:
        app: langgraph-agent
    spec:
      containers:
      - name: agent
        image: my-registry/my-langgraph-agent:latest
        ports:
        - containerPort: 8000
        env:
        - name: DATABASE_URL
          valueFrom:
            secretKeyRef:
              name: db-secret
              key: url
        - name: OPENAI_API_KEY
          valueFrom:
            secretKeyRef:
              name: llm-secret
              key: api_key
        resources:
          requests:
            cpu: "500m"
            memory: "512Mi"
          limits:
            cpu: "1"
            memory: "1Gi"
        livenessProbe:
          httpGet:
            path: /health
            port: 8000
          initialDelaySeconds: 10
          periodSeconds: 30
        readinessProbe:
          httpGet:
            path: /health
            port: 8000
          initialDelaySeconds: 5
          periodSeconds: 10
---
apiVersion: v1
kind: Service
metadata:
  name: langgraph-agent-service
spec:
  selector:
    app: langgraph-agent
  ports:
  - protocol: TCP
    port: 80
    targetPort: 8000
  type: ClusterIP
优缺点与适用场景

表格

优点 缺点 适用场景
无限水平扩展,支持百万级 QPS 部署和运维复杂度最高 大规模生产环境
企业级高可用,自动自愈、滚动更新 需要专业的 Kubernetes 运维团队 面向公众的智能服务
完善的可观测性和监控体系 基础设施成本较高 高并发、高可用要求的业务
支持蓝绿部署、金丝雀发布等高级发布策略 学习曲线陡峭 企业核心业务系统

7. LangGraph Platform 官方托管(零运维)

LangGraph Platform(原 LangGraph Cloud,2026 年更名为 LangSmith Deployment)是 LangChain 官方推出的智能体托管服务,提供一键部署、自动扩缩容、内置监控等能力。

四种部署模式(2026 年最新)

表格

模式 说明 数据位置 适用场景
云端 SaaS 完全托管在 LangChain 云端 LangChain 云端 最快上线路径
自托管数据平面 控制平面在 LangChain 云端,数据平面运行在用户基础设施 用户本地 兼顾运维效率和数据隐私
自托管控制平面 完全运行在用户基础设施,包括控制平面和数据平面 用户本地 严格数据隐私要求
独立容器 单容器部署,包含所有必要组件 用户本地 单机部署、测试环境
一键部署流程(官方 CLI)

2026 年 3 月推出的 langgraph deploy 命令支持一键部署到 LangSmith Deployment:

bash

运行

# 登录 LangSmith
langgraph auth

# 一键部署(自动构建 Docker 镜像并 provision 基础设施)
langgraph deploy
核心特性
  • 自动配置 PostgreSQL Checkpoint 和 Redis 缓存
  • 内置自动扩缩容,根据负载动态调整实例数量
  • 与 LangSmith 深度集成,自动开启追踪、评估和监控
  • 支持 Webhook、API 调用和流式响应
  • 提供身份认证、权限管理等企业级特性
优缺点与适用场景

表格

优点 缺点 适用场景
零运维,一键部署,最快上线 成本较高,按使用量计费 快速上线、不想管理基础设施
官方维护,稳定性有保障 云端 SaaS 模式数据在 LangChain 服务器 中小型企业
与 LangChain 生态深度集成 自托管模式仅企业版支持 团队协作开发
内置监控、日志、告警等运维能力 定制化能力有限 原型快速验证和生产上线

8. 边缘部署(本地低延迟)

将智能体部署在边缘设备上,配合本地大模型(如 Ollama),实现完全离线运行和极低延迟。

技术栈
  • 边缘设备:树莓派、工控机、NVIDIA Jetson
  • 本地大模型:Ollama、Llama.cpp
  • 状态管理:SqliteSaver
  • 适用场景:工业控制、车载系统、离线智能助手
优缺点与适用场景

表格

优点 缺点 适用场景
极低延迟,响应速度快 边缘设备计算能力有限,只能运行小模型 工业控制、车载系统
数据完全本地,隐私性最高 模型能力受限,无法使用云端大模型 离线场景
无需网络连接,可离线运行 部署和更新相对复杂 对数据隐私要求极高的场景

三、七 种部署方式全面对比表

表格

部署方式 部署难度 可扩展性 运维成本 数据隐私 成本 冷启动延迟 状态管理支持 LangSmith 集成度 适用场景
本地开发 ⭐ 极低 ❌ 无 ⭐ 极低 ✅ 完全本地 ⭐ 极低 ✅ 内存 ✅ 完美 开发调试、原型验证
单实例 Web 服务 ⭐⭐ 低 ❌ 无 ⭐⭐ 低 ✅ 本地 ⭐ 极低 ✅ Sqlite ✅ 完美 个人项目、小型内部工具
Docker 容器化 ⭐⭐ 低 ⭐⭐ 有限 ⭐⭐ 低 ✅ 本地 ⭐ 低 几秒 ✅ Sqlite/Postgres ✅ 完美 测试环境、单服务器生产
多实例负载均衡 ⭐⭐⭐ 中等 ⭐⭐⭐ 良好 ⭐⭐⭐ 中等 ✅ 本地 ⭐⭐ 中等 几秒 ✅ Postgres/Redis ✅ 完美 中等流量生产、企业内部服务
Serverless ⭐⭐ 低 ⭐⭐⭐⭐ 优秀 ⭐ 极低 ⚠️ 取决于平台 ⭐ 极低(闲置时) 几秒到几十秒 ✅ Postgres/Redis ✅ 良好 低流量、突发流量场景
Kubernetes ⭐⭐⭐⭐⭐ 高 ⭐⭐⭐⭐⭐ 无限 ⭐⭐⭐⭐⭐ 高 ✅ 本地 ⭐⭐⭐ 高 几秒 ✅ Postgres/Redis ✅ 完美 大规模生产、高并发业务
LangGraph Platform ⭐ 极低 ⭐⭐⭐⭐ 优秀 ⭐ 极低 ⚠️ 云端 / 本地可选 ⭐⭐⭐ 高 几秒 ✅ 官方托管 ✅ 原生集成 快速上线、零运维需求
边缘部署 ⭐⭐⭐⭐ 高 ❌ 无 ⭐⭐⭐ 中等 ✅ 完全本地 ⭐⭐ 中等 ✅ Sqlite ✅ 良好 工业控制、离线场景、高隐私要求

四、部署关键最佳实践

1. 状态管理

  • ❌ 永远不要在生产环境使用 MemorySaver,服务重启会丢失所有状态
  • ✅ 单实例部署使用 SqliteSaver,多实例部署必须使用 PostgresSaver(首选)或 RedisSaver
  • ✅ 定期清理过期的 Checkpoint 数据,避免数据库膨胀
  • ✅ 为 Checkpoint 数据库配置主从复制和备份,保证数据安全

2. 安全

  • ✅ 所有 API 接口必须添加身份认证(如 API Key、JWT)
  • ✅ 使用 HTTPS 加密传输
  • ✅ 敏感信息(如 API Key、数据库密码)不要硬编码在代码中,使用环境变量或密钥管理服务
  • ✅ 限制数据库和大模型服务的访问权限,只允许智能体实例访问

3. 可观测性

  • ✅ 集成 LangSmith 进行全链路追踪、评估和监控
  • ✅ 收集应用日志,使用 ELK 或 Loki 进行日志管理
  • ✅ 监控核心指标:延迟、吞吐量、错误率、Token 消耗
  • ✅ 设置告警,当指标超过阈值时及时通知

4. 性能优化

  • ✅ 合理设置并发数和超时时间
  • ✅ 对频繁调用的工具和大模型请求进行缓存
  • ✅ 使用连接池管理数据库和大模型服务连接
  • ✅ 长流程任务使用异步执行,避免阻塞请求

五、选型建议

按团队规模和技术能力

  • 个人开发者 / 小型团队:优先使用 LangGraph Platform 云端 SaaS,零运维,快速上线;或 单实例 Docker 部署,成本低,易于管理
  • 中型企业:推荐 多实例负载均衡部署Kubernetes 部署,兼顾可扩展性和运维成本
  • 大型企业 / 金融 / 医疗行业:选择 Kubernetes 自托管部署LangGraph Platform 自托管企业版,满足数据隐私和合规要求

按业务需求

  • 开发调试:本地开发 + LangGraph Studio
  • 低流量 / 个人项目单实例 Web 服务或 Serverless
  • 中等流量 / 内部服务:多实例负载均衡
  • 高流量 / 核心业务:Kubernetes 或 LangGraph Platform
  • 数据隐私要求极高:自托管 Kubernetes 或边缘部署
  • 快速上线 / 最小可行产品:LangGraph Platform 云端 SaaS

六、总结

LangChain/LangGraph 智能体的部署方式非常灵活,从最简单的本地脚本到复杂的 Kubernetes 集群,覆盖了从开发到生产的全场景。选择合适的部署方式需要综合考虑团队技术能力、业务规模、数据隐私要求、成本预算等多个因素。

对于大多数开发者和团队,LangGraph Platform 是目前最快、最省心的部署方式,它提供了开箱即用的基础设施和与 LangChain 生态的深度集成,让你可以专注于智能体的业务逻辑本身,而无需花费大量精力在运维上。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐