news 2026/9/26 2:42:38

执行中途失败怎么办?sprix-sage-router进度感知重规划与失败恢复实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
执行中途失败怎么办?sprix-sage-router进度感知重规划与失败恢复实战

执行中途失败怎么办?sprix-sage-router进度感知重规划与失败恢复实战

【免费下载链接】sprix-sage-routerSprix AI at 屿智同行 — state-aware SELF/COLLABORATE/HANDOFF routing for A2A agent networks.项目地址: https://gitcode.com/gh_mirrors/sp/sprix-sage-router

多智能体任务跑到一半,负责执行的 Agent 突然挂了,系统该怎么办?继续硬撑、拉队友、还是整体换人?sprix-sage-router(Sprix SAGE Router)正是为此而生的 A2A 网络状态感知路由器:它在任务执行过程中实时比较 SELF(自己继续)、COLLABORATE(协作增援)、HANDOFF(整体移交)三条路线,把失败进度、累计上下文和预算约束一起纳入同一个可审计的效用函数,完成进度感知的重规划与失败恢复。

为什么执行中途失败是最难处理的时刻

很多 Agent 系统只在任务开始时做一次匹配:选个能力最强的 Agent 就开工。一旦执行中途失败——Agent 不可用、预算超支、质量不达标——系统往往只能粗暴地"从头再选一次"。这会带来两个问题:

  • ⚠️丢失已有进度:已经完成的依赖步骤、积累的上下文,在重新选型时没有被考虑;
  • 🔄决策不可解释:换不换人、换给谁,全靠写死的启发式规则,出了问题无从排查。

SAGE 的思路是:把"执行中途的状态"变成一等公民。路由器不再只看静态能力表,而是读取任务实时状态,在三种恢复路线里做统一权衡,并保留完整审计轨迹。

三种恢复路线:继续、增援还是移交

SAGE 将失败后的恢复路径归纳为三种模式,它们在同一条效用公式中直接竞争,而不是靠零散规则硬编码:

路线归属适合场景
SELF自己继续原执行 Agent已有能力和上下文足够,失败只是暂时波动
COLLABORATE协作增援原 Agent 保留所有权缺的只是一块能力拼图,拉几个互补 Agent 补齐
HANDOFF整体移交其他 Agent 接手全部所有权专家优势明显,且上下文转移损失可接受

一个值得注意的细节:进度越深,上下文越难转移,整体移交(HANDOFF)的成本就越高。SAGE 用进度 × 上下文可转移性来量化这部分损失,避免"任务做到 80% 却轻率换人"的决策。三种模式的完整决策边界分析见 ALGORITHM.md。

进度感知重规划:用 ExecutionState 告诉路由器"现在到哪了"

重规划的前提是路由器"知道现场"。SAGE 用一个轻量的执行状态结构承载这些信息,定义见 sprix_sage.py:

字段含义
progress任务整体完成度(0~1)
completed_requirements已完成的需求/DAG 节点集合
failed_agents本次执行中失败的 Agent
failure_count累计失败次数
active_agents/active_mode当前在跑的团队和模式

关键行为有两条:

  1. 失败 Agent 被硬过滤:凡在failed_agents里的 Agent,直接标记"failed"原因,无论它预测质量多高都不会进入候选,见 sprix_sage.py。
  2. 切换损失随失败次数递减:失败次数越多,路由器对"再次换人"的摩擦惩罚越轻(恢复折扣),避免在已经出状况的任务上因害怕切换成本而停在原地,见切换损失实现 sprix_sage.py。

失败恢复完整流程:记录 → 重规划 → 持久化

仓库提供了可直接运行的失败恢复示例 examples/replan_and_persist.py,完整流程分三步。

第一步:把失败证据记回学习状态

执行结束后,用record_outcome把真实结果喂回路由器。失败证据(如success=0.1)会更新该 Agent 的上下文信任度,后续选型时它的可信度会被自动调低——这是"从失败中学习"而非"把失败的 Agent 拉黑了事":

router.record_outcome( initial, ExecutionOutcome( success=0.1, requirement_scores={"coding": 0.1}, actual_cost=0.05, actual_latency_ms=750, ), )

第二步:注入执行状态,重规划绕开失败 Agent

构造带失败信息的ExecutionState(进度 0.4、generalist已失败),再次调用route。路由器会把失败 Agent 移出候选,围绕剩余需求重新比较三种模式:

state = ExecutionState( active_agents=initial.agents, active_mode=initial.mode, progress=0.4, failed_agents=frozenset({"generalist"}), failure_count=1, ) replanned = router.route(task, state=state)

第三步:版本化快照,让恢复经验跨重启保留

