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),仅供参考
企业数字化 ERP 产品动态
相关推荐
OpenShift Origin QuickStart 模板详解:应用骨架的构建原理、参数体系与自动同步机制 测试云原生质量保障 【免费下载链接】origin Conformance test suite for OpenShift 项目地址: https://gitcode.com/gh_mirrors/or/origin 点击查看 免费下载 本篇技术文章基于 examples/quickstarts/README.md 展开,系统讲解 OpenShift Origin 中 Qui… · 2026/9/25 3:57:03
React 360 资源缓存利器:深入解读 RefCountCache 引用计数缓存实现与应用 前端3D渲染 【免费下载链接】react-360 Create amazing 360 and VR content using React 项目地址: https://gitcode.com/gh_mirrors/re/react-360 点击查看 免费下载 导读
ref-count-cache 是 React 360 项目中的一个独立基础工具包,提供了一种以&quo… · 2026/9/25 3:56:57
生产级Agent沙箱设计:选型、持久化与执行协议全解析 1. 为什么本地跑通的沙箱,一上生产就翻车先说个我们踩过的场景。最开始做 Agent 的时候,团队里每个人都在自己电脑上跑代码沙箱,主要就是拿 Docker 跑个容器,把 LLM 生成的代码丢进去执行,本地看起来一切正常。但等到要… · 2026/9/25 4:24:48
ASP.NET Core 集成 MCP:让 AI 直接调用你的接口 1. 为什么要把 .NET 接口暴露给 AI1.1 从一个真实痛点说起去年底我接手了一个内部工单系统的维护工作,前端同事跑过来跟我说:“能不能让 AI 直接帮我查工单状态?我不想每次都在 Swagger 页面里翻接口、填参数、点 Try it out。”当时我的第一… · 2026/9/25 4:24:48
DiceBear Icons 头像风格实战指南:在着色背景上渲染 Bootstrap Icons 图形徽标 UI组件后端 【免费下载链接】dicebear DiceBear is an avatar library for designers and developers. 🌍 项目地址: https://gitcode.com/gh_mirrors/di/dicebear 点击查看 免费下载 Icons 是 DiceBear 官方提供的一种极简头像风格:它不绘制… · 2026/9/25 4:24:48
Jetson Orin 上 RealSense 与 ROS2 环境搭建避坑指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 4:24:48
MBA论文写作AI工具清单:9个平台按流程用才能高效过关 写MBA论文这件事,说穿了就是一场时间和精力的极限拉扯。白天上班、晚上带娃,周末还要挤出整块时间啃文献、跑数据、憋章节,多少人熬到凌晨三点,对着空白的Word文档和导师那句“框架再想想”欲哭无泪。这几年AI工具集体爆发&#x… · 2026/9/25 4:24:42
neovis.js 实战:Neo4j 图数据浏览器可视化与性能避坑指南 简介:neovis.js 是一套基于 vis.js 构建的图形可视化方案,能够直接连接 Neo4j 实例读取实时数据,在浏览器中渲染交互式图网络,适合需要展示知识图谱、社交关系或社区聚类的前端开发者与数据可视化学习者。资源包共 34 个文件&… · 2026/9/25 4:24:42
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37