一、从脚本到服务:LangGraph 的三条部署路径

LangGraph 本质是一个有状态的 Python 应用,部署的核心矛盾是:HTTP 是无状态的,但图是有状态的。所以部署方案怎么选,取决于你愿不愿意自己管"状态"。

路径 1:LangServe + FastAPI(轻量,适合小团队)

LangGraph 编译后就是一个 Runnable,可以直接用 LangServe 暴露成 API。

ini 复制代码
from fastapi import FastAPI
from langserve import add_routes

app = FastAPI()
graph_app = graph.compile(checkpointer=RedisSaver(...))
add_routes(app, graph_app, path="/agent")

自动得到:

  • POST /agent/invoke --- 单次调用
  • POST /agent/stream --- 流式输出(SSE)
  • GET /agent/playground --- 交互式调试页面

适合:QPS < 50,单实例够用,团队不想运维太多组件。

路径 2:LangGraph Platform(官方全家桶)

LangChain 官方在 2025 年底把 LangGraph Cloud 升级为 LangGraph Platform,2026 年 5 月正式 GA。 提供四种部署模式:

模式 说明 适用
Cloud SaaS 全托管,LangSmith 内一键部署 快速上线
BYOC 控制平面在云端,数据面在你自己的 VPC 数据敏感但想省运维
Self-Hosted Enterprise 全部自托管,最大控制权 金融/医疗等合规场景
Self-Hosted Lite 免费,每月 100 万节点执行上限 个人/小项目

自带能力:任务队列、长运行 Agent、Cron 调度、Webhook、Studio 可视化调试。

路径 3:FastAPI 手写 + Docker/K8s(最灵活)

如果不想被官方方案绑定,可以走标准 Web 服务路线:

复制代码
用户 → Nginx/Ingress → 多个 LangGraph Pod → 共享 Redis/PostgreSQL

关键点:

  • Checkpointer 必须用分布式(RedisSaver / PostgresSaver),MemorySaver 和 SqliteSaver 在多实例下会丢状态。
  • 每个请求带上 thread_id 做会话隔离。
  • 建议把 LangGraph 独立成一个微服务,FastAPI 做业务网关,避免长会话阻塞主进程。

二、水平扩展:状态是唯一的拦路虎

LangGraph 水平扩展的公式很简单:

无状态计算节点 × N + 共享状态存储 = 水平扩展

2.1 架构拓扑

markdown 复制代码
                    ┌─────────────┐
   请求 → Nginx →   │ Pod 1       │
                    │ Pod 2       │ → Redis Cluster / PostgreSQL
                    │ Pod 3       │
                    └─────────────┘
  • 计算层:Pod 无状态,可以随便启停、自动扩缩容
  • 状态层 :Redis 或 PostgreSQL 存 Checkpoint,按 thread_id 分片
  • LLM 层:外部服务,不在扩展范围内

2.2 Redis vs PostgreSQL

维度 Redis PostgreSQL
写入速度 快,每节点完成都写一次 稍慢
查询能力 弱,适合按 thread_id 读取 强,支持复杂查询
高可用 Redis Cluster / Sentinel 主从 + 流复制
适用场景 高并发、低延迟 需要审计/回放

实测数据:8 分片 Redis Cluster 在 100K req/hr 负载下,p95 端到端延迟可控制在 300ms 以内。 瓶颈通常不在计算节点,而在 Checkpoint 写入吞吐量------每个节点完成都会触发一次 Redis 写。

2.3 扩展时的几个坑

  • 乐观锁冲突:多实例同时写同一 thread 的 checkpoint 时,LangGraph 内部用乐观锁处理,高并发下会有重试开销。
  • 递归限制 :一定要设 recursion_limit(比如 50),防止死循环拖垮集群。
  • 健康检查:Pod 启动时先检查 Redis 和 LLM 是否可达,不可达就直接 fail,别让"半残"的 Pod 接流量。
  • 冷启动:Serverless 场景(AWS Lambda / 函数计算)要注意依赖包体积和 LLM 连接池预热。

