新闻详情

新闻详情

首页 / 资讯中心 / 详情

Clawith架构深度剖析:FastAPI + LangGraph + PostgreSQL 持久化检查点执行链路(初学者完整指南)

发布时间:2026/9/26 15:45:56来源:尧图网络
Clawith架构深度剖析:FastAPI + LangGraph + PostgreSQL 持久化检查点执行链路(初学者完整指南)
Clawith架构深度剖析FastAPI LangGraph PostgreSQL 持久化检查点执行链路初学者完整指南【免费下载链接】ClawithYour First AI Agents Company项目地址: https://gitcode.com/gh_mirrors/cl/ClawithClawith 是一款开源的多智能体协作平台Your First AI Agents Company它使用FastAPI构建 API 服务用LangGraph编排智能体执行逻辑并依赖PostgreSQL持久化检查点Durable Checkpoint让每个 AI 智能体拥有持久身份、长期记忆和跨会话的可靠状态。本文将带你完整理解这条从收到消息到落盘存档的执行链路无需深厚代码基础也能读懂。一、为什么选择这三件套很多初学者会问一个 AI 智能体平台凭什么要同时用到 Web 框架、图编排引擎和数据库三种技术答案在于职责分离技术栈在 Clawith 中的角色解决什么问题FastAPI统一 API 入口聊天、任务、触发器、IM 渠道高并发接入、鉴权、多租户隔离LangGraph智能体执行内核的控制流编排模型调用 → 工具执行 → 校验的状态机流转PostgreSQL持久化检查点存储langgraph_checkpoint模式进程重启、崩溃后智能体能接着上次继续三者各司其职FastAPI 负责接单LangGraph 负责干活PostgreSQL 负责记账。这就是 Clawith 架构最核心的设计哲学。二、执行链路全景图一条消息的旅程根据官方架构文档 01-architecture-overview.mdClawith 的所有持久化 Agent 逻辑都走同一条链路Web / 渠道 / 任务 / 触发器 / 心跳 / A2A │ ▼ RuntimeCommandIntake命令接入层 AgentRun AgentRunCommand写入数据库 │ ▼ Command Worker按线程串行执行 │ ▼ Clawith Agent Kernelcontext - model - tool - verify │ ▼ LangGraph PostgreSQL 持久化检查点整个过程可以拆成5 个关键步骤1️⃣ 请求接入所有入口殊途同归无论是网页聊天、Slack/Discord/飞书等 IM 渠道、定时触发器还是 Agent 之间互发消息A2A所有入口都不直接干活而是把请求转换成一条持久化命令start、resume、cancel三种写入agent_run_commands表。这一层的设计来自 02-backend-runtime-boundary.md 中的边界规则API 适配器绝不直接调用执行节点也不允许修改检查点状态。这样无论前端加多少种入口底层执行逻辑永远只有一份。2️⃣ 命令收件箱像邮件一样可靠agent_run_commands表就是一个收件箱——命令被接收后不会丢失即使服务重启未处理的命令依然躺在数据库里等待被领取。这是典型的At-Least-Once 投递设计为后面的幂等重试打下基础。3️⃣ Command Worker串行执行守门员command_worker.py 是整条链路的心脏。它的职责是从数据库认领一条待执行命令对同一会话Thread加锁串行执行避免两条消息交叉执行导致状态错乱调用 LangGraph 图执行执行完成后做幂等对账消息投递、通知推送可安全重试。 关键原则检查点是唯一权威状态。即使产品侧同步失败已提交的检查点依然有效对账逻辑可以无限重试直到一致。4️⃣ LangGraph 执行内核确定性控制流graph.py 定义了智能体运行的状态机节点依次为compact— 按需压缩过长的上下文model— 调用 LLM 模型tool— 执行工具调用带重试策略verify— 校验结果wait/terminal— 等待外部输入或进入终态。每个节点转换都会把状态写入检查点。这意味着模型调用到一半进程挂了没关系重启后 Worker 从上一个检查点resume继续就像游戏自动存档一样。5️⃣ PostgreSQL 检查点智能体的长期记忆checkpointer.py 使用langgraph-checkpoint-postgres的AsyncPostgresSaver把每一步执行状态序列化存入独立的langgraph_checkpointschema支持加密序列化防止状态泄露。这里有一个初学者容易混淆的概念Thread ≠ Run。一条 Thread会话线程上可以跑多个逻辑 Run直聊场景多个 Run 共享一个 Thread而群组和后台任务则各自独立。这个映射关系由runtime_thread_config()统一管理。三、四类事实严格分家稳定性密码Clawith 架构中最值得初学者记住的一条设计原则是四类事实分离详见 01-architecture-overview.md事实类型归属说明产品记录产品数据库表租户、用户、智能体、会话、群组命令收件箱agent_run_commands表已接收的 start/resume/cancel执行生命周期LangGraph 检查点PostgreSQL 持久化状态用户投递产品对账器幂等消息投递与外部通知铁律只有一条产品侧投影永远不能成为第二套 Agent 状态机。API 层不允许直接改检查点生命周期字段。这种单一事实来源设计正是企业级 Agent 平台区别于 Demo 级聊天机器人的关键。四、多租户隔离企业级的底线作为多租户系统03-multi-tenant-data-model.md 规定了三层隔离数据库层所有查询必须显式带上tenant_id过滤缓存层Redis 键统一使用tenant:{tenant_id}:{key}格式后台任务层Worker 执行前必须校验目标 Run 的租户归属。五、小结三条主线串起整个架构 FastAPI把一切入口聊天/渠道/触发器/A2A统一翻译成持久化命令LangGraph以确定性状态机驱动model → tool → verify循环每步都落检查点PostgreSQL既存命令收件箱又存执行状态保证永不丢任务、永远可续跑。理解了这条命令收件箱 → 串行 Worker → 检查点续跑的链路你就掌握了 Clawith 运行时 90% 的设计思想。想深入源码从这三个文件入手即可执行图定义backend/app/services/agent_runtime/graph.py命令工作器backend/app/services/agent_runtime/command_worker.py检查点接线backend/app/services/agent_runtime/checkpointer.py【免费下载链接】ClawithYour First AI Agents Company项目地址: https://gitcode.com/gh_mirrors/cl/Clawith创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

