【langgraph 从入门到精通graphApi 篇】生产部署与性能优化
第 12 章生产部署与性能优化12.1 本章目标学完本章你将能够了解 LangGraph Platform 和 LangGraph Server 的部署方式掌握生产环境的 Checkpointer 和 Store 配置学会错误处理、重试和并发控制了解监控、日志和成本优化策略12.2 核心概念生产部署架构监控数据库LangGraph Server客户端Web/App 客户端API Server:2024langgraph_sdkPostgreSQLCheckpointer StoreLangSmith追踪 监控开发 vs 生产对比维度开发环境生产环境CheckpointerMemorySaverPostgresSaverStoreInMemoryStorePostgresStoreLLM 调用直连 API加缓存 重试错误处理打印日志结构化日志 告警部署方式langgraph devlanggraph deploy或 Docker监控无LangSmith 集成12.3 实战实战 1langgraph.json 项目配置{graphs:{agent:./agent.py:graph},store:{index:{embed:openai:text-embeddings-3-small,dims:1536,fields:[$]}},env:{OPENAI_API_KEY:your-api-key}}实战 2Postgres 持久化配置importosfromlanggraph.checkpoint.postgresimportPostgresSaverfromlanggraph.store.postgresimportPostgresStoreimportpsycopg2# 连接数据库connpsycopg2.connect(os.environ[DATABASE_URL])# 配置 CheckpointercheckpointerPostgresSaver(conn)checkpointer.setup()# 创建表和索引# 配置 StorestorePostgresStore(conn)store.setup()# 编译图graphbuilder.compile(checkpointercheckpointer,storestore,)实战 3SDK 远程调用fromlanggraph_sdkimportget_client# 连接到 LangGraph Serverclientget_client(urlhttp://localhost:2024)# 流式调用asyncforchunkinclient.runs.stream(None,# thread_idNone 无状态agent,# assistant_id对应 langgraph.json 中的 graphs keyinput{messages:[{role:human,content:你好帮我查询订单}]},):print(chunk.event,chunk.data)实战 4错误重试策略fromlanggraph.typesimportRetryPolicy# 在 add_node 时配置重试builder.add_node(api_call,api_node,retry_policyRetryPolicy(max_attempts3,# 最多重试 3 次initial_interval1.0,# 首次重试等待 1 秒backoff_factor2,# 指数退避因子1s → 2s → 4sretry_onException,# 重试的错误类型),)12.4 API 速查API完整签名入参说明返回值说明langgraph devCLI 命令无开发服务器启动本地开发服务器langgraph deployCLI 命令无部署部署到 LangSmith Cloudget_client(url)get_client(url: str)url: 服务地址ClientSDK 客户端RetryPolicy(max_attempts, ...)RetryPolicy(max_attempts, initial_interval, backoff_factor)max_attempts: 最大重试次数;initial_interval: 初始等待秒数;backoff_factor: 退避因子RetryPolicy节点重试策略PostgresSaver(conn).setup().setup()无无初始化数据库表结构12.5 错误与避坑指南坑 1生产环境用 MemorySaver# ❌ 生产环境错误写法checkpointerMemorySaver()# 服务重启后所有对话状态丢失# ✅ 生产环境正确写法fromlanggraph.checkpoint.postgresimportPostgresSaver checkpointerPostgresSaver(conn)checkpointer.setup()坑 2未设置数据库连接池# ❌ 错误单连接高并发时瓶颈connpsycopg2.connect(DATABASE_URL)checkpointerPostgresSaver(conn)# ✅ 正确使用连接池frompsycopg2.poolimportThreadedConnectionPool poolThreadedConnectionPool(minconn5,maxconn20,dsnDATABASE_URL)checkpointerPostgresSaver(pool)坑 3忽略工具调用超时# ❌ 错误工具调用可能无限等待tooldefexternal_api(query:str)-str:responserequests.get(...)# 没有超时设置returnresponse.text# ✅ 正确设置超时 重试tooldefexternal_api(query:str)-str:try:responserequests.get(...,timeout10)returnresponse.textexceptrequests.Timeout:return服务暂时不可用请稍后重试12.6 最佳实践总结开发用langgraph dev生产用langgraph deploy或 Docker环境统一使用 PostgresSaver PostgresStore 持久化高可用、支持并发关键节点设置 RetryPolicy自动重试 指数退避集成 LangSmith 监控追踪每次 LLM 调用和图执行工具调用设置超时防止外部服务拖垮整个 Agent附录 A完整 API 速查手册A.1 图构建 APIAPI导入路径签名说明StateGraphlanggraph.graphStateGraph(state_schema)创建状态图构建器add_nodeStateGraph 方法.add_node(name, action)注册节点add_edgeStateGraph 方法.add_edge(start, end)添加普通边add_conditional_edgesStateGraph 方法.add_conditional_edges(source, path, path_map)添加条件边add_sequenceStateGraph 方法.add_sequence(nodes)批量添加顺序节点compileStateGraph 方法.compile(checkpointer, store, ...)编译为可执行图STARTlanggraph.graph常量__start__图入口ENDlanggraph.graph常量__end__图出口A.2 State 与 Reducer APIAPI导入路径说明TypedDicttyping定义 State 的推荐方式Annotatedtyping_extensions声明字段的 Reduceradd_messageslanggraph.graph消息专用 Reduceroperator.addoperator数值/列表累加 ReducerMessagesStatelanggraph.graph预构建的 messages StateA.3 消息 APIAPI导入路径说明HumanMessagelangchain_core.messages用户消息AIMessagelangchain_core.messagesAI 回复ToolMessagelangchain_core.messages工具执行结果SystemMessagelangchain_core.messages系统提示词A.4 工具 APIAPI导入路径说明toollangchain_core.tools将函数标记为工具ToolNodelanggraph.prebuilt自动处理工具调用tools_conditionlanggraph.prebuilt判断是否有 tool_callscreate_react_agentlanggraph.prebuilt预构建 AgentA.5 持久化 APIAPI导入路径说明MemorySaverlanggraph.checkpoint.memory内存 CheckpointerSqliteSaverlanggraph.checkpoint.sqliteSQLite CheckpointerPostgresSaverlanggraph.checkpoint.postgresPostgres CheckpointerInMemoryStorelanggraph.store.memory内存 StorePostgresStorelanggraph.store.postgresPostgres StoreA.6 流程控制 APIAPI导入路径说明interruptlanggraph.types暂停执行Commandlanggraph.types动态控制流程Sendlanggraph.types并行分发RetryPolicylanggraph.types重试策略Runtimelanggraph.runtime运行时上下文A.7 流式输出 APIAPI导入路径说明.stream()CompiledGraph 方法同步流式.astream()CompiledGraph 方法异步流式.stream_events()CompiledGraph 方法v3 事件流式get_stream_writerlanggraph.config自定义流式事件

