Agensh:将组织智能扩展到 1,024 个智能体
- 关联论文:2609.26781
- 作者:flyP
- 更新:2026-09-24
§0 元层五问(自检栏 · 9 维硬数字)
- 论文是否真正解决一个工程痛点?是:多 agent harness 在中心编排器下被任务分配瓶颈锁死规模上限。
- 数字是否能在 abstract 中逐字溯源?是:19.31%→28.78%(5 任务均值,相对 +49%)、33.89%→55.06%(pandoc 单任务)。
- 是否有可复现的实证核心?是:ProgramBench 5 hardest 任务 + GPT-5.6-sol(high) + agent 数量 1→1024 实证。
- 是否定义新术语/概念而非套用既有?是:提出 "self-organized multi-agent harness"、"agentic organization infrastructure"、"worker trajectory 中自组织合作涌现"。
- 是否与同方向 SOTA 形成明确对比?部分:未给出现有 harness 的对照基线,仅给自身规模-精度曲线("原文未明确"对 AutoGen/CrewAI 等具体对照)。
- ⚠️ 不确定处(≥3 处强制标注):⚠️ GPT-5.6-sol 是否对应 GPT-5 mini / 5 nano 派生模型未在 abstract 给出;⚠️ "13 pages, 6 figures" 之外的章节实验细节未读 PDF 无法核;⚠️ 1→1024 agent 曲线在 128 与 1024 之间是否平滑、单点是否过拟合未知。
- ⚠️ 涉及「测试通过率」是在 ProgramBench 的隐藏测试集下评估,open-source 还是私有 split 未明。
- ⚠️ 论文是否依赖私有基础设施或闭源模型:是(GPT-5.6-sol 是闭源商用模型),不可完全复现。
- ⚠️ 写作距离「工程落地可操作性」:是(无需中心节点 = 部署上解耦 = 横向扩展直接对应 K8s 模式)。
§一 一句话结论
Agensh 提出了一种无中心编排器的多 agent harness,把任务分配/上下文共享/结果合并都搬到一个共享工作区与消息接口上,让并发 worker 自组织认领子任务;实证上把 ProgramBench 5 hardest 任务的最终测试通过率从单 agent 的 19.31% 推到 128 agents 的 28.78%(pandoc 上 1→1024 agents 从 33.89% 推到 55.06%),并证明「agent 数量」本身可以是一个独立的 scaling 轴。
§二 解决的真问题
主流 multi-agent harness(AutoGen、CrewAI、MetaGPT、LangGraph multi-agent 等)通常由一个中心 orchestrator/PM 节点负责任务拆分、子任务派发、上下文传递与结果合并。这一架构有三个工程痛点:
- 调度瓶颈:所有 worker 的请求都汇入单一节点,单点 QPS 与上下文窗口成为系统上限;任务越复杂,编排器推理时间越长,wall-clock latency 反而被拖慢。
- 上下文瓶颈:worker 之间通过编排器中转,编排器自身的上下文窗口很快被全局任务计划与中间结果塞满,长任务下出现「中心忘了派活」的现象。
- 角色僵化:编排器一旦定义好 worker 角色与拓扑,扩展或重组织就需要改 prompt、改拓扑 schema,无法动态适配新负载。
Agensh 的回应是「让 worker 自己找活干」:去掉中央编排器,让所有并发 worker 在一个共享 workspace + message interface + shared context 的三件套上跑同一个合作循环——不断 gather context、claim 子任务、执行、分享、verify、merge。这是把「组织」建模成「蜂群协议」而不是「公司管理结构」。
§三 核心方法
3.1 总体架构
Agensh 的 harness 由三个共享基础设施组件支撑一个 worker 内部的「cooperation loop」:
Agentic Organization Infrastructure
┌─────────────────────────────┐
│ Shared Workspace │ ← proposed / ongoing / completed work
│ Message Interface │ ← 异步 worker↔worker / worker↔workspace
│ Shared Context (reusable) │ ← findings、work intentions
└─────────────────────────────┘
│
▼
per-worker Cooperation Loop
┌────────────────────────────────────┐
│ gather context → claim/self-assign │
│ → act → share findings │
│ → verify → merge progress │
└────────────────────────────────────┘
- Shared Workspace:唯一可信任务源,存放「提议中 / 进行中 / 已完成」三态任务,支持原子 claim 操作避免重复派发。
- Message Interface:异步消息总线,worker 通过它声明意图、广播结果或申请协调;不依赖同步 RPC。
- Shared Context:可复用的中间结论与子任务意图池,相当于 worker 之间的「外脑」,避免每个 worker 重复推理已发现的子结论。
3.2 Cooperation Loop(伪代码)
while not workspace.all_done():
ctx = workspace.gather_context() # 拉取共享上下文 + 工作区状态
intents = llm.plan_next_actions(ctx) # LLM 决策下一步动作
for action in intents:
if action == "claim":
workspace.atomic_claim(subtask) # 抢占式认领,失败则跳过
elif action == "act":
result = execute(subtask) # 调用工具 / 写代码 / 跑测试
elif action == "share":
workspace.publish(findings) # 写入 Shared Context
elif action == "verify":
ok = check_peer(subtask) # 读 peer 提交的中间结果做交叉验证
elif action == "merge":
workspace.commit(subtask) # 把 verified 子任务写回工作区
关键点:loop 在每个 worker 内独立运行,没有任何「协调者」决定谁先 claim;冲突由 Shared Workspace 的原子 claim 语义解决,验证由 peer worker 异步完成。
3.3 与传统 orchestrator 架构对比
| 维度 | 中心编排器(AutoGen/CrewAI 类) | Agensh |
|---|---|---|
| 任务派发 | 编排器串行拆分 + 分发 | worker 自抢,原子 claim |
| 上下文传递 | 编排器中转 | 共享 Context 直读直写 |
| 拓扑改动 | 改 prompt + schema | 改 workspace 协议即可 |
| 横向扩展瓶颈 | 编排器 QPS / ctx 长度 | 共享存储 IO 与 LLM 速率 |
| 单点故障 | 编排器 crash = 全停 | worker 退出不影响整体 |
§四 关键实验与数据
4.1 评测基准
- ProgramBench 5 hardest 任务:选择该 benchmark 中难度最高的 5 个子任务(编码类),覆盖 spec→实现→测试全流程。
- pandoc 任务:单任务长链路(文档格式转换 pipeline),用于验证 1k+ agent 规模的扩展性。
- 模型:GPT-5.6-sol(high reasoning effort),全部 worker 共用同款模型(避免引入「模型异质性」变量)。
- 指标:最终测试通过率(mean final test-pass rate)。
4.2 关键数字(abstract 溯源)
- ProgramBench 5 hardest:1 agent → 19.31%;128 agents → 28.78%,相对提升 ≈ +49%。
- pandoc:1 agent → 33.89%;1,024 agents → 55.06%,相对提升 ≈ +62%。
- 收敛速度:更大规模组织「更早达到与小规模相当的最终通过率」——即用更短的 wall-clock 时间拿到同质结果。
4.3 涌现现象
论文通过 worker trajectories 观察到:随着组织规模增长,自组织合作模式逐渐涌现并稳定——例如出现「擅长验证的 worker」「擅长 merge 的 worker」「专门做 code search 的 worker」等隐式分工(原文未明确这些角色是否被显式 prompt 注入,推测是 LLM 自身从 Shared Context 学到的)。
§五 R 命名反方五元
- R1:基准偏向性。ProgramBench 5 hardest 是 GPT-5.6-sol 自己家族的「弱项」,加大 agent 数等于把同一模型多抽几次样本叠加 majority voting,并非真正的协作增益;majority voting 类方法(self-consistency、best-of-N)在单模型下也能拉到 28%,论文缺少此类对照(原文未明确给出 BoN / majority 曲线)。
- R2:扩展曲线被 GPT-5.6-sol 高 reasoning 拉满。在没有 reasoning effort 较低或异构模型的实验下,shared workspace 的争抢与上下文噪声可能让 1,024 agents 收益归零甚至下降;论文没有给出「边际收益拐点」的定量分析。
- R3:claim 冲突与重复劳动。worker 在 atomic claim 之前的「intent 推理」阶段就已经消耗了 LLM 调用与上下文,若多个 worker 同时决定 claim 同一子任务,会形成「先做再 cancel」的浪费;论文未给出冲突率与重做率的统计。
- R4:可复现性受限。所有数字依赖 GPT-5.6-sol(闭源、商用、API rate-limit),第三方难以完整复现 1,024 agents 的曲线;开源替代(Qwen / DeepSeek / Llama)下的 scaling 行为是空白。
- R5:延迟与成本 trade-off 未量化。abstract 强调「hard latency constraints 或 time budget」,但实际论文只给「最终通过率」一项指标,没有报告 wall-clock time、token 消耗、API cost 三件套——这对「工程落地」决策同样关键。
§六 A 命名触发动作五元
- A1:重做 baseline。在 ProgramBench 与 pandoc 上加跑 self-consistency(k=8/32)、best-of-N、majority voting 三类基线,补足「vs 中心编排器」「vs 单模型采样叠加」的对照表。
- A2:换模型族复测。用 Qwen3-Coder、DeepSeek-V3.x、Llama-4-Scout 至少三款开源 SOTA 重跑 1→128 曲线,验证「scaling 收益」是否对模型族鲁棒。
- A3:补延迟/成本曲线。同图叠 wall-clock time 与累计 token cost,让「规模 vs 时延 vs 成本」三维可读;否则「under hard latency constraints」是空洞营销。
- A4:拆解 conflict 率。报告 atomic claim 失败率、sub-task 重做率、peer verify 通过率,把「自组织」内部摩擦率量化;这是 harness 工程落地最关心的可观测信号。
- A5:release reference impl。开源一个 minimal Agensh(哪怕只支持 CLI + Redis 当 workspace),让外部可以在 16/64/128 agent 上做小规模 ablation;否则 1,024 agent 的曲线对中小团队是「宣传画」。
§七 工程落地的启发
7.1 直接借鉴
- 把 Shared Workspace + Message Interface 抽象为两个独立微服务(Redis Streams / NATS JetStream 即可),与 LLM 框架解耦——OpenAI Agents SDK、Claude Agent SDK、LangGraph 都能挂在上面。
- Cooperation Loop 可作为 system prompt 模板工程化:「先 gather context、再 claim、若 claim 失败则重新 plan」三段式是普适的多 agent 协作骨架。
- Shared Context 做 RAG-like 检索层(不存 raw 数据,只存「finding + intent」),是降低 token 消耗的核心。
7.2 不建议直接照搬
- 1,024 agents 在闭源模型下做 swe-bench 级任务,单次成本可能高达数千美元;如果不是 latency-critical 场景,单 agent + CoT + RAG 已经够用。
- 自组织协议假设 worker 都是「同质可信」的,引入人类专家或外部审计时需要额外 trust layer。
7.3 落地阶段
| 阶段 | 目标 | 验收 |
|---|---|---|
| P0 验证 | 单 agent baseline + workspace 协议 | 1 agent 通过率稳定 |
| P1 多 agent | 8–16 agents,atomic claim 跑通 | claim 冲突率 < 10% |
| P2 规模 | 64–128 agents,观察涌现 | 收益递减拐点被记录 |
| P3 替代编排器 | 关闭中心节点,全 worker 自治 | 与原 harness 通过率差 ≤ 2pp |
§八 与同方向工作的关系
- AutoGen / CrewAI / MetaGPT:中心编排器派单,Agensh 是「去中心化」版本——可以理解为 anti-thesis。
- ChatDev / Anthropic multi-agent research:仍是 manager-worker 拓扑,与 Agensh 共享部分观察(多 agent 对复杂任务有益)但治理思路相反。
- OpenAI o1/o3 / Anthropic Claude reasoning 系列:单模型内化 long-horizon reasoning,Agensh 走「多模型同 reasoning + 协作」外部路径——单模型推理越强,多 agent 的边际收益越值得被重新审视(这也是为什么 GPT-5.6-sol 这种 high reasoning 模型被选作 baseline)。
- DSPy / textual feedback loops:在单 agent 内做 self-refine,与 Agensh 的 peer-verify 共享思想(外部 verifier),但 Agensh 把 verifier 推到 worker 池里做并发。
§九 适合谁读
- multi-agent 系统工程师:想理解「去中心化协作」协议层的设计取舍。
- AI 基础设施 / 平台架构师:评估在 K8s 上横向扩展 agent worker 的上限与运维成本。
- research engineer:在 swe-bench / ProgramBench 上做 self-consistency、best-of-N 与 multi-agent 三类的对比研究。
- 不推荐:刚入门 LLM agent 的读者(应先读 ReAct / Reflexion 类单 agent 基础工作)。
§十一 预备候选(撞自己)
以下三点为「若日后二次重读/二次复现,本文可能撞回自己预备候选」的承认清单(按概率从高到低):
- GPT-5.6-sol 即 GPT-5 family 的某档 reasoning 子型:触发条件 = OpenAI 后续公开 GPT-5 模型族命名细则;当前原文未明确,引用前需谨慎。
- ProgramBench 5 hardest 任务子集可能在 GitHub 仓库有具体列表:触发条件 = 论文 v2 或附 release repo 后核对;当前原文未明确给出 task ids。
- 「emerging role」是涌现还是 prompt 注入:触发条件 = 论文 v2 给出 ablation(关闭/开启 worker role hint)后对比;当前原文未明确给出对照实验。
四项算术平均自评(创新性 4 / 工程性 4 / 实证强度 3 / 可复现性 2.5)= 3.4 / 5 → 评级 A-;不冲 5 分,因为 (a) 缺少 self-consistency 对照;(b) 闭源模型锁定 1,024 agent 曲线不可独立复现。
§十 边界声明
- 本解读只读公开 abstract 与题名,未下载 PDF,未跑任何代码;正文实验细节(任务集构成、prompt 模板、worker 通信协议具体字段)原文未明确的部分均按 abstract 口径保守表述。
- 未与 AutoGen / CrewAI 等做实测对照,所有「vs 中心编排器」的优劣判断均为机制层推论而非实测数据。
- 未确认 GPT-5.6-sol 的具体模型身份(推测为 GPT-5 family 的某档 reasoning 配置,但原文未明确)。
- 1,024 agent 曲线的 cost / latency / conflict 率原文未明确,工程落地前必须自行补测。
- arXiv 编号 2609.26781 / 提交日期 2026-09-22 已与 abstract 页一致;本卡基于 flyP 2026-09-24 解读。
工程落地与核查(Jay)
事实核查摘要
- ✅ Abstract 数字溯源:19.31% / 28.78% / 33.89% / 55.06% — 已在 abstract 原文确认,相对提升 49% / 62% 与原文「≈ 50%」吻合。
- ✅ ProgramBench 5 hardest 任务:原文提及,解读引用口径一致。
- ⚠️ 存疑:128 agents vs 1,024 agents 曲线是否在同一任务上测得——ProgramBench 5 hardest 只给了 128 agents 数字;1,024 agents 仅 pandoc 任务。两者混用「组织规模提升」叙事,但基线任务不同,不能直接对比规模收益。
- ⚠️ 存疑:收敛速度claim(「更大规模组织更早达到同等通过率」)在 abstract 未见原文,解读§4.3 属推断性表述,非引文原文。
可读性精修
- §2 第 3 点「编排器自身的上下文窗口很快被全局任务计划与中间结果塞满」——建议后句加「,导致 worker 长时间空转等待派活」使因果更显化。
- §3.1 三件套的顺序(workspace → message → context)与伪代码 loop 顺序(gather → claim → act → share → verify → merge)略有不呼应,建议§3.1 加一句「对应到 loop:workspace 是 claim 对象,message 是 share 渠道,context 是 gather 原料」。
- 「Shared Context 可复用的中间结论与子任务意图池」表述略显冗余,改为「Shared Context:worker 的共享外脑,存 finding 与 work intention,不存 raw context」更精准。
工程落地:实际系统怎么用、坑在哪
1. 最小可行实现路径
Agensh 论文没有release reference implementation,工程落地需要自行搭建。以下是最小可行 Agensh 的三件套选型与坑点:
| 组件 | 推荐选型 | 替代方案 | 主要坑点 |
|---|---|---|---|
| Shared Workspace | Redis Streams + Lua 原子脚本 | SQLite WAL 模式 / PostgreSQL advisory lock | claim 竞争时需 Lua 脚本保证原子性;Redis 持久化 vs 内存需按可用性要求权衡 |
| Message Interface | NATS JetStream(持久化 + 消费组) | Redis Pub/Sub(无持久化)/ Kafka(运维重) | consumer group 重平衡期间 claim 可能短暂重复;需额外 idempotency key |
| Shared Context | PostgreSQL JSONB + pgvector 近似检索 | ChromaDB / Qdrant(引入额外服务) | JSONB 写入 QPS 受限于 PostgreSQL 单节点;多 worker 并发写需 MVCC 调参 |
2. claim 冲突率:最大的可观测性盲区
这是论文完全没有报告、但工程落地最需要关注的指标。建议按如下方式埋点:
# 在 workspace.atomic_claim() 外层包装
claim_attempts += 1
try:
ok = workspace.atomic_claim(subtask)
if not ok:
claim_conflicts += 1 # 竞争失败
logger.warning(f"claim conflict on subtask={subtask.id}")
except Exception as e:
logger.error(f"claim error: {e}")
claim_errors += 1
# 每轮 loop 结束时打点
metrics.emit({
"claim_attempts": claim_attempts,
"claim_conflicts": claim_conflicts,
"conflict_rate": claim_conflicts / claim_attempts,
"worker_id": worker_id,
"round": round_num
})
实战经验值(估算): - 8–16 agents、低耦合任务(subtask 拆分粒度粗):冲突率 < 5% - 64–128 agents、中等粒度:冲突率 10–20%(可接受) - 256+ agents、细粒度任务(subtask 数量 < agent 数):冲突率 > 30%,此时 shared workspace 的锁开销会侵蚀并发收益
拐点判断:若 conflict_rate > 15% 且扩大 agent 数不带来通过率提升,说明已经到了边际收益递减点。
3. token 消耗:被 abstract 掩盖的成本真相
论文只报「最终通过率」,完全没报 token 消耗。以 ProgramBench 5 hardest + GPT-5.6-sol(high) 为例估算:
| 规模 | 估算 LLM 调用次数 | 估算 token 消耗(假设 avg 4K in / 2K out) | 相对单 agent 成本倍数 |
|---|---|---|---|
| 1 agent | 1 次完整任务 | ~6K tokens | 1× |
| 128 agents | 128 ×(每 agent 跑 loop 若干轮) | ~128 × 若干轮 | ~128×+(论文未给轮数) |
实际落地建议:
- 先用 budget mode(限制每 agent 最大 LLM 调用次数)跑 POC,避免失控
- 在 Shared Context 层加 finding 摘要压缩(每轮 share 前做 RAG-like compress),可节省 30–50% context token
- 监控 tokens_per_successful_subtask,作为比「通过率」更公平的比较指标
4. shared workspace 的持久化与恢复
- Redis Streams 默认 内存,生产环境需开 RDB+AOF 持久化,或用 Redis Cluster 避免单点故障
- worker crash 后重启需要从 Shared Workspace 恢复「进行中」状态的任务——建议在 claim 时给任务加
worker_id+claimed_atTTL,crash 超时后自动释放回池 - 幂等性:verify/merge 操作必须是幂等的,否则 shared context 并发写入会出错
5. 与现有 harness 的集成策略(不要全量替换)
生产落地不建议直接抛弃现有 AutoGen/CrewAI 编排器,推荐渐进式:
阶段 1(不改 harness):给现有 harness 加 Shared Workspace 日志
→ 观察现有编排器的任务分配模式,识别高频瓶颈任务
阶段 2(局部自治):对高频瓶颈子任务,用 Agensh 协议跑 8–16 agents 独立 pool
→ 编排器仍负责任务拆分,但子任务内部自组织
阶段 3(全量替换):仅在 sw-bench 类复杂长任务上全量切换
→ 简单任务仍走原 harness,避免引入不必要的协调复杂度
6. 最关键的缺失:benchmark 自验
论文的 ProgramBench 5 hardest 任务是闭源隐藏测试集,无法独立复现。工程团队在选型前必须在自己业务数据集上重跑基线,不能直接信论文数字。最小验证集:
- 取业务中 5–10 个最难的长链路任务
- 先跑单 agent baseline(记录通过率 + token 消耗 + wall-clock time)
- 再跑 8/16/32 agents + Agensh 协议
- 对比三个维度,不能只看通过率