ArcGIS Engine地图整饰:C#动态控制指北针、比例尺与图例 2026/9/26 15:45:56

ArcGIS Engine地图整饰:C#动态控制指北针、比例尺与图例

简介:本资源是一套基于C#与ArcGIS Engine开发的地图整饰与输出实战项目,面向GIS开发初学者及中级程序员,解决地图制图中指北针、图例、比例尺、格网等核心整饰要素的代码实现与工程集成问题。包内共140个文件,涵盖13个关键C#源码文…

阅读更多 →
如何彻底清除Windows广告?FluentTweaker的9项开始菜单与锁屏广告优化全清单 2026/9/26 15:45:56

如何彻底清除Windows广告?FluentTweaker的9项开始菜单与锁屏广告优化全清单

如何彻底清除Windows广告?FluentTweaker的9项开始菜单与锁屏广告优化全清单 【免费下载链接】FluentTweaker Windows Slop Remover 项目地址: https://gitcode.com/gh_mirrors/wi/FluentTweaker FluentTweaker(Windows Slop Remover)是…

阅读更多 →
Codex 写完后台表格后,我会重点验收这 4 类列:TaoToken 配置与校验清单 2026/9/26 15:45:56

Codex 写完后台表格后,我会重点验收这 4 类列:TaoToken 配置与校验清单

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

阅读更多 →
接近开关选型接线与故障排除实战指南 2026/9/26 15:45:49

接近开关选型接线与故障排除实战指南

1. 接近开关到底是个什么东西干自动化这行十几年,接近开关是我见过最“不起眼但离了它真不行”的元件之一。它不像PLC那样引人注目,也不像伺服电机那样动辄上热搜,但产线上十台设备里有八台都藏着它——限位、计数、测速、定位、安全门检测&a…

阅读更多 →
5 步搞定 Delta 模拟器控制器皮肤导入与分享 2026/9/26 15:45:49

5 步搞定 Delta 模拟器控制器皮肤导入与分享

5 步搞定 Delta 模拟器控制器皮肤导入与分享 【免费下载链接】Delta Delta is an all-in-one classic video game emulator for non-jailbroken iOS devices. 项目地址: https://gitcode.com/GitHub_Trending/delt/Delta 还在用那个灰不溜秋的默认触屏按键?D…

阅读更多 →
InfiniBand HCA 从硬件识别到性能调优:端口状态、子网管理器与 RDMA 实践 2026/9/26 15:45:49

InfiniBand HCA 从硬件识别到性能调优:端口状态、子网管理器与 RDMA 实践

1. 从“IB HCA”这个缩写说起:它到底指什么第一次看到“IB HCA”这四个字母,很多人会一头雾水。我先把这个缩写拆开讲清楚,因为搞混了它和普通网卡的区别,后面所有配置都会走偏。IB指的是 InfiniBand,一种在高性能计算…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