langgraph教程系列-12-把agent跑成服务-部署与可观测
本文是「LangGraph 教程系列」第 12 篇。写作时基于 langgraph 1.2.10、langchain 1.3.14、langchain-openai 1.4.1、Python 3.12。配套代码仓库 https://github.com/wxj006007/deep-research-assistant 本篇对应 tagv5。v4 的 Supervisor 已经能把研究员、审稿人和写作员组织起来。可python -m退出后外部客户端没有稳定的运行入口人工审批也没有可以回到的服务端会话更谈不上查一条慢请求究竟卡在搜索、模型还是调度。最后一版不再给助手增加一个业务角色。它把同一张图交给 LangGraph Platform平台提供 Thread、Run、流式 API 和运行时持久化LangSmith 则把每次运行变成可追踪的执行记录。一、代码和平台各管什么部署不等于在图外再包一层 FastAPI。这个案例的业务边界已经在StateGraph中Platform 可以直接把编译图变成服务。渲染错误:Mermaid 渲染失败: Parse error on line 3: ...rm API] api -- graph[v5 研究图] gr ----------------------^ Expecting AMP, COLON, PIPE, TESTSTR, DOWN, DEFAULT, NUM, COMMA, NODE_STRING, BRKT, MINUS, MULT, UNICODE_TEXT, got GRAPH图仍负责 Supervisor 路由、人工审批、资料和记忆写入条件。Platform 负责线程和运行的生命周期不能把用户身份、输入校验或业务授权替你做掉。LangSmith 负责观察不是业务数据库。二、部署入口只导出图v4 的本地演示传入MemorySaver与InMemoryStore方便单进程运行。v5 不能把这两个对象硬编码进去否则云端运行时就无法接管持久化资源。# src/v5_service.pyfromsrc.v4_multi_agentimportbuild_graph graphbuild_graph()部署清单把一个稳定名称映射到这个入口。{dependencies:[.],graphs:{deep_research_assistant:./src/v5_service.py:graph},env:.env}langgraph.json不是另一套工作流定义。它只告诉 Platform 应加载哪个 Python 图、安装哪些项目依赖、从哪里读取本地开发环境变量。生产密钥由 Platform 的部署环境配置不应提交进仓库。三、Thread 是服务端会话边界调用方先创建或复用一个 Thread再在该 Thread 上启动 Run。对于这个助手Thread 对应一次可暂停、可恢复的研究会话ResearchContext中的user_id和research_id仍分别用来隔离长期记忆和保证摘要写入幂等。创建或复用 Thread - 提交问题和 ResearchContext启动 Run - 流式消费回答、状态更新和业务进度 - 收到 interrupt 后展示审批 - 用同一 Thread 恢复 Run不要让浏览器任意传入另一个用户的user_id。业务后端应从已认证身份生成它并为每次研究生成或验证research_id。Thread ID 可以由客户端保存用于恢复但访问它前仍要做归属校验。四、本地先验证服务形状安装依赖、配置模型环境变量后在仓库根目录启动开发服务。langgraph dev这个命令读取langgraph.json加载deep_research_assistant图并提供与托管环境一致的开发 API。先在这里验证四件事新 Thread 能启动运行流式调用能看到回答和更新审批中断能以同一 Thread 恢复取消路径不会新增长期记忆。通过后将同一仓库和配置发布到 LangGraph Platform Cloud。Cloud 负责服务运行与持久化基础设施本项目不再另建 FastAPI、Docker 编排或一套自管 PostgreSQL 教程以免把重点从 agent 服务化转成运维搭建。五、可观测不是只看一条最终答案启用 LangSmith 追踪。LANGSMITH_TRACINGtrue LANGSMITH_API_KEYlsv2_pt_your-key-here LANGSMITH_PROJECTdeep-research-assistant一次 v5 Run 的 trace 应能展开父图、Supervisor、研究员子图、审稿人、写作员和模型调用。排查问题时先看运行总时长和错误再定位具体节点Supervisor 是否反复分派、研究员是否因审批停住、搜索是否无结果、审稿人是否不断要求返工、写作员消耗了多少时间和 token。trace 的价值在于把“回答质量不好”还原成可检查的执行路径而不是只记录输入和输出。可以按项目观察失败率、延迟和模型成本趋势再为异常增长设置告警。但观测不等于无边界记录。不要把 API Key 写进 metadata不要把完整长期记忆、审批原文或内部 state 默认暴露给前端日志保留期和用户删除请求也必须由应用的隐私策略约束。六、上线前的最小检查表模型、搜索、LangSmith 密钥仅存在于部署环境不在仓库或 trace metadata 中出现。API 层从认证身份生成user_id校验 Thread 的归属拒绝跨用户访问。同一个research_id重试不会重复写入摘要取消和预算耗尽不会伪装成成功研究。用真实的流式 Run 验证 interrupt/resume而不只验证一次同步调用。在 LangSmith 中确认能从一次异常 Run 定位到具体节点和模型调用。从 v0 的直接回答到 v5 的服务化研究团队变化并不是“把提示词写得更长”。图给了流程分叉、循环、暂停、记忆、组合和调度的明确位置服务和观测则让这些位置在真实用户到来后仍然可运行、可恢复、可解释。赞或收藏 关注 我们下次再见

相关新闻

langgraph教程系列-11-从单兵到团队-多智能体模式

langgraph教程系列-11-从单兵到团队-多智能体模式