学习到的信任、协同和报价保真度不会随进程消失。export_state导出带版本号的 JSON 快照,restore_state在新实例上恢复(实现见 sprix_sage.py):

snapshot_json = json.dumps(router.export_state()) restored = SAGERouter(agents, incumbent_id="generalist") restored.restore_state(json.loads(snapshot_json))

生产环境建议对快照做原子写入与加密,运维细节参考 docs/OPERATIONS.md。

可审计:明确看到路由器为什么排除谁

重规划最怕"黑盒换人"。用route_with_trace替代route调用,除了胜出决策,还能拿到完整审计包:

  • ✅ 胜出的路由 + 按效用排序的可行备选方案;
  • ✅ 每个被淘汰 Agent 的硬性过滤原因(failed / unavailable / 缺权限 / 超预算 / 超时);
  • ✅ 最终团队的角色分配与通信拓扑。

排查"为什么把失败 Agent 换成了它"时,只需检查excluded_agents里的理由即可,无需翻日志猜。

快速上手:3 步跑通失败恢复演示

SAGE 参考实现零运行时依赖(Python 3.10+),克隆仓库即可运行:

git clone https://gitcode.com/gh_mirrors/sp/sprix-sage-router cd sprix-sage-router python -m examples.replan_and_persist

终端会依次打印初始路由、失败后的重规划结果,以及恢复后路由器成功模型的学习更新次数。想看更完整的端到端路由(含 A2A 执行计划生成),可运行 examples/a2a_execution_plan.py,其原理说明见 docs/INTEGRATION.md。

小结

执行中途失败时,别再"从头选一遍"。sprix-sage-router 给出的答案可以浓缩成四句话:

  1. 📊 用ExecutionState把进度与失败事实如实注入,重规划才谈得上"进度感知";
  2. 🚫 失败 Agent 走硬过滤,不进候选;
  3. ⚖️ SELF / COLLABORATE / HANDOFF 在同一效用函数里竞争,且失败越多、换人阻力越小;
  4. 💾 失败证据与学习状态版本化落盘,恢复能力跨重启保留,全程可审计。

作为研究预览项目,SAGE 已具备完整的重规划闭环与状态持久化;若你要在真实 A2A 网络上落地,建议按 docs/OPERATIONS.md 的分阶段上线流程(离线回放 → 影子决策 → 灰度)逐步推进。

【免费下载链接】sprix-sage-routerSprix AI at 屿智同行 — state-aware SELF/COLLABORATE/HANDOFF routing for A2A agent networks.项目地址: https://gitcode.com/gh_mirrors/sp/sprix-sage-router

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/26 2:42:28

cx23885视频采集卡驱动实战:从源码解包到V4L2调试

简介:Conexant CX23885 是一款面向 PCIe 接口的视频桥接芯片,本压缩包提供其 Linux 驱动源码,供内核驱动开发者、嵌入式视频采集模块调试者参考。该驱动用于解决 CX23885 在 PCIe 总线下的设备注册、视频流捕获与硬件控制等核心问题&#xff…

作者头像 李华
网站建设 2026/9/26 2:41:43

扭矩矢量控制:分布式电驱时代的底盘控制革命

1. 这不是“高级差速锁”,而是电驱时代的底盘控制范式革命你可能在某款新发布的纯电SUV宣传页上见过这个词——“扭矩矢量控制”,旁边配着车辆过弯时内侧轮减速、外侧轮加速的动态示意图,文案写着“精准过弯”“弯道如直线”。但如果你真去查…

作者头像 李华
网站建设 2026/9/26 2:41:35

零基础跑通3D高斯泼溅:Spirula Studio 命令行训练完整指南

零基础跑通3D高斯泼溅:Spirula Studio 命令行训练完整指南 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Spi…

作者头像 李华
网站建设 2026/9/26 2:40:56

判据、全绿、缺口、漂移与自查 —— 线上补课(下)

系列:gdev-master(NVIDIA/nouveau 用户态 GPGPU 运行时)从 C/C 到 Rust 的移植工程 第三部换了一个问题:前两部回答「怎么搬」,这一部回答「凭什么说对了」。 一句话核心最值钱的一格每写一条检查,同时写…

作者头像 李华
网站建设 2026/9/26 2:40:21

深度探索:Bifrost PR 评审意见的系统化解决工作流

人工智能LLM 网关API网关后端 【免费下载链接】bifrost Fastest enterprise AI gateway (50x faster than LiteLLM) with adaptive load balancer, cluster mode, guardrails, 1000 models support & <100 s overhead at 5k RPS. 项目地址&#xff1a; https://gitcode.…

作者头像 李华