Files
fengqun/docs/ACADEMIC_STANDARD_TEST_REPORT.zh-CN.md
T
gongzhiyongandOmX d632fd9f64 Add report audit scenario
Extend the Agent standard matrix with a report-audit scenario so model input, output, handoff, and secret-safety evidence are tested instead of remaining narrative-only.

Constraint: The user requested another test pass and expanded Agent/swarm testing scenarios under docs/.

Rejected: Treating the model I/O report as untested documentation | it would leave the handoff and input/output evidence unguarded.

Confidence: high

Scope-risk: moderate

Directive: Keep model I/O reports under docs/ and redact secret-shaped values during export.

Tested: .venv/bin/python -u -B examples/run_standard_scenario_acceptance.py; .venv/bin/python -B -m unittest discover -s tests; .venv/bin/python -B -m py_compile swarm_minimal/*.py examples/*.py tests/*.py; .venv/bin/python -u -B examples/run_academic_standard_evaluation.py; git diff --check; docs secret-pattern scan.

Not-tested: Large-scale concurrent 3/5/7 worker load and external browser rendering were not run.

Co-authored-by: OmX <omx@oh-my-codex.dev>
2026-05-16 15:17:47 +08:00

8.3 KiB
Raw Blame History

学术化标准测试报告

对象: swarm-minimal 最小蜂群原型 日期: 2026-05-16 范围: 本地确定性测试、蜂群行为验收、传统 Agnet 对比、多轮共识、模型 I/O 报告审计、马尔可夫过程适配性判断

1. 已实现的场景测试

ID 场景 测试目的 证据入口
S01 静态编译 所有 Python 模块可编译,无语法错误 python3 -B -m py_compile swarm_minimal/*.py examples/*.py tests/*.py
S02 单元回归 内存蜂群闭环、Azure 资源边界、配置脱敏、NewAPI mock 行为 python3 -B -m unittest discover -s tests
S03 连续推理链路 每一步必须承接上一步 marker,断链必须失败 tests/test_standard_scenarios.py
S04 依赖边界 MVP 不把 NATS/Cosmos 当成必需依赖 tests/test_standard_scenarios.py
S05 最终收敛评分 最终 STEP-07 输出必须优于中间步骤 tests/test_standard_scenarios.py
S06 失败注入 失败任务要标记失败、产生负信息素,其他任务仍可收敛 tests/test_standard_scenarios.py
S07 live Azure/NewAPI 连续推理 真实连接 Azure PostgreSQL、Redis、Blob 和 NewAPI,跑 7 步连续推理链 examples/run_continuous_reasoning_acceptance.py
S08 模型 I/O 报告审计 验证报告包含场景、输入、输出、接手证据,且无明显真实密钥样式 tests/test_model_io_report_audit.py
B01 单 Agnet 故障隔离 一个 Agnet 崩溃不导致整体失败 tests/test_swarm_behavior_academic.py
B02 群体涌现 多个弱局部信号通过共享状态聚合成更强整体结果 tests/test_swarm_behavior_academic.py
B03 信息素间接协作 信息素影响任务 claim 顺序并形成正反馈 tests/test_swarm_behavior_academic.py
B04 handoff 连续性 active agent、目标 agent、payload 在交接中保留 tests/test_swarm_behavior_academic.py
C01-C04 传统 Agnet 对比 和单路线/FIFO/无共享状态/无上下文 handoff 的基线比较 examples/run_swarm_vs_traditional_benchmark.py
M01-M03 马尔可夫过程适配性 判断当前实现是马尔可夫式状态机,但不是严格 MDP tests/test_markov_process_properties.py

2. 测试标准来源

本项目没有使用“某一个 Agnet 认证标准”,因为行业目前还没有统一答案。当前采用 AGENT_SWARM_QUALITY_STANDARD.zh-CN.md 中定义的 AQS / SW-AQS v1:以行业 Agent 风险框架为参考,配置本项目自己的 Agent 和蜂群 Agent 质量标准。

来源 本项目采用方式
NIST AI RMF 1.0 Govern / Map / Measure / Manage 的 Agent 风险管理结构
NIST AI 600-1 生成式 AI 的幻觉、隐私、信息安全、组件集成、预部署测试和事件披露
OWASP LLM Top 10 prompt injection、敏感信息泄露、过度代理、不安全输出处理、过度信任
OWASP Agentic Skills Top 10 Agent 技能/工具执行层的权限、隔离、审计、运行时安全
MITRE ATLAS AI 攻击/误用视角下的失败、越权、诱导和异常场景
OpenTelemetry Agent 过程的 traces、metrics、logs、events 和 artifact 证据
LangGraph handoff 参考 transfer_to_<agent>、active-agent 路由和上下文传递语义
蜂群模式归纳标准 去中心化、自组织、局部感知、间接协作、涌现、鲁棒性和收敛
Markov property 定义 给定当前状态后,未来状态不再依赖历史路径

py_compile 和 unittest 只作为证据采集工具,不作为最终质量标准本身。完整链接在 swarm_minimal/academic_evaluation.py 的 ACADEMIC_STANDARD_SOURCES 中维护。

3. 测试过程

本地确定性验收按以下顺序执行:

python3 -B -m py_compile swarm_minimal/*.py examples/*.py tests/*.py
python3 -B -m unittest discover -s tests
python3 -u -B examples/run_swarm_behavior_acceptance.py
python3 -u -B examples/run_swarm_vs_traditional_benchmark.py
python3 -u -B examples/run_consensus_convergence_acceptance.py
python3 -u -B examples/run_academic_standard_evaluation.py

完整标准矩阵还包含 S07 live 场景和 S08 模型 I/O 报告审计:

python3 -u -B examples/run_standard_scenario_acceptance.py

S07 需要本地被 git 忽略的 .env,其中包含 Azure PostgreSQL、Redis、Blob 和 NewAPI 测试凭据。脚本优先读取项目根目录 .env,没有时读取 examples/.env。没有可用 .env 时,本地确定性门禁可以通过,但完整标准化验收不能判定为通过。

4. 本轮实际执行结果

命令 本轮结果 说明
python3 -B -m py_compile swarm_minimal/*.py examples/*.py tests/*.py PASS 无输出,表示所有模块编译通过
python3 -B -m unittest discover -s tests PASS 28 个测试通过
python3 -B -m unittest tests.test_markov_process_properties PASS 3 个马尔可夫适配性测试通过
python3 -B -m unittest tests.test_model_io_report_audit PASS 2 个模型 I/O 报告审计测试通过
python3 -u -B examples/run_swarm_behavior_acceptance.py PASS B01-B04 全部通过
python3 -u -B examples/run_swarm_vs_traditional_benchmark.py PASS 蜂群总归一化分 0.9175,传统基线 0.1958,ratio 4.69
python3 -u -B examples/run_consensus_convergence_acceptance.py PASS 2 轮收敛,接受 lease_based_pg_queue
python3 -u -B examples/run_academic_standard_evaluation.py PASS A01-A05 本地学术化门禁全部通过,检测到 examples/.env 可用于 live 测试
python3 -u -B examples/run_standard_scenario_acceptance.py PASS S01-S08 全部通过;S07 完成 7 个 live 任务,12 个检查无失败,S08 报告审计通过

最新 S07 live 证据:

{
  "run_id": "04c641d170fe4ea7aa3d882d9df37cca",
  "completed_tasks": 7,
  "accepted_score": 1.0,
  "selected_models": [
    "deepseek-v4-flash",
    "claude-haiku-4-5-20251001",
    "claude-sonnet-4-6"
  ],
  "failed_checks": [],
  "check_count": 12,
  "artifact_path": "swarm-runs/04c641d170fe4ea7aa3d882d9df37cca/result.json"
}

5. 达标判定

门禁 当前结论
本地学术化门禁 A01-A05 可通过
标准矩阵 S01-S06 可通过
标准矩阵 S07 live Azure/NewAPI 已通过
标准矩阵 S08 模型 I/O 报告审计 已通过
生产级标准化验收 当前最小标准已满足

结论:当前项目已经具备可执行的标准化测试,且本地确定性蜂群行为测试与真实 Azure/NewAPI live 集成测试均已通过。该结论限定在本仓库定义的最小蜂群标准矩阵内,不等同于大规模生产压测或第三方认证。

6. 算法清单

算法 / 机制 位置 说明
能力匹配任务 claim InMemorySwarmStore.claim_next Agnet 只领取能力匹配的 pending 任务
信息素排序 InMemorySwarmStore.claim_next pending 任务按 pheromone score 从高到低排序
正/负反馈更新 complete_task / fail_task 成功加分,失败扣分
最高分收敛 converge 在完成任务中选择最高 score 作为最终输出
多轮加权共识 ConsensusSwarm.run 按 agent weight 和 confidence 累积分数
分数蒸发 ConsensusSwarm._evaporate_scores 每轮按 evaporation 衰减历史候选分
动态模型发现 discover_newapi_models 从 NewAPI 兼容端点发现模型
去重模型选择 select_distinct_models 多 Agnet 测试时选择不同模型

7. 马尔可夫过程结论

当前实现满足“工程意义上的马尔可夫式状态机”:

  • 如果把 tasks、pheromones、shared_state、observations、agent policy 和共识轮次一起视为完整当前状态,则下一步 claim、score 更新和收敛选择只依赖当前状态。
  • 新增测试 tests/test_markov_process_properties.py 验证了等价当前任务/信息素状态下,不同历史路径会得到相同 claim 与 score 更新。

但它不满足严格数学意义的 Markov process / Markov Decision Process:

  • 没有定义状态转移概率核 P(s_next | s_current)。
  • 没有正式 action space、reward function 和策略优化目标。
  • UUID、时间戳、外部 NewAPI/LLM 调用没有建模为随机变量。
  • 部分输出保留历史观测作为审计证据,这属于工程可追溯性,不是形式化随机过程。