三、LangSmith 追踪:看清每一条执行链路

LangSmith 是 LangChain 生态的可观测性平台,接入成本极低------三个环境变量搞定。

ini 复制代码
export LANGSMITH_TRACING=true
export LANGSMITH_API_KEY=lsv2_xxx
export LANGSMITH_PROJECT=my-agent-prod

之后所有 invoke() / stream() 调用自动上报,无需改业务代码。

3.1 能看到什么

  • 完整执行树:每个节点的输入输出、耗时、状态快照
  • Token 热力图:快速定位哪个节点/模型最烧钱
  • 错误堆栈:工具调用失败、LLM 超时一目了然
  • Thread 回放 :用 thread_id 重现任意一次对话,逐节点检查 state 何时偏离预期

3.2 本地调试:LangGraph Studio

arduino 复制代码
pip install "langgraph-cli[inmem]"
langgraph dev

启动后访问 http://localhost:2024,得到:

  • 图结构可视化
  • 单步执行 + 断点
  • 状态编辑 + checkpoint 回放
  • 条件边路由决策实时查看

开发阶段强烈推荐,比 print 调试效率高一个数量级。

3.3 评估与 A/B 测试

LangSmith 不只是"看日志",还能做量化评估:

  1. 准备测试数据集(输入 + 期望输出)
  2. 配置评估器(LLM-as-Judge / 确定性代码评估)
  3. 运行 client.evaluate() 生成报告
  4. 对比不同 Prompt / 模型版本的指标

支持 RAG 双维评估(检索质量 + 生成质量)和 Agent 轨迹评估(工具调用路径、单步决策质量)。

3.4 国内替代方案

LangSmith 服务器在海外,国内网络访问不稳定,私有部署成本也较高。可以考虑 Langfuse------开源自托管,功能与 LangSmith 高度对齐,代码几乎不用改。


四、生产部署速查表

场景 推荐方案 Checkpointer 监控
个人 Demo 本地脚本 / LangGraph Studio MemorySaver 无
小团队 MVP LangServe + FastAPI SqliteSaver / Redis LangSmith
中等流量生产 Docker + Nginx + 多实例 RedisSaver / PostgresSaver LangSmith + Prometheus
企业级大规模 K8s + LangGraph Platform Redis Cluster / PostgreSQL LangSmith + OTEL + Grafana
数据合规 自托管 LangGraph Platform 内网 PostgreSQL Langfuse / 自托管 LangSmith

总结

部署和监控这件事,说穿了就三句话:

  1. 单实例用 LangServe,多实例换分布式 Checkpointer
  2. 水平扩展的瓶颈不在计算,在状态写入
  3. LangSmith 三个环境变量就能开,不开等于裸奔
相关推荐
沉默王二1 小时前
Claude Opus 5.5 最新焚诀发布了!
openai·agent·claude
用户60794596600071 小时前
桌面论文阅读工具开发笔记——DGX Spark 黑客松十日谈
agent
蔚天灿雨3 小时前
Agent 洗冤集录:前缀缓存 —— MCP 排序问题,如何影响模型调用的延迟与成本
人工智能·缓存·agent·harness
智能RPA4 小时前
智能体自动化平台与法务合同管理平台对比评测
大数据·人工智能·自动化·agent·rpa
杨杨杨大侠12 小时前
Jev、Kev、Laya:决策模型怎么选,什么时候需要微调?
人工智能·python·agent
李福春12 小时前
markdown表格标题渲染判定
agent·架构师同盟·腾讯云架构师同盟
白萝卜弟弟14 小时前
【大模型Qwen3.8 27B】llama.cpp 本地大模型部署与使用
ai·大模型·agent·llama·qwen3.8
吃饱了得干活14 小时前
从 LLM 到 Agent:一文彻底搞懂什么是 AI Agent
llm·agent
笑小枫15 小时前
AgentScope 学习系列(开篇):Java 开发者如何搭建企业级智能体
agent·智能体开发·agentscope·java开发智能体