首页/新闻资讯/正文详情

如何设计可恢复的执行系统:AX值得借鉴的5个设计决策

发布时间:2026/9/24 15:09:56 来源:云帆数科 栏目:资讯中心
如何设计可恢复的执行系统:AX值得借鉴的5个设计决策
如何设计可恢复的执行系统AX值得借鉴的5个设计决策【免费下载链接】axGoogles open agentic orchestration runtime项目地址: https://gitcode.com/GitHub_Trending/ax11/axAXAgent Executor是 Google 开源的分布式智能体编排运行时核心能力是可恢复执行Agent 任务即使失败、中断或机器宕机也能从断点自动恢复继续运行。对于想要构建长时运行、高可靠 AI Agent 系统的新手和工程师来说AX 源码里藏着 5 个可以直接借鉴的设计决策——单写者架构、追加事件日志、幂等操作、挂起/恢复的 Actor 模型、可插拔执行边界。下面结合源码目录逐个拆解帮你理解可恢复执行系统到底是怎么设计出来的。先搞清楚AX 解决什么问题Agent 正在从一问一答的助手演变为长时间自主工作的工人。这带来一个基础设施难题一个 Agent 可能高强度计算 1 分钟然后闲置数小时甚至数天等待人工审批有状态的计算单元在闲置期一直占着资源成本高到不可接受传统 Kubernetes 是为无状态微服务和可预测的批处理设计的并不擅长挂起和恢复有状态、沙箱化的 Agent ActorAX 的定位就是补齐这一层从可挂起/可恢复的镜像中动态创建隔离环境执行 Agent 任务并且原生支持失败恢复与执行续接。整体架构可以在 README.md 的架构图中看到客户端通过可恢复流连接 AX ServerServer 负责读写事件日志并调度 Agent Substrate 上的 Actor。决策一单写者架构Single-Writer用简单换一致性多副本写状态是分布式系统里最容易出 bug 的地方。AX 的做法很克制每个会话conversation同一时刻最多只有一个执行者。控制器 internal/controller/controller.go 是全局的单写者编排器协调 Agent 循环、管理执行状态执行边界接口 internal/harness/harness.go 的注释明确写了这个约定控制器必须保证每个 conversation 同时最多存在一个 Execution这个设计的好处非常实际下游实现可以放心地用最后写入胜出的简单存储而不需要复杂的比较交换CAS机制因为根本不存在并发写。如果你在设计多节点 Agent 系统一个会话一个写者是性价比极高的一致性保障。决策二追加式事件日志让状态可以重放恢复这是 AX 可恢复能力的地基。事件日志Event Log是一个持久化、只追加的操作记录日志中的每个条目都是一个原子步骤按顺序重放日志就能让执行器回到一个一致状态并从该状态继续执行。定义见 internal/controller/eventlog/eventlog.go核心接口只有三个方法方法作用Append把一步事件追加到日志末尾Events读取某个会话的全部事件Close释放底层资源日志内容覆盖执行的全生命周期输入、中间输出、PENDING/COMPLETED/FAILED状态。控制器在 controller.go 的ResumptionState中扫描日志就能判断会话处于什么状态、用的是哪个 harness——状态不保存在内存里而保存在日志里。存储层也是可插拔的默认用 SQLite本地开发零依赖生产可切到 PostgreSQL配置见根目录 ax.yaml 的eventlog段实现位于 internal/controller/eventlog/。给新手的启示与其保存当前状态再尝试恢复不如记录所有发生过的事需要时重放。这是事件溯源Event Sourcing模式简单且极其可靠。决策三幂等操作让重试天然安全分布式恢复的前提是任何一步操作重复执行都安全。AX 在 Actor 创建上给出了教科书级的示范。看 internal/harness/substrate/substrate.go 的Start方法它的恢复流程是CreateActor(conversationID)创建 Actor——代码注释明确写道创建是幂等的后续轮次中 Actor 已在上轮创建并挂起返回 AlreadyExists 是预期且正常的于是直接放行ResumeActor把 Actor 调度到 worker 上并拿到可路由的 IP用带指数退避的健康检查最长 60 秒等待 harness 就绪这意味着请求发出去后超时了没关系重发一次CreateActor已经存在就跳过。控制客户端封装在 internal/ate/client.goCreateActor/ResumeActor/SuspendActor三个方法各自独立可重试。幂等设计口诀创建类操作用已存在则视为成功操作类操作用带唯一标识去重。做到了这一点恢复逻辑才能简单粗暴地从头再试一遍。决策四挂起/恢复的 Actor 模型闲置不再烧钱传统容器跑完任务就销毁状态全丢而传统有状态服务又必须一直活着。AX 引入了中间态Suspend挂起与 Resume恢复。执行一轮结束后Close方法substrate.go会立即调用SuspendActor把 Actor 的资源归还到待命池——进程停了但身份和可恢复性还在。下一轮对话到来时再ResumeActor把它调度到某个 worker 上。这正是针对 Agent 工作负载突发式bursty特征的设计计算密集时全力运行等待审批时零成本挂起。配合事件日志恢复时逻辑状态从日志重放、计算环境从快照拉起两层状态各管一摊。对应的 CLI 体验非常简洁一个参数即可续接未完成的执行ax --conversation edf98ef5-4bb1-4a9e-a091-3a77e03727e6 --resume决策五Harness 抽象把执行什么变成可插拔的最后一个决策关乎可扩展性AX 把实际干活的 Agent 框架抽象成Harness执行器接口与运行时彻底解耦。internal/harness/harness.go 定义两个核心接口Harness能启动会话和ExecutionRun流式执行、Queue排队输入、Close释放资源internal/controller/registry.go 提供注册表按 ID 注册、查找 harness并支持设置默认值内置的 Antigravity harness 实现见 internal/harness/antigravity/远程沙箱版实现在 internal/harness/substrate/这个解耦带来两个好处框架无关任何传统 Agent、工具调用循环、甚至大模型本身都能包装成 harness以及一致性校验同一会话不允许中途更换 harnesscontroller.go 中会显式报错拒绝避免恢复时状态对不上。想给 Agent 扩展技能AX 还有独立的 Skills 模块internal/skills/示例见 examples/skills/README.mdharness 启动前技能会被物化到磁盘执行器按需消费。5个决策一张表总结#设计决策一句话价值关键源码1单写者架构每个会话一个写者免去分布式锁的复杂度internal/controller/controller.go2追加式事件日志状态可重放、可审计、可恢复internal/controller/eventlog/3幂等操作失败重试、断点续跑天然安全internal/ate/client.go4挂起/恢复 Actor闲置零成本唤醒即恢复internal/harness/substrate/substrate.go5Harness 可插拔抽象框架无关运行时与执行解耦internal/harness/harness.go如何借鉴给新手的落地清单如果你要在自己的项目里引入可恢复执行建议按这个顺序实践先建事件日志把每次输入、输出、状态变更都追加记录恢复逻辑 重放日志决策 2约束写者数量单会话单写者存储层保持简单决策 1所有外部操作做幂等创建加已存在即成功调用加唯一 ID决策 3给执行单元设计挂起/恢复语义哪怕只是保存状态后释放资源也远胜于常驻决策 4最后再抽象执行接口让业务逻辑可替换、可测试决策 5AX 目前仍处于早期快速迭代阶段核心与恢复协议尚在完善README 顶部有明确说明但上述 5 个决策来自 Google 内部多年分布式执行引擎的沉淀方向上是稳定可靠的。项目配置示例见根目录 ax.yamlKubernetes 部署方案见 manifests/README.md欢迎从 internal/controller/ 的源码开始阅读理解这些决策是如何落地的。【免费下载链接】axGoogles open agentic orchestration runtime项目地址: https://gitcode.com/GitHub_Trending/ax11/ax创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

