【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/7/22 9:38:41 阅读更多 →
Traquer核心功能解析:轻松捕获鼠标移动、点击与输入事件

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

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

2026/7/23 5:22:10 阅读更多 →
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/7/21 1:01:59 阅读更多 →

最新新闻

AI写公众号为什么总被说“一眼AI“?两个Skill背后的方法论拆解

AI写公众号为什么总被说“一眼AI“?两个Skill背后的方法论拆解

"一眼AI"到底是什么意思公众号评论区有个高频词:"一眼AI"。读者用这个词的时候,并不是在说"你用了AI写东西",而是在说"你写的东西没有值得读的理由"。套话堆砌、没有观点、结构工整到不像人写的——…

2026/7/23 21:48:04 阅读更多 →
Windows11的SMB共享文件夹

Windows11的SMB共享文件夹

有一说一,AI生成封面真好用由于Windows随着版本更新,各种花里胡哨的改变,导致一个的文件夹共享功能变得很难用。此教程为2026/7/14经过检索和尝试后成功且觉得较为简单且安全的办法:(保持最小暴露以及最小权限&#xf…

2026/7/23 21:48:04 阅读更多 →
我用了十年 Linux 后,最离不开的 5 个轻量神器

我用了十年 Linux 后,最离不开的 5 个轻量神器

使用 Linux 超过十年,从最初的折腾新手到现在的日常主力系统,我越来越发现:真正能改变体验的,往往不是那些庞大复杂的软件,而是那些小巧、专注、解决具体痛点的工具。 今天就和大家分享我在 Linux 日常工作中真正离不开的 5 款小工具。这些工具体积不大,使用频率却极高,…

2026/7/23 21:48:04 阅读更多 →
论文AIGC检测总不通过?实测okbiye低AI痕迹写作解决方案

论文AIGC检测总不通过?实测okbiye低AI痕迹写作解决方案

一、为什么纯手动改稿,依旧被判AI生成? 相信很多同学都有这种疑惑: 明明没有直接复制AI内容,全程手动改写、调整语序、替换词汇,学校AIGC检测依旧飘红,终审被打回返修。 其实现阶段高校AI审核&#xff0…

2026/7/23 21:48:04 阅读更多 →
systemd服务管理——让机器人程序开机自启

systemd服务管理——让机器人程序开机自启

面试翻车现场面试过一个做机器人项目的候选人,我问他:"你的机器人程序怎么实现开机自启?"他说:"在rc.local里加一行。"我问:"如果程序崩溃了怎么自动重启?"他说:…

2026/7/23 21:48:04 阅读更多 →
TVA驱动的具身智能迭代逻辑(系列)

TVA驱动的具身智能迭代逻辑(系列)

前沿技术探索:AI智能体视觉(TVA,Transformer-based Vision Agent)是依托Transformer架构与“因式智能体”理论所构建的颠覆性工业视觉技术,是集深度强化学习(DRL)、卷积神经网络(CNN…

2026/7/23 21:47:03 阅读更多 →

日新闻

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:25 阅读更多 →
AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

更多请点击: https://codechina.net 第一章:AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析 在对2,346篇跨行业AI生成文案的A/B测试数据进行聚类分析后,我们发现&#xff1…

2026/7/23 0:01:26 阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:01:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 19:43:43 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 17:49:47 阅读更多 →

月新闻