Wink Pings

SuperAgent 的架构拆完,社区里全是熟人

KonghaYao 把 DS SuperAgent 逐条拆开,MessageQueue、EventSystem、异步子任务、落盘和重试都能在现有系统里找到影子。争议点落在边界:幂等、重放、解耦。社区方案已经够多,剩下看谁先拼起来。

先把讨论对象说清楚

KonghaYao 在 X 上拆 DS SuperAgent 的架构设计。讨论范围包括 RCRA Loop、EventSystem、Async Subagent System、Cursor Multitask、工具落盘、多跳检索、计算状态环境分离、Watch Dog。他的判断是,SuperAgent 更像一份 Agent 设计工程综述,里面不少设计在社区已有成熟实现,细节和系统解耦还处在实验阶段。

MessageQueue 是入口

RCRA 在 ReAct 基础上扩展了 MessageQueue,用来存放还没进入 Loop 的外部消息。这个队列做持久化,保证 durable。外部消息只能从 MessageQueue 进入 Loop 内部。有网友提到,这块立住之后,durable 才有基础。对普通读者来说,durable 可以理解成进程中断后消息不丢,恢复后还能接着处理。

EventSystem 和 Agent 系统解耦

在这层基础上,消息系统和 Agent 系统可以高度解耦。EventSystem 合并所有外部系统输入,IM 和 GitHub webhook 都从这里进。它管投递逻辑和权限,事件到来时做可靠投递,进入 Agent 系统的 session MQ。两边只有通信耦合。消息过滤适合用 Jev,不需要构建代码,只构建 Agent 需要监听的方向。有网友提醒,事件投递和会话状态分开后,幂等与重放边界就很关键。幂等指同一条消息重复到达不会产生重复副作用,重放指系统恢复后按顺序重新处理消息。

异步子任务和 Router 的争议

Async Subagent System 的做法是,主 Agent 的 Agent 工具立刻返回一个 agent id 和与 subagent 通信的方式,subagent 自动异步执行。Cursor Multitask 是一组提示词,规定主 agent 和子 agent 如何操作,保证 Async Subagent System 在上下文设计里能跑起来。KonghaYao 认为,Router + Worker 的 Agent 系统设计不必要在代码里搭出来,传统 Agent 核心已有这个能力。必要能力来自 Cursor 的 Multitask 和以 async 优先的 Agent 设计。Peri 实现时已经做到 Cursor Multitask 的 Agent Mode,能由门户 Agent 路由和管理多个 Subagent。

落盘、检索、错误处理

Inline & Spill 是社区成熟的工具落盘机制,CC、Codex、Peri Code、MCode 和 Pi 的源码里都能找到。消息超过阈值自动放到磁盘,给出简化的 tool result 和寻回方式,Agent 靠自身能力完成找回。多跳检索可以简化:EventSystem 提供 Channel 历史的 list 接口,Agent 直接从 list 里找,多跳检索行为变成系统数据找回,不需要改造 Agent 系统。计算、状态与环境的分离源头是 Claude Managed Agent,社区和各大框架已有成熟设计。Watch Dog 设计普通,Agent 系统内部设计得当,95% 的 error 不会阻挡正常运行。统计里 LLM API Error 和停机中断是两大核心因素,云服务开发体系里的 Agent 系统本身很稳定。durable 设计能解决停机中断恢复,pi-durable 在尝试;另一个用进程重试,在 LLM API uptime 之后自动继续。

最后落在人身上

遮蔽对人的 session 掌控权,这个方向被 KonghaYao 认可。到 2027 年初,面对的问题会从一堆 session 转向如何构建一个人。整体看,SuperAgent 这篇文章更像综述 Agent 设计工程的成熟设计,细节和系统解耦理解还处于实验阶段。有网友说,看完感觉全是熟人,MQ、落盘、重试社区里都见过,剩下看谁先拼起来。企业落地角度,Agent 能接进现有事件系统会方便很多,但幂等与重放边界要先说清。

来源:https://x.com/konghayao/status/2117076017865277865

发布时间: 2026-11-02 20:43