本文是「LangGraph 教程系列」第 11 篇。写作时基于 langgraph 1.2.10、langchain 1.3.14、langchain-openai 1.4.1、Python 3.12。配套代码仓库 https://github.com/wxj006007/deep-research-assistant ,本篇对应 tag v4。v3 已经把规划、研究和写作拆成了边界清晰…

2026/8/7 1:28:56 阅读更多 →
PTA基础编程题目集 7-14求整数段和(C++语言实现)

PTA基础编程题目集 7-14求整数段和(C++语言实现)

摘要:本文是PTA编程题"求整数段和"的题解,涵盖题目描述、输入输出格式及C语言实现,展示for循环遍历、累加求和与格式化输出方法。题目描述 给定两个整数A和B,输出从A到B的所有整数以及这些数的和。 输入格式&#xff1a…

2026/8/7 8:08:29 阅读更多 →
联想拯救者工具箱终极指南:轻量级硬件控制解决方案

联想拯救者工具箱终极指南:轻量级硬件控制解决方案

联想拯救者工具箱终极指南:轻量级硬件控制解决方案 【免费下载链接】LenovoLegionToolkit Lightweight Lenovo Vantage and Hotkeys replacement for Lenovo Legion laptops. 项目地址: https://gitcode.com/gh_mirrors/le/LenovoLegionToolkit 联想拯救者工…

2026/8/6 0:42:20 阅读更多 →

最新新闻

MySQL数据类型选择与优化实战指南

MySQL数据类型选择与优化实战指南

1. MySQL数据类型深度解析:从原理到实战避坑指南作为关系型数据库的基石,数据类型的选择直接影响着数据存储效率、查询性能和系统稳定性。从业十年间,我见过太多因数据类型使用不当导致的性能瓶颈——有将手机号存为INT导致首位零丢失的&…

2026/8/7 8:08:39 阅读更多 →
从单模型到多模型编排:构建高效AI Agent系统的核心策略与实践

从单模型到多模型编排:构建高效AI Agent系统的核心策略与实践

1. 项目概述:从“单兵作战”到“团队协作”的AI范式演进 最近和几个做AI应用落地的朋友聊天,大家普遍有个感觉:单个大模型(比如GPT-4、Claude 3)的能力确实很强,写代码、做分析、搞创作都是一把好手。但真要…

2026/8/7 8:08:39 阅读更多 →
AI 3D建模工具盘点:从文生3D到NeRF,10款工具重塑数字内容创作

AI 3D建模工具盘点:从文生3D到NeRF,10款工具重塑数字内容创作

1. 从“手搓”到“口述”:生成式AI如何重塑3D建模工作流 如果你在五年前告诉我,有一天我可以通过输入一段文字描述,比如“一个穿着宇航服的柴犬,坐在月球表面,手里拿着一个发光的甜甜圈”,然后就能在几分钟…

2026/8/7 8:08:39 阅读更多 →
解锁Hermes智能体五大隐藏功能:从对话记忆到自动化工作流实战

解锁Hermes智能体五大隐藏功能:从对话记忆到自动化工作流实战

1. 项目概述:重新认识你的AI工作伙伴如果你和我一样,在日常工作中深度依赖AI助手来提升效率,那么“Hermes”这个名字对你来说应该不陌生。它作为一款新兴的AI智能体框架,以其强大的自主任务处理能力和灵活的扩展性,正在…

2026/8/7 8:08:39 阅读更多 →
基于DeepSeek与智能缓存的低成本AI编程助手架构设计与实现

基于DeepSeek与智能缓存的低成本AI编程助手架构设计与实现

1. 项目概述:一个高颜值且会省钱的AI编程伙伴 最近在开发者圈子里,Reasonix这个项目火得不行,GitHub标星直奔1.5万,讨论热度居高不下。简单来说,Reasonix是一个主打“高颜值”和“智能”的Coding Agent(编程…

2026/8/7 8:08:39 阅读更多 →
55-首页顶部告警流与通知条交互:为什么实时告警不应只躺在后台列表里

55-首页顶部告警流与通知条交互:为什么实时告警不应只躺在后台列表里

适合对象:关注实时提醒、全局通知体验、告警触达设计的前后端工程师和平台工程师。 先说结论 首页顶部告警流与通知条交互不是一个孤立功能,而是精准测试平台里帮助团队做判断的一环。 它重点解决的是:为什么实时告警不应只躺在后台列表里。 用大白话讲,监控和告警要帮用…

2026/8/7 8:07:39 阅读更多 →

日新闻

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南 【免费下载链接】scrcpy Display and control your Android device 项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy 想要将Android手机屏幕完美投射到电脑上,享受大屏操作的自…

2026/8/7 0:00:19 阅读更多 →
如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南 【免费下载链接】tom-select Tom Select is a lightweight (~16kb gzipped) hybrid of a textbox and select box. Forked from selectize.js to provide a framework agnostic autocomplete widget wi…

2026/8/7 0:00:19 阅读更多 →
5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件 【免费下载链接】nsz NSZ - Homebrew compatible NSP/XCI compressor/decompressor 项目地址: https://gitcode.com/gh_mirrors/ns/nsz 你是否在为Nintendo Switch游戏文件占用大量存储…

2026/8/7 0:00:19 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/6 22:02:27 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/6 22:02:27 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/6 22:02:27 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/5 23:28:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/6 22:02:28 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/5 23:46:51 阅读更多 →