目录

多Agent低开销通信、状态共享与记忆复用系统

第三届中国研究生操作系统开源创新大赛 · openEuler赛道

项目简介

针对当前多 Agent 系统以自然语言/JSON 为通信媒介导致的通信开销高、状态传输损耗大、经验无法复用三大问题,设计并实现了一套基于 gRPC + Protobuf + 共享内存 + 向量记忆的创新方案。

核心创新

创新点 技术方案 实测效果
结构化通信 Protobuf + gRPC 替代 JSON + HTTP 消息体积 -87.4%
零拷贝状态传输 Linux /dev/shm 共享内存句柄 传输时延 **-96.8%**,仅传 80B
向量记忆复用 Qdrant + bge-m3 经验积累 重复任务 Token -39.2%
CodeAct 安全沙箱 Docker 六重隔离执行 62 次执行零逃逸

快速开始

环境要求

  • openEuler 24.03-LTS-SP3 (或 WSL2)
  • Python 3.10+
  • Docker 24+
  • 8GB+ GPU 显存(可选,用于 LLM 推理)

一键安装

# 1. 进入项目目录
cd multi-agent-comm-system

# 2. 运行健康检查
bash scripts/health_check.sh

# 3. 创建虚拟环境并安装依赖
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

# 4. 编译 Protobuf
mkdir -p generated
python3 -m grpc_tools.protoc \
    -Iproto \
    --python_out=generated \
    --grpc_python_out=generated \
    proto/agent_comm.proto
touch generated/__init__.py

# 5. 设置环境变量
export PYTHONPATH="$PWD:$PWD/generated"

运行模式

# 交互式演示
python3 src/main.py

# 运行完整 Benchmark(10 个任务,双模式对比)
python3 src/main.py --benchmark

# 快速 Benchmark(5 个任务)
python3 src/main.py --quickbench

# 执行单个任务的双模式对比
python3 src/main.py --task "用 Python 实现快速排序" --mode both

# 仅结构化模式
python3 src/main.py --task "..." --mode structured

# 仅文本模式(Baseline)
python3 src/main.py --task "..." --mode text

# 启动为后台服务
python3 src/main.py --server

项目结构

├── proto/
│   └── agent_comm.proto          # Protobuf 协议定义
├── src/
│   ├── __init__.py
│   ├── config.py                 # 全局配置
│   ├── main.py                   # 主入口
│   ├── shared_memory.py          # 共享内存管理器 ★核创
│   ├── memory_store.py           # Qdrant 记忆存储 ★核创
│   ├── base_agent.py             # Agent 基类 + gRPC 框架
│   ├── planner.py                # Planner Agent
│   ├── executor.py               # Executor Agent
│   ├── summarizer.py             # Summarizer Agent
│   ├── codeact_sandbox.py        # CodeAct Docker 沙箱
│   ├── orchestrator.py           # 主编排器
│   └── benchmark.py              # Benchmark 框架
├── scripts/
│   ├── health_check.sh           # 环境校验
│   ├── install.sh                # 一键安装
│   ├── start.sh                  # 启动系统
│   └── stop.sh                   # 停止系统
├── docs/
│   ├── 概要设计说明书.md           # 概要设计(架构+模块+核心创新)
│   ├── 详细设计说明书.md           # 详细设计(接口+类图+时序图+配置)
│   ├── 实验报告.md                 # 实验报告(含关联任务+AB对照)
│   ├── 测试报告.md                 # 测试报告(用例+结果+复现步骤)
│   ├── 本地环境搭建指南.md         # 部署文档(WSL2 + 原生openEuler)
│   ├── 录屏脚本.md                 # 演示视频脚本
│   └── 交接文档.md                 # 环境修复与变更记录
├── tests/
│   ├── test_scenarios.py           # 场景测试 + 单元测试
│   ├── test_memory_reuse.py        # 记忆复用验证
│   └── test_correlated_tasks.py    # 关联任务实验 + A/B对照
├── generated/                     # 生成的 Protobuf 代码
├── requirements.txt
└── README.md

系统架构

┌──────────────────────────────────────────────────────┐
│                   Orchestrator (编排器)                │
│   ┌──────────┐    ┌──────────┐    ┌──────────────┐   │
│   │ Planner  │───▶│ Executor │───▶│ Summarizer   │   │
│   │ (规划器) │    │ (执行器) │    │ (总结归纳器) │   │
│   └────┬─────┘    └────┬─────┘    └──────┬───────┘   │
│        │               │                 │            │
│   ┌────▼───────────────▼─────────────────▼───────┐    │
│   │         gRPC + Protobuf 通信层               │    │
│   │    SharedMemoryManager 零拷贝状态传输        │    │
│   └─────────────────────────────────────────────┘    │
│   ┌─────────────────────────────────────────────┐    │
│   │      Qdrant 向量记忆库 (经验积累与复用)     │    │
│   └─────────────────────────────────────────────┘    │
│   ┌─────────────────────────────────────────────┐    │
│   │      CodeAct Docker 沙箱 (安全代码执行)     │    │
│   └─────────────────────────────────────────────┘    │
└──────────────────────────────────────────────────────┘

评分维度与对应实现

评分项 分值 对应实现 证据
通信效率 25分 Protobuf+gRPC、共享内存句柄,通信量-87.4% 实验报告 §4.1
状态传输创新 20分 SharedMemoryManager零拷贝、时延-96.8% 实验报告 §4.5, 详细设计 §7
记忆复用效果 20分 Qdrant向量检索、关联任务命中100% 实验报告 §4.4, §5
系统完备性 20分 4 Agent、动态注册、10+轮运行、Docker沙箱 测试报告 §3
实验验证 15分 Benchmark、双模式对比、关联任务、A/B对照 实验报告 §3-5

实验结果摘要

基于 10 项标准 Benchmark 任务、2 组关联性连续任务和 A/B 对照实验:

指标 文本模式 (Baseline) 结构化模式 (本系统) 改进
消息体积 (bytes/msg) 6,706 843 -87.4%
Embedding 传输 (bytes) 5,500 80 -98.5%
状态传输时延 (ms) 15.2 0.48 -96.8%
重复任务 Token 1,713 1,042 -39.2%
关联任务时延 基准 -28.4%
关联任务 Token 节省 基准 -39.6%
记忆命中率(关联) 0% 100% 从无到有

详细数据见 docs/实验报告.mddocs/测试报告.md

License

本项目为第三届中国研究生操作系统开源创新大赛参赛作品。

关于

本项目面向当前多智能体(Multi-Agent)系统中通信开销高、状态序列化损耗大、经验无法复用三大痛点,设计并实现了一套基于 gRPC + Protobuf + 共享内存 + 向量记忆 的低开销多 Agent 通信基础设施。

685.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号