chore: 更新初赛作品压缩包文件名
本项目面向赛题「一种面向多智能体协作的低开销通信、状态传递与共享记忆机制」。系统重点不是简单串联多个大模型调用,而是实现一套可运行、可对比、可复现实验验证的多 Agent 协作基础设施。
multi_agent_system/protocol/binary_serializer.py
multi_agent_system/state_transfer/hidden_state.py
multi_agent_system/memory/hybrid_retriever.py
multi_agent_system/protocol/p2p_bus.py
multi_agent_system/state_transfer/delta_encoder.py
multi_agent_system/memory/forgetting.py
action
params
result
capabilities
context_refs
memory_hints
state_vector/shm_state
RuntimeContextStore
ctx_*
protocol
text
openeuler/openeuler:24.03-lts-sp3
agent-test/ ├── multi_agent_system/ │ ├── agents/ # Planner / Retriever / Executor / Summarizer │ ├── memory/ # SQLite + FAISS 共享记忆 │ ├── metrics/ # 指标收集、报告、Markdown/SVG 工件 │ ├── protocol/ # 结构化消息、紧凑序列化、上下文引用、能力发现 │ ├── state_transfer/ # embedding + 共享内存状态传递 │ ├── orchestrator.py # 多 Agent 调度器 │ └── sandbox.py # 轻量 CodeAct 沙箱 ├── experiments/ # A/B/C 三组关联连续任务 ├── tools/ │ ├── smoke_check.py # 离线冒烟测试 │ ├── acceptance_check.py # 离线验收检查 │ ├── demo_features.py # 六大特性完整演示 │ ├── openeuler_verify.sh # 容器内 openEuler 逐项验证 + 证据落盘 │ ├── verify_openeuler.ps1 # 宿主机:构建镜像并运行验证(Windows) │ ├── verify_openeuler.sh # 宿主机:构建镜像并运行验证(Linux/openEuler) │ └── render_report.py # 从 JSON 重新生成报告工件 ├── docs/ # 系统设计、实验报告、交付说明、演示脚本 ├── run_experiments.py # 实验入口 ├── Dockerfile # openEuler 24.03-LTS-SP3 容器 ├── requirements.txt └── TUTORIAL.md
用于确认代码完整、四类 Agent 都参与、状态传递和记忆复用链路可跑通。
cd D:\szxStudy\TestFile\agent-test $env:MAS_FAKE_LLM = "1" $env:MAS_FAKE_EMBEDDINGS = "1" python -B tools\smoke_check.py python -B tools\acceptance_check.py
成功标志:输出 SMOKE_OK 和 ACCEPTANCE_OK。验收脚本还会打印 state_vectors_consumed(接收端真正消费的状态向量数)和 controlled_savings_vs_nl_pct(受控同信息通信节省)。
SMOKE_OK
ACCEPTANCE_OK
state_vectors_consumed
controlled_savings_vs_nl_pct
cd D:\szxStudy\TestFile\agent-test $env:MAS_FAKE_LLM = "1" $env:MAS_FAKE_EMBEDDINGS = "1" python -B tools\demo_features.py
tools/demo_features.py 离线、确定性、无需任何 Key,逐段演示所有六大特性:
tools/demo_features.py
结尾打印 DEMO_FEATURES_OK。
DEMO_FEATURES_OK
详细报告见 results/final_report.summary.md 和 results/final_report.json。
results/final_report.summary.md
results/final_report.json
正式实验需要设置模型接口。下面以 DeepSeek OpenAI-compatible 接口为例:
conda activate torch_env cd D:\szxStudy\TestFile\agent-test $env:OPENAI_API_KEY = "你的 API Key" $env:OPENAI_BASE_URL = "https://api.deepseek.com/v1" $env:LLM_MODEL = "deepseek-v4-flash" python run_experiments.py --mode both --rounds 10 --save-report
成功后会在 results/ 下生成一组带时间戳的报告:
results/
report_<timestamp>.json
report_<timestamp>.summary.md
report_<timestamp>.charts.svg
报告里的 metadata.offline_fake_llm=false 才代表真实模型运行。当前提交主证据已整理为 results/final_report.json、results/final_report.summary.md 和 results/final_report.charts.svg。
metadata.offline_fake_llm=false
results/final_report.charts.svg
# 完整双模式对比(推荐) python run_experiments.py --experiment all --mode both --rounds 10 --save-report # 多次 repeat,用于方差和 95% CI python run_experiments.py --experiment all --mode both --rounds 10 --repeat 3 --save-report # 冷启动记忆库,验证从空记忆逐步积累 python run_experiments.py --experiment all --mode both --rounds 10 --memory-profile cold --save-report # 消融:禁用共享记忆 python run_experiments.py --mode protocol --rounds 1 --variant no-memory --save-report # 消融:禁用状态传递 python run_experiments.py --mode protocol --rounds 1 --variant no-state --save-report # 消融:禁用共享内存,强制 inline 向量 python run_experiments.py --mode protocol --rounds 1 --variant no-shm --save-report # 从已有 JSON 重新生成 Markdown/SVG python tools\render_report.py results\final_report.json
一键验证(推荐)——构建镜像、在容器内逐项检查、把证据日志写回宿主机 results/:
# Windows 宿主(先启动 Docker Desktop,等待 "Engine running") powershell -ExecutionPolicy Bypass -File tools\verify_openeuler.ps1 # 网络慢可加国内 pip 源;只验证 openEuler 门槛、想跳过 torch 可加 -Minimal: powershell -ExecutionPolicy Bypass -File tools\verify_openeuler.ps1 -PipIndexUrl https://pypi.tuna.tsinghua.edu.cn/simple -Minimal
# Linux / openEuler 宿主 bash tools/verify_openeuler.sh PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple MINIMAL=1 bash tools/verify_openeuler.sh
成功标志:终端与 results/openeuler_verification.log 出现 VERIFY_OK,日志含 openEuler 24.03 (LTS-SP3)、compileall 无错误、OPEN_EULER_OK、SMOKE_OK、ACCEPTANCE_OK。
results/openeuler_verification.log
VERIFY_OK
openEuler 24.03 (LTS-SP3)
compileall
OPEN_EULER_OK
-Minimal/MINIMAL=1 用 requirements-min.txt(不含 torch),离线验证完全跑通且构建快很多; 默认全量构建会装 sentence-transformers/torch,用于证明真实 embedding 也能在 openEuler 上安装。
-Minimal
MINIMAL=1
requirements-min.txt
手动分步验证(等价):
docker build -t multi-agent-system:oe2403 . docker run --rm multi-agent-system:oe2403 cat /etc/os-release docker run --rm multi-agent-system:oe2403 python3 -B -m compileall multi_agent_system experiments run_experiments.py tools docker run --rm -e MAS_FAKE_LLM=1 -e MAS_FAKE_EMBEDDINGS=1 multi-agent-system:oe2403 python3 -B tools/acceptance_check.py
multi_agent_system/agents/
planner.py
retriever.py
executor.py
summarizer.py
multi_agent_system/protocol/messages.py
multi_agent_system/protocol/handshake.py
orchestrator.py
run_experiments.py --mode text/protocol/both
multi_agent_system/state_transfer/embedding.py
shm_transport.py
agents/summarizer.py
memory.semantic_neighbors
metrics/collector.py::_text_equiv_chars
controlled_communication_comparison
multi_agent_system/memory/store.py
search_by_tag
experiments/experiment_a.py
experiment_b.py
experiment_c.py
multi_agent_system/metrics/collector.py
multi_agent_system/metrics/artifacts.py
multi_agent_system/sandbox.py
Dockerfile
tools/verify_openeuler.*
tools/openeuler_verify.sh
TUTORIAL.md
controlled_communication_comparison.token_savings_vs_nl_pct
total_cost_comparison.*
state_transfer.protocol.vectors_consumed_by_receiver
scorecard
offline_fake_llm=true
offline_fake_llm=false
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
多智能体协作系统
本项目面向赛题「一种面向多智能体协作的低开销通信、状态传递与共享记忆机制」。系统重点不是简单串联多个大模型调用,而是实现一套可运行、可对比、可复现实验验证的多 Agent 协作基础设施。
✨ 核心特性
1. 二进制MessagePack序列化
multi_agent_system/protocol/binary_serializer.py2. 隐藏状态特征传递
multi_agent_system/state_transfer/hidden_state.py3. BM25+FAISS混合精排
multi_agent_system/memory/hybrid_retriever.py4. P2P消息总线
multi_agent_system/protocol/p2p_bus.py5. Delta增量编码
multi_agent_system/state_transfer/delta_encoder.py6. Ebbinghaus遗忘曲线
multi_agent_system/memory/forgetting.py核心能力
action、params、result、capabilities、context_refs、memory_hints、state_vector/shm_state;支持握手与能力发现。RuntimeContextStore,消息只携带ctx_*句柄、计数和短字段,减少重复序列化。80B)替代完整向量(1.5KB)protocol和text两种模式,对比消息数、字符/token 估算、状态传递、耗时和记忆命中率。openeuler/openeuler:24.03-lts-sp3的 Dockerfile。目录结构
快速验证
用于确认代码完整、四类 Agent 都参与、状态传递和记忆复用链路可跑通。
成功标志:输出
SMOKE_OK和ACCEPTANCE_OK。验收脚本还会打印state_vectors_consumed(接收端真正消费的状态向量数)和controlled_savings_vs_nl_pct(受控同信息通信节省)。六大特性完整演示
tools/demo_features.py离线、确定性、无需任何 Key,逐段演示所有六大特性:结尾打印
DEMO_FEATURES_OK。实验结果概览
详细报告见
results/final_report.summary.md和results/final_report.json。运行正式实验
正式实验需要设置模型接口。下面以 DeepSeek OpenAI-compatible 接口为例:
成功后会在
results/下生成一组带时间戳的报告:report_<timestamp>.jsonreport_<timestamp>.summary.mdreport_<timestamp>.charts.svg报告里的
metadata.offline_fake_llm=false才代表真实模型运行。当前提交主证据已整理为results/final_report.json、results/final_report.summary.md和results/final_report.charts.svg。常用实验命令
openEuler Docker 验证
一键验证(推荐)——构建镜像、在容器内逐项检查、把证据日志写回宿主机
results/:成功标志:终端与
results/openeuler_verification.log出现VERIFY_OK,日志含openEuler 24.03 (LTS-SP3)、compileall无错误、OPEN_EULER_OK、SMOKE_OK、ACCEPTANCE_OK。手动分步验证(等价):
赛题要求对应
multi_agent_system/agents/,当前 4 个 Agentplanner.py、retriever.py、executor.py、summarizer.pymulti_agent_system/protocol/messages.pymulti_agent_system/protocol/handshake.py、orchestrator.pyrun_experiments.py --mode text/protocol/bothmulti_agent_system/state_transfer/embedding.py、shm_transport.pyagents/summarizer.py(attach 后喂入memory.semantic_neighbors)metrics/collector.py::_text_equiv_chars+controlled_communication_comparisonmulti_agent_system/memory/store.pysearch_by_tag、FAISSexperiments/experiment_a.py、experiment_b.py、experiment_c.pymulti_agent_system/metrics/collector.pymulti_agent_system/metrics/artifacts.pymulti_agent_system/sandbox.pytools/demo_features.pyDockerfile、tools/verify_openeuler.*、tools/openeuler_verify.sh、TUTORIAL.md报告解读提醒
controlled_communication_comparison.token_savings_vs_nl_pct是头条通信指标:同一条协议流水线上,同一份内容用结构化协议 vs 纯自然语言传输的 token 对比。它隔离了通信机制本身,不受 LLM 输出长度、流水线形态影响,因此是”相比纯文本协作的 token 节省”最严谨的口径。当前主报告为 **86.7%**(7.50× 压缩)。total_cost_comparison.*是独立端到端基线(两条独立流水线、含 LLM 输出)。协议流水线做的事更多(记忆复用、执行步、状态传递),所以端到端 token 不是同口径通信对比,仅作整体交叉验证。state_transfer.protocol.vectors_consumed_by_receiver:接收端真正把向量喂入 FAISS 检索的次数。scorecard是内部非官方自检,不代表评委打分,已在报告中明确标注 disclaimer。offline_fake_llm=true)用于证明机制可复现;正式成绩以offline_fake_llm=false的真实模型报告和 openEuler 复现结果为准。