Files
fengqun/docs/JUEJIN_SWARM_ARTICLE_TEST_STANDARD.zh-CN.md
T
gongzhiyongandOmX fc877dad24 Move remaining docs into docs index
Keep the repository root focused on README while moving the remaining planning and swarm test documents under docs/ and indexing them there.

Constraint: The user explicitly requested that documents should live under docs/.

Rejected: Leaving older root-level Markdown files in place | it keeps the homepage cluttered and splits the documentation surface.

Confidence: high

Scope-risk: narrow

Directive: Keep future ordinary documentation under docs/ unless it is a root entrypoint such as README.md.

Tested: git diff --cached --check; find . -maxdepth 1 -type f -name '*.md' shows only README.md.

Not-tested: No runtime tests rerun because this is a documentation path-only move.

Co-authored-by: OmX <omx@oh-my-codex.dev>
2026-05-16 14:39:32 +08:00

7.9 KiB
Raw Blame History

基于掘金《Agent 蜂群模式(Swarm)》的测试标准

依据文章:Agent 蜂群模式(Swarm)

本文档把该文章中的蜂群定义、核心特征、执行流程、通信机制、系统组件和监控指标,转换成 swarm-minimal 的测试标准。后续判断“像不像蜂群”,以本文档为主;LangGraph Swarm 只作为 handoff 实现参考,不作为蜂群标准本身。

1. 文章核心定义

文章对 Agent 蜂群模式的核心定义可以归纳为:

每个 Agent 仅依据局部环境信息和简单规则进行决策,
通过信息素、消息广播或状态共享等方式间接通信,
最终在整体层面涌现出复杂、高效的智能行为。

因此,测试不能只看“多个模型被调用”或“最终有一个结果”。必须证明:

  1. Agent 有局部感知。
  2. Agent 有自主决策。
  3. Agent 通过共享环境间接协作。
  4. 单个 Agent 失败不破坏整体结果。
  5. 多个局部行为能产生整体收敛。
  6. 系统能观测收敛过程和关键指标。

2. 文章核心特征到测试项

编号 文章特征 测试标准 当前状态
J-SW-01 去中心化 Task Orchestrator 只能注入初始任务,不能逐步命令每个 Agent 做什么;Agent 必须通过任务池和共享环境自主 claim/decide。 部分满足:当前 SwarmCoordinator 仍是中心循环,需继续弱化。
J-SW-02 自组织 Agent 根据任务池、信息素、共享状态自主形成执行顺序,而不是固定链路。 部分满足:已有 pheromone claim 测试,但 live 路径仍偏顺序。
J-SW-03 涌现性 多个局部弱信号聚合后,群体结果强于任一单个局部判断。 已有确定性测试 B02/C02。
J-SW-04 鲁棒性 单个 Agent 出错后,其他 Agent 继续完成,整体仍可收敛。 已有确定性测试 B01/C01。
J-SW-05 可扩展性 Agent 数量应能在 3-7 个范围内增减,任务池和环境结构不变。 待补规模测试。
J-SW-06 隐式协作 Agent 不通过中央指令直接串联,而通过信息素、共享状态、消息流协作。 部分满足:PostgreSQL/Redis/Blob live 闭环已有,隐式协作测试还需加强。

3. 文章执行流程到测试项

文章给出的执行循环是:

① 初始化 -> ② 感知 -> ③ 决策 -> ④ 交互与更新 -> ⑤ 收敛判断
未收敛则继续迭代,已收敛则输出结果。

对应测试标准:

阶段 测试标准 当前状态
初始化 创建 N 个 Agent、初始任务池、信息素地图、共享状态和终止条件。 已满足基础形态。
感知 每个 Agent 读取局部环境:可用任务、信息素、共享状态、上一轮摘要。 部分满足:代码有 shared_state 传入,但缺少显式 perceive() 抽象。
决策 Agent 基于感知结果选择任务、候选答案或 handoff 对象。 部分满足:claim 基于 capability/pheromone;缺少策略对象。
交互更新 Agent 完成动作后更新任务、信息素、共享状态、事件流。 已在 PG/Redis/Blob live 路径中实现基础闭环。
收敛判断 不能只是“取最高分”;应有阈值、margin、多轮或任务完成率判定。 已新增本地多轮共识收敛;尚未接入 Azure live 主路径。

4. 三种通信机制到测试项

文章列出的通信机制:

  1. 信息素通信(Stigmergy)
  2. 广播通信(Broadcast)
  3. 交接通信(Handoff)

