更新说明书及决赛演示材料
MAC-Comm(Multi-Agent Collaboration Communication)是一个面向多智能体协作的研究型原型系统。项目关注多个 Agent 在复杂工作流中如何交换任务、共享中间状态、复用记忆,并让这些过程可观测、可验证、可回退。
本 README 是评审和本地复现的主入口。无 GPU 时可以运行 mock 编排、协议和通信实验;有本地 GPU 和模型时可以运行真实模型实验。
MAC-Comm 将多 Agent 协作拆分为控制面、状态数据面和记忆持久面:
Envelope
StatePointer
MemoryUnit
StateMemoryStore
项目不把 embedding、latent 或 KV 当作可逆的全文表示;接收端需要精确内容时,系统可以回退到 SSC、Artifact 或文本通道。
项目适用于需要多个角色协同完成、且中间结果规模较大或需要复用的任务,例如:
REQUEST
INFORM
QUERY
PROPOSE
CONFIRM
REJECT
UPDATE
G2CPAdapter
ProcessStateBridge
Agentos/ ├── src/macc/ # 系统源代码 │ ├── agents/ # Agent 和角色工厂 │ ├── protocol/ # Envelope、G²CP、序列化和总线 │ ├── runtime/ # Workflow、ContextManifest、多进程运行时 │ ├── state/ # Artifact、共享状态、KV 和状态桥接 │ ├── memory/ # MemoryStore、Chroma、StateMemoryStore │ ├── models/ # HuggingFace provider 和模型适配 │ └── experiments/ # 实验 harness、分析和指标 ├── src/config/ # Agent、Workflow、模型和记忆配置 ├── src/docs/ # 架构、协议和部署说明 ├── tests/run_all.py # 统一运行入口 ├── tests/README.md # 实验与测试说明 ├── tests/results/ # 本地实验输出和已保存结果 ├── demo/ # 网页前端、演示工作区和服务测试 ├── pyproject.toml # Python 包及可选依赖定义 └── requirements.txt # 兼容安装方式的依赖列表
pyproject.toml
基础依赖记录在 pyproject.toml,包括:
openai, pydantic, pyyaml, python-dotenv, rich, numpy, msgpack
可选依赖组包括:
test pytest metadata plyvel layout cstruct experiments chromadb, transformers, accelerate, wasmtime, pyzmq
推荐使用虚拟环境安装:
cd Agentos python3.11 -m venv .venv source .venv/bin/activate python -m pip install --upgrade pip python -m pip install -e '.[test]' # 需要真实模型、Chroma 或 WASM 时: python -m pip install -e '.[test,experiments]'
如果本机尚未安装 PyTorch,请根据本机 CPU/CUDA 环境从 PyTorch 官方渠道安装匹配版本,再安装项目实验依赖。不要盲目复制某一台实验机器的 CUDA 安装命令。
本项目是 Python 源码项目,不需要单独编译主程序。推荐的构建/安装步骤如下:
cd Agentos python3.11 -m venv .venv source .venv/bin/activate python -m pip install --upgrade pip setuptools python -m pip install -e '.[test]'
安装后检查导入和命令入口:
PYTHONPATH=src python -c 'import macc; print(macc.__file__)' PYTHONPATH=.:src python -m tests.run_all --help
若只进行无模型验证,不需要下载 Qwen 或 embedding 权重。运行真实模型时,应在配置文件或环境变量中设置模型路径;默认配置可查看 src/config/models.yaml。
src/config/models.yaml
以下命令均从 /Agentos 目录执行,输出目录可以替换为任意有写权限的本地路径。
/Agentos
PYTHONPATH=.:src python -m tests.run_all \ --mock --suite paper --mode single --repeats 1 \ --output-dir /tmp/macc-paper-mock
该命令验证工作流编排、条件执行、结果落盘和分析链路,不代表真实模型质量、GPU 性能或论文结论。
确认模型配置和本地 GPU 可用后运行:
PYTHONPATH=.:src python -m tests.run_all \ --suite paper --mode single --repeats 1 \ --output-dir /tmp/macc-paper-real
多进程模式为:
PYTHONPATH=.:src python -m tests.run_all \ --suite paper --mode multiprocess --repeats 1 \ --output-dir /tmp/macc-paper-multiprocess
多进程运行需要本机支持 Python spawn、独立 Worker 和相应的模型显存;它不要求特定调度器,但资源需求通常高于 mock 或单进程运行。
spawn
# JSON/MessagePack、Pipe、Queue、loopback TCP 和共享状态通信 PYTHONPATH=.:src python -m tests.run_all --experiment communication --output-dir /tmp/macc-communication # 状态发布、字段/block 选择性读取和物化 PYTHONPATH=.:src python -m tests.run_all --experiment state --output-dir /tmp/macc-state # Logical TCP 状态同步、ACK 和恢复事件 PYTHONPATH=.:src python -m tests.run_all --experiment logical --output-dir /tmp/macc-logical
不启动模型即可分析已保存的当前结果:
PYTHONPATH=.:src python -m tests.run_all --analyze --output-dir tests/results/paper/current
若需要把生成的第四章写入仓库外的项目说明书,可在本机自行指定有写权限的相对路径:
PYTHONPATH=.:src python -m tests.run_all --analyze \ --output-dir tests/results/paper/current \ --chapter-file ../项目说明文档.md
cd Agentos source .venv/bin/activate PYTHONPATH=src python -m pytest -q
项目当前自动化 Python 测试主要位于 tests/service/;完整测试命令会自动收集仓库中可用测试。
tests/service/
若已安装 Node.js:
PYTHONPATH=src python -m pytest tests/service -q node --check demo/visualization/app.js node tests/service/test_frontend.js bash -n demo/start_frontend.sh src/scripts/start_remote_tunnel.sh
网页静态前端可以本地启动:
bash demo/start_frontend.sh
打开 http://127.0.0.1:8765/。仅启动静态页面不会自动启动模型 API;需要真实服务时请按照 src/macc/service/ 的入口和本地模型配置启动后端。
http://127.0.0.1:8765/
src/macc/service/
已保存结果位于:
tests/results/paper/current/raw/ tests/results/paper/current/tables/ tests/results/paper/current/figures/
分析脚本会校验原始 JSONL 与 audit 中的 SHA-256。不要把历史目录、临时输出或不同运行条件混合到 current/ 中。
current/
src/docs/ARCHITECTURE.md
src/docs/PROTOCOL.md
src/docs/DEPLOYMENT.md
tests/README.md
tests/results/paper/current/
tests/run_all.py
项目主要创新说明.md
项目使用的第三方库、模型和可选组件以 pyproject.toml、requirements.txt 及各自的官方许可为准。Qwen 模型、Transformers、ChromaDB、MessagePack、Wasmtime 等不属于本项目原创代码;发布或再分发前应分别核对其模型卡、许可证和使用条件。
requirements.txt
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
MAC-Comm:多智能体低开销协作系统
MAC-Comm(Multi-Agent Collaboration Communication)是一个面向多智能体协作的研究型原型系统。项目关注多个 Agent 在复杂工作流中如何交换任务、共享中间状态、复用记忆,并让这些过程可观测、可验证、可回退。
本 README 是评审和本地复现的主入口。无 GPU 时可以运行 mock 编排、协议和通信实验;有本地 GPU 和模型时可以运行真实模型实验。
1. 项目简介
MAC-Comm 将多 Agent 协作拆分为控制面、状态数据面和记忆持久面:
Envelope、G²CP performative 和任务元数据表达请求、结果、查询、确认、状态更新等协作语义;StatePointer引用文本制品、Semantic State Capsule、embedding、hidden state、KV handle 和共享状态,避免把大对象直接塞进控制消息;MemoryUnit、StateMemoryStore和可选 Chroma 索引保存摘要、全文 Artifact、标签和状态指针;项目不把 embedding、latent 或 KV 当作可逆的全文表示;接收端需要精确内容时,系统可以回退到 SSC、Artifact 或文本通道。
2. 应用场景
项目适用于需要多个角色协同完成、且中间结果规模较大或需要复用的任务,例如:
3. 主要功能
3.1 结构化通信
Envelope统一消息封皮,包含消息类型、源/目标 Agent、任务 ID、payload、状态指针和 metadata;REQUEST、INFORM、QUERY、PROPOSE、CONFIRM、REJECT、UPDATE,并可通过G2CPAdapter与 Envelope 双向转换;3.2 多层状态传递
ProcessStateBridge支持完整状态、字段选择和 block 选择,并产生实际消费回执。3.3 多 Agent 运行时
3.4 跨任务记忆
MemoryUnit保存摘要、任务主题、来源 Agent、标签、重要性和记忆 ID;StateMemoryStore将摘要索引与完整 Artifact、semantic pointer 关联;4. 目录结构
5. 系统环境
5.1 最小环境:mock、协议和本地微基准
pyproject.toml声明最低为 3.11);5.2 真实模型环境
5.3 可选依赖环境
6. 依赖要求
基础依赖记录在
pyproject.toml,包括:可选依赖组包括:
推荐使用虚拟环境安装:
如果本机尚未安装 PyTorch,请根据本机 CPU/CUDA 环境从 PyTorch 官方渠道安装匹配版本,再安装项目实验依赖。不要盲目复制某一台实验机器的 CUDA 安装命令。
7. 构建与安装
本项目是 Python 源码项目,不需要单独编译主程序。推荐的构建/安装步骤如下:
安装后检查导入和命令入口:
若只进行无模型验证,不需要下载 Qwen 或 embedding 权重。运行真实模型时,应在配置文件或环境变量中设置模型路径;默认配置可查看
src/config/models.yaml。8. 运行方法
以下命令均从
/Agentos目录执行,输出目录可以替换为任意有写权限的本地路径。8.1 最小 mock 运行
该命令验证工作流编排、条件执行、结果落盘和分析链路,不代表真实模型质量、GPU 性能或论文结论。
8.2 本地真实模型运行
确认模型配置和本地 GPU 可用后运行:
多进程模式为:
多进程运行需要本机支持 Python
spawn、独立 Worker 和相应的模型显存;它不要求特定调度器,但资源需求通常高于 mock 或单进程运行。8.3 独立机制实验
8.4 分析已有结果
不启动模型即可分析已保存的当前结果:
若需要把生成的第四章写入仓库外的项目说明书,可在本机自行指定有写权限的相对路径:
9. 测试方法
9.1 单元和集成测试
项目当前自动化 Python 测试主要位于
tests/service/;完整测试命令会自动收集仓库中可用测试。9.2 服务和网页演示测试
若已安装 Node.js:
网页静态前端可以本地启动:
打开
http://127.0.0.1:8765/。仅启动静态页面不会自动启动模型 API;需要真实服务时请按照src/macc/service/的入口和本地模型配置启动后端。9.3 结果审计
已保存结果位于:
分析脚本会校验原始 JSONL 与 audit 中的 SHA-256。不要把历史目录、临时输出或不同运行条件混合到
current/中。10. 已知限制
11. 主要文档和代码入口
src/docs/ARCHITECTURE.md:系统架构和组件边界;src/docs/PROTOCOL.md:Envelope、StatePointer 和 G²CP 协议;src/docs/DEPLOYMENT.md:本地安装、运行和排错;tests/README.md:实验入口、结果目录和审计规则;tests/results/paper/current/:已保存机制基准和端到端结果;tests/run_all.py:所有实验的统一命令入口;项目主要创新说明.md:三项主要创新与代码、验证证据的对应关系。12. 许可与第三方组件
项目使用的第三方库、模型和可选组件以
pyproject.toml、requirements.txt及各自的官方许可为准。Qwen 模型、Transformers、ChromaDB、MessagePack、Wasmtime 等不属于本项目原创代码;发布或再分发前应分别核对其模型卡、许可证和使用条件。