一次跑通palera1n:A8-A11设备越狱实战路径
一次跑通palera1n:A8-A11设备越狱实战路径

一次跑通palera1n:A8-A11设备越狱实战路径 【免费下载链接】palera1n Jailbreak for A8 through A11, T2 devices, on iOS/iPadOS/tvOS 15.0, bridgeOS 5.0 and higher. 项目地址: https://gitcode.com/GitHub_Trending/pa/palera1n palera1n是一款基于check… · 2026/9/24 15:09:50

WorkBuddy:面向事务性工作的端到端自动化协作者
WorkBuddy:面向事务性工作的端到端自动化协作者

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

基于MakerBuddy与继电器的直流电机索道模型制作指南
基于MakerBuddy与继电器的直流电机索道模型制作指南

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

Yii 2 REST API 限流(Rate Limiting)完整实战指南:RateLimitInterface 与 RateLimiter 深度解析
Yii 2 REST API 限流(Rate Limiting)完整实战指南:RateLimitInterface 与 RateLimiter 深度解析

后端Web框架 【免费下载链接】yii2 Yii 2: The Fast, Secure and Professional PHP Framework 项目地址: https://gitcode.com/gh_mirrors/yi/yii2 点击查看 免费下载 Yii 2 内置了一套基于"漏桶算法"(leaky bucket)的 API 限流机… · 2026/9/24 15:34:06

大麦抢票自动化完整指南:双端抢票神器如何帮你快速锁定门票
大麦抢票自动化完整指南:双端抢票神器如何帮你快速锁定门票

大麦抢票自动化完整指南:双端抢票神器如何帮你快速锁定门票 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 还在为抢不到心仪演唱会门票… · 2026/9/24 15:33:59

(全新整理)上市公司-杠杆操纵程度数据(2003-2024年)本数据包含原始数据、参考文献、代码、最终结果。
(全新整理)上市公司-杠杆操纵程度数据(2003-2024年)本数据包含原始数据、参考文献、代码、最终结果。

文章目录资料下载地址介绍01、数据简介02、相关数据03、数据截图项目备注资料下载地址资料下载地址 点击这里下载资料 介绍 01、数据简介 参考许晓芳和陆正飞等做法计算企业杠杆操纵程度,包含以下六个指标结果,指标值越大企业杠杆操纵程度越大&#… · 2026/9/24 15:33:41

RC522读卡距离总是不行?天线匹配才是硬核,从2cm到4cm的实操指南
RC522读卡距离总是不行?天线匹配才是硬核,从2cm到4cm的实操指南

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

(全新整理)顶刊复现31省份区域制度环境数据1998-2022年
(全新整理)顶刊复现31省份区域制度环境数据1998-2022年

文章目录资料下载地址介绍02、数据指标项目备注资料下载地址资料下载地址 点击这里下载资料 介绍 01、数据介绍 本研究参考 Shi 等人(2017)提出的省级制度脆弱性测量方式,选取樊纲市场化指数中的五项关键指标—政府与市场的关系指数、非国… · 2026/9/24 15:33:41

swagger-codegen 生成的 Java okhttp-gson 客户端 StoreApi 实战指南:Petstore 订单与库存接口的调用与源码解析
swagger-codegen 生成的 Java okhttp-gson 客户端 StoreApi 实战指南:Petstore 订单与库存接口的调用与源码解析

开发工具代码生成API设计 【免费下载链接】swagger-codegen swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition. 项目地址: http… · 2026/9/24 15:33:41

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码