对应标准:

机制 合格标准 当前状态
信息素通信 Agent 修改环境分数,后续 Agent 感知并调整选择概率或 claim 顺序。 已有 B03/C03 确定性测试;Redis sorted set 已承担 live score。
广播通信 Agent 的状态变化进入消息流,其他 Agent 可观察。 Redis Stream 记录事件,但尚未做“其他 Agent 消费广播后改变决策”的测试。
交接通信 Agent A 把上下文交给 Agent B,B 基于 payload 继续执行。 已有 B04 测试;但按文章它只是蜂群通信方式之一,不是唯一核心。

5. 系统组件到测试项

文章架构组件:

组件 文章职责 当前实现 / 缺口
Agent Pool 管理所有 Agent,每个 Agent 有状态、行为规则和通信接口。 目前是 Agent 列表;缺少状态生命周期和利用率统计。
Environment 任务池、信息素地图、共享状态、约束条件。 InMemorySwarmStore 和 PostgresRedisBlobSwarmStore 已有四资源模型。
Message Bus / Shared Memory 间接通信。 Redis Stream + PG shared_state 已有基础;消费侧测试不足。
Monitor / Logger 状态监控、收敛指标、性能日志。 缺少统一 metrics 报告。
Task Orchestrator 只注入初始任务,不参与调度,以保持去中心化。 当前 SwarmCoordinator 仍参与执行循环,需进一步改造。

6. 文章监控指标到测试项

文章列出的关键监控指标:

指标 文章含义 测试标准
收敛速度 达到目标质量所需迭代次数。 输出 rounds_to_converge,并验证小于最大轮数的 50% 或业务阈值。
Agent 利用率 每个 Agent 忙碌时间占比。 输出每个 Agent claim/complete 次数,目标 > 60% 仅适合压测,不适合小样本。
任务完成率 成功完成任务比例。 小样本应为 100%;故障注入场景应证明整体仍收敛。
平均响应时间 从任务提交到结果产出的时间。 live 路径需要记录每个 task started/completed 时间。
信息素分布 信息素浓度均匀程度,文章建议基尼系数 < 0.5。 待实现 pheromone Gini 计算和测试。

7. 当前测试结论,按文章标准重述

当前 swarm-minimal 已经证明:

  1. 有四类共享资源:任务池、信息素/得分、共享状态、结果收敛。
  2. 有真实 Azure-backed live 闭环:PostgreSQL、Redis、Blob、NewAPI。
  3. 有多模型调用和任务拆分。
  4. 有单 Agent 失败隔离的确定性测试。
  5. 有局部弱信号聚合为群体更优结果的涌现测试。
  6. 有信息素影响 claim 顺序的测试。
  7. 有 handoff 上下文连续性测试。
  8. 已新增本地多轮共识收敛,证明不是简单最高分选择。

但按文章标准,当前还不能说是完整蜂群系统,因为仍有缺口:

  1. SwarmCoordinator 仍偏中心循环,不够“无单一控制节点”。
  2. live 路径还没有真正的并发多 worker 自主 claim。
  3. Agent 缺少显式 perceive -> decide -> act 生命周期。
  4. Redis Stream 目前更多是日志/事件,不是已验证的广播决策输入。
  5. 多轮共识收敛还没接入 Azure PG/Redis/Blob 主路径。
  6. 缺少 Agent 利用率、响应时间、收敛速度、信息素 Gini 的统一 metrics。
  7. 缺少 3-7 Agent 扩缩容下的稳定性测试。

8. 后续实现优先级

按文章标准,下一步不是再堆安全测试,而是改造蜂群运行时:

  1. 把 Agent 拆成 perceive()、decide()、act() 三段。
  2. 把 SwarmCoordinator 降级为只初始化任务和停止条件。
  3. 引入 worker loop:每个 Agent 自主从任务池 claim。
  4. 把 Redis Stream 的事件变成 Agent 可消费的广播输入。
  5. 把多轮共识收敛接到 Azure live store。
  6. 增加 metrics:收敛轮数、任务完成率、Agent 利用率、平均响应时间、信息素 Gini。
  7. 增加 3、5、7 个 Agent 的扩缩容测试。

9. 严谨结论

当前原型已经覆盖文章中蜂群模式的部分关键性质:
鲁棒性、涌现性、信息素间接协作、共享环境和 handoff。

但它还不是完整意义上的文章式蜂群系统:
去中心化、自组织 worker loop、广播驱动决策、完整监控指标和 live 多轮收敛仍需补齐。