相关新闻

Qwopus3.6-27B-Coder-4bit工具调用功能完全指南:构建智能AI助手的7个步骤

Qwopus3.6-27B-Coder-4bit工具调用功能完全指南:构建智能AI助手的7个步骤

Qwopus3.6-27B-Coder-4bit工具调用功能完全指南:构建智能AI助手的7个步骤 【免费下载链接】Qwopus3.6-27B-Coder-4bit 项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/Qwopus3.6-27B-Coder-4bit Qwopus3.6-27B-Coder-4bit是一款功能强大的AI编…

2026/10/11 21:30:24 阅读更多 →
Traquer核心功能解析:轻松捕获鼠标移动、点击与输入事件

Traquer核心功能解析:轻松捕获鼠标移动、点击与输入事件

Traquer核心功能解析:轻松捕获鼠标移动、点击与输入事件 【免费下载链接】traquer Records and reproduces users in-page behavior 项目地址: https://gitcode.com/gh_mirrors/tr/traquer Traquer是一个强大的Web页面行为记录与回放工具,能够轻松…

2026/10/5 7:04:38 阅读更多 →
ThinkingCap-Qwen3.6-27B-mlx-6Bit配置文件详解:轻松自定义你的AI生成参数

ThinkingCap-Qwen3.6-27B-mlx-6Bit配置文件详解:轻松自定义你的AI生成参数

ThinkingCap-Qwen3.6-27B-mlx-6Bit配置文件详解:轻松自定义你的AI生成参数 【免费下载链接】ThinkingCap-Qwen3.6-27B-mlx-6Bit 项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/ThinkingCap-Qwen3.6-27B-mlx-6Bit 想要充分发挥ThinkingCap-Qwe…

2026/9/25 0:07:05 阅读更多 →

最新新闻

Vue智慧水务系统源码拆解:可视化大屏与实时监测实践

Vue智慧水务系统源码拆解:可视化大屏与实时监测实践

简介:这是一份基于 Vue.js 开发的开源智慧水务系统前端工程,面向水务行业信息化开发者、前端工程师及正在学习 Vue 实战项目的读者。项目围绕水务监测、数据展示与后台管理场景,提供了完整可运行的页面组件与构建配置,适合直接部署…

2026/10/13 15:35:26 阅读更多 →
artcraft:数字时代的手工艺智能协作范式

artcraft:数字时代的手工艺智能协作范式

1. 项目概述:当“艺术”与“工艺”在数字时代重新握手 “artcraft”这个词乍看像一个生造词,但拆开来看——art是艺术,craft是工艺、手艺、匠作。它不是某个具体软件、平台或产品的官方命名,而是一种正在快速凝聚共识的创作范式&a…

2026/10/13 15:35:26 阅读更多 →
智能体能力单元(agent-skills)工程化实践指南

智能体能力单元(agent-skills)工程化实践指南

1. “agent-skills”不是新词,而是智能体能力体系的命名起点 “agent-skills”这个词组乍看像某个开源仓库名、技术文档里的小节标题,甚至有人第一反应是拼写错误——是不是该写成“agent skills”(带空格)?或者误打了…

2026/10/13 15:35:26 阅读更多 →
预测性资产维护套件:Intel优化版XGBoost故障概率预测实战

预测性资产维护套件:Intel优化版XGBoost故障概率预测实战

简介:面向预测性资产维护场景的AI入门套件,以英特尔优化版XGBoost为核心技术,适合数据科学初学者和需要落地设备故障预测的运维工程师,可帮助减少非计划停机、降低维修成本。压缩包共59个文件、约504KB,主要包含3个Pyt…

2026/10/13 15:35:26 阅读更多 →
Docker+Jenkins+GitLab:自定义分支自动部署完整指南

Docker+Jenkins+GitLab:自定义分支自动部署完整指南

这几年维护过好几套发布流程,最大的感受是:手动发布不是不能干,而是每次干都像在赌运气。登服务器、拉代码、编包、拷贝、重启,一套流程下来十几分钟,遇到依赖拉不下来、配置忘改、端口被占用,半小时就没了…

2026/10/13 15:35:26 阅读更多 →
多个申购单如何智能聚合生成一个采购单

多个申购单如何智能聚合生成一个采购单

1. 项目概述:从散乱申购到聚合采购的业务逻辑跃迁“如何多个申购单生成一个采购单”——这句话听起来像一句日常办公场景里的操作提问,但背后藏着企业供应链管理中一个极其关键的效率瓶颈。我接触过不少中小制造企业和高校后勤部门的实际案例&#xff0c…

2026/10/13 15:34:17 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →