Files
Agentswarm/docs/swarm-definition-gap.md
Songhaoz666andClaude Opus 4.8 f281370209 去中心化蜂群重构:从 Master 中心化切换为播种+自组织(唯一行为)
把本仓从「Master 分解→派发→单评审」重构为去中心化自组织蜂群,并设为唯一行为
(本仓即 swarm 运行时,模式选择在仓外,无 ENABLE_swarm 开关)。依据:heicodeDocs 弱中心
定义 + 蜂群文章(stigmergy)+ OpenAI Swarm(handoff)。

流程(全部无条件生效):
- 播种 build_seed_task_specs(不主控分解)→ 自选 swarm_dispatch(能力+τ+负载+预算,唯一派发)
  → 自主分解 task_proposal(autonomous_tasks)→ 竞争/接管 task_bid/yield/takeover(task_competition)
  → 同伴交叉评审 ≥2 评审者(cross_review,取代单 critic)→ 收敛 ConvergenceReport+termination_reason
  (convergence)→ 守卫 guard.diagnose(检测无法运作并列原因)。

删除:planner 主控分解、贪心/ACO/scored 派发与 scored_matchmake、单 critic 评审环、
全部 ENABLE_* swarm 构建开关。master_agent.synthesize 作为汇总工具保留。

测试:test-workflow-e2e 改写为真实 swarm 全流程;test-merge-smoke 改为 seeder/cross-review;
新增 test-swarm-{seed,dispatch,autonomous,competition,cross-review,convergence,guard} + 模块单测;
CI 同步。本地 18 套全绿。

影响范围:agent_swarm(orchestrator + 新模块 + 测试 + docs + CI)。不改 Manager↔Swarm 事件契约
(新事件均为运行时内部状态/遥测,不进 HM 注册表);不影响 Client/计费/密钥/审计/发布链路。
无新增长期开关。

诚实边界:不动 benchmark 验收(G_E 仍需真实 run,#13);convergence 暂为解释性(不强制覆盖
run.status);前端可见状态为跨端(#18);「去中心化是否更优」未证(需 Group C)。

#6 的 DoD(Path B 决策 + 定位文档)本 PR 已满足并实现 Path B → 关闭 #6。
#7/#8/#11/#12 的运行时机制已落地(事件 + e2e),但其 DoD 含前端可见状态(跨端 #18)与
多 Agent 回放,故以 Refs 链接、不自动关闭,留维护者在前端/验收就绪后关闭。

Closes #6
Refs #7
Refs #8
Refs #11
Refs #12
Refs #18

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-10 16:11:47 +08:00

30 lines
4.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 蜂群定义差距分析(Swarm Definition Gap)
> 状态:**现状差距分析**。逐条比对 heicodeDocs「弱中心蜂群」定义与本仓**当前 Master 中心化实现**,引用具体文件/行号,并标注每条差距由哪个工单(#7/#8/#9/#11/#12)关闭。回应工单 #6。
>
> 配套:[`product-positioning.md`](./product-positioning.md)、[README.md](../README.md) 能力边界表、[`benchmark/decision-engine.md`](./benchmark/decision-engine.md)、[`benchmark/IMPORTANT-metric-coverage-gaps.md`](./benchmark/IMPORTANT-metric-coverage-gaps.md)。
>
> 标准源声明:heicodeDocs 为唯一标准源。本文引用的「弱中心蜂群」四要素(共享态势感知 / 自主生成·竞争任务 / peer 交叉评审 / 自组织收敛)若与 heicodeDocs 表述存在歧义,以 heicodeDocs 为准;如发现文档与代码冲突,按 CLAUDE.md 要求输出冲突点,不自行选边。
## 1. 一句话差距
heicodeDocs 期望 Agent **自主感知共享态势、竞争/认领任务、互相交叉评审、自组织收敛**;本仓所有这些决策点目前都**集中在单一主控 + 中心编排循环**:Agent 是被动接收任务的执行单元,不感知全局态势,不竞争任务,不互评,收敛由中心评审单点裁决。
## 2. 差距对照表
| # | 弱中心蜂群定义(heicodeDocs) | 本仓当前实现(中心化) | 证据(文件:行) | 差距 | 关闭工单 |
|---|---|---|---|---|---|
| G1 | Agent **感知共享态势/全局状态**,据此自主行动 | Agent 仅被动收 `task_assignment`;全局态势由编排器在派发时单向注入上下文,Agent 无共享态势视图 | `orchestrator/main.py:361-366`(单向下发)、`main.py:186-222` `build_dispatch_context`(中心注入依赖产物/peer 信息)、`master_agent.py:1-17`(认知集中于 master) | Agent 无共享态势感知,无法据全局自主决策 | #11 |
| G2 | Agent **自主生成/竞争任务**(任务由群体涌现,非中心下发) | 任务由中心生成:Manager 分工优先,否则单一 planner 回退(静态/LLM 计划),Agent 不生成任务 | `orchestrator/planner.py:62-85`(静态计划)、`planner.py:87-116` `build_plan`、`master_agent.py:35-39` `plan` | 任务来源中心化,无群体涌现/竞争 | #7 |
| G3 | Agent **竞争认领**就绪任务(多 Agent 对同一任务竞标/抢占) | 中心派发循环按到达顺序遍历空闲 Agent,对每个 Agent 取能力匹配的第一个就绪任务;非 Agent 主动竞争 | `orchestrator/main.py:290-332` `task_dispatch_loop`、`task_queue.py:114-138` `get_ready_pending_task`、`task_queue.py:181-186` `can_agent_run_task`(能力子集匹配) | 单边、中心驱动的能力子集匹配,无双边竞争 | #8、#9 |
| G4 | **peer 交叉评审**(Agent 之间互评结果,质量由群体判定) | 评审为中心化单点裁决:master 调 planner.review 给出 accepted/retry_tasks;peer 间仅消息路由协作,不互评质量 | `orchestrator/planner.py:118-171` `review`、`master_agent.py:41-53` `review_and_decide`、`docs/peer-communication-logistics.md`(peer 仅协作非互评) | 质量裁决单点中心化,无 peer 交叉评审 | #12 |
| G5 | **自组织收敛**(群体在无中心调度下趋于终态) | 收敛由中心驱动:评审不达标→中心 `reopen_task` 重开,受 `MAX_REVIEW_CYCLES` 中心上限约束;终态由编排器刷新判定 | `orchestrator/task_queue.py:398-423` `reopen_task`、`orchestrator/main.py:376+` `refresh_swarm_run_status`、`planner.py:118-171`(中心裁决驱动循环) | 收敛逻辑中心化,非群体自组织 | #11、#12 |
> 注:`ENABLE_ACO_DISPATCH`(`main.py:309-328`)开启时引入 τ/η/P 概率派发,但仍是**中心循环按到达顺序对单个 Agent 采样候选任务**(Option A 单边),不构成 Agent 间竞争或去中心;学习常开但选择门控(见 `benchmark/decision-engine.md`)。它**不关闭** G3 的双边竞争差距。
## 3. 结论
- 上述 G1–G5 共同构成工单 #6 所指「实现仍为 Master 中心化、与弱中心蜂群定义不一致」的具体证据。
- 每条差距的关闭归属对应工单(#7/#8/#9/#11/#12);是否推进、以及按 Path A / Path B 哪条路径处理,属 ARB 决策,见 [`product-positioning.md`](./product-positioning.md) §4。
- 在差距关闭并经对应验收前,对外文档**不得宣称**本仓已是弱中心蜂群(组织规则 #9,不伪造已实现能力)。