目录

SyMA:面向多智能体协作的低开销通信、状态传递与共享记忆机制

第三届中国研究生操作系统开源创新大赛 · 应用创新赛道
目标环境:openEuler 24.03-LTS-SP3 · Python 3.10+

SyMA(Shared-memory Multi-Agent Runtime)是运行在 Linux/openEuler 用户态的多智能体协作运行时原型。它不把多 Agent 简化为若干大模型接口的顺序调用,而是从操作系统视角管理 Agent 的能力发现、任务调度、进程间通信、非文本状态对象、共享记忆及运行证据。

系统将协作链路拆分为三个相互独立的平面:

  • 结构化控制面:通过 Capability Broker、强类型消息和紧凑帧传递动作、参数、结果、能力及状态引用。
  • 非文本状态数据面:将 embedding.q8hidden_state.q8state_delta.q8 写入 mmap//dev/shm 对象存储,控制消息只传递 Handle 与 StateReceipt。
  • 共享记忆面:使用 SQLite、全文索引、标签、语义向量和负样本门控完成跨任务记忆存储、检索、复用与错误复用抑制。

Planner、Retriever、Executor、Summarizer 等 Agent 作为用户态工作进程运行;Broker 类似调度与 IPC 中枢;ObjectStore 类似共享对象空间;MemoryStore 负责长期状态沉淀。大模型 API 或本地开源模型属于可插拔的上层模型服务,并不是 SyMA 运行时本身。

交付物导航

交付物 入口
完整源码、测试与部署脚本 code/
最终实验与运行证据 实验/
项目说明书 操作系统开源创新大赛项目说明书.pdf
答辩 PPT 操作系统开源创新大赛PPT.pptx
演示视频 video.mp4
作品原创承诺书 操作系统开源创新大赛作品原创承诺书.pdf
部署文档 code/docs/deploy.md
系统设计 code/docs/design.md
实验说明 code/docs/experiment.md

系统组成

应用与模型服务
DeepSeek API / 本地开源模型 / RAG / CodeAct
                         │
                         ▼
SyMA Agent Runtime
TaskGraph ─ Broker ─ Capability Registry ─ Scheduler
                         │
          ┌──────────────┼──────────────┐
          ▼              ▼              ▼
   结构化控制面      非文本数据面       共享记忆面
 syma.control.v1   mmap / /dev/shm   SQLite + FTS5
 WorkOrder        ObjectStore       标签 + 语义向量
 WorkResult       Handle/Receipt    负样本门控
          └──────────────┼──────────────┘
                         ▼
              观测、评测与可复现证据
      trace.jsonl / metrics.csv / vector_audit.json

参考任务由不少于 4 类 Agent 组成:

角色 主要职责
Planner 拆解任务、生成依赖关系和状态需求
Retriever 检索证据、共享记忆和非文本语义状态
Executor 执行工具或受限 CodeAct 代码
Summarizer 汇总结果、生成结论并写回共享记忆
Capability Broker 握手注册、能力发现、协议映射、调度与故障切换

核心技术

1. 结构化低开销通信

syma.control.v1 使用长度前缀帧、紧凑字段码和非空字段编码。Agent 通过 HELLO 完成握手与能力注册,Broker 根据 action、状态格式、传输方式、优先级、并发上限和负载选择执行者。审计日志仍保留完整字段名,兼顾线上开销与可解释性。

2. 可消费的非文本状态

中间状态以 Q8 二进制对象写入 ObjectStore。完整 Handle 元数据保留在数据面,线上控制帧仅携带对象引用和鉴权信息。接收 Agent 校验对象边界、类型、形状、生命周期、ACL 与 SHA-256 后直接解引用;实验中的 Retriever 记录 query_text_used=false,证明检索阶段真实消费了向量状态,而不是在接收端重新转换为文本。

3. 可靠的共享记忆复用

每条记忆统一包含 memory_idsource_agentcreated_attopicsummarytags、向量和状态引用。检索采用关键词、标签、语义相似度、新鲜度与可信度融合排序;负样本门控拒绝冲突、过期、缺少证据或不适用的历史记忆,避免“相似但错误”的内容污染后续 Agent。

4. 面向 openEuler 的运行时与证据链

系统实现 Unix Domain Socket Broker、多 Worker 能力路由、断连失败回传、mmap//dev/shm 对象存储、SQLite 记忆库和统一评测工具。任务、消息、对象、记忆与指标均形成可追溯证据,可在相同任务集和固定随机种子下重复运行。

三种协作模式

模式 传递方式 用途
text Agent 间传递自然语言中间结果 传统纯文本协作基线
structured 结构化控制帧 + Q8 状态对象 + 共享记忆 SyMA 主实验模式
latent 本地模型隐藏状态量化后通过对象引用传递 非文本隐藏状态补充实验

主实验对比 textstructuredlatent 使用本地开源模型独立验证,不与主实验通信统计混合。

最终实验结果

主实验采用 15 个连续任务、2 种模式、3 次隔离重复,共形成 90 次任务运行。

指标 最终结果
text 带帧控制通信量 476,576 B
structured 控制帧通信量 154,060 B
控制面通信量下降 67.67%
计入对象写入后的生产端下降 36.48%
计入对象读写后的完整边界下降 5.28%
Q8 非文本状态传递 45 次 / 17,550 B
Retriever 非文本消费 45 次,query_text_used=false
共享记忆代理标签 TP=15,FP=0,FN=0,TN=12
正任务召回 15/15
带标签接受条目精确率 30/30
预期来源召回 30/36
对抗负样本误复用 0
UDS 多 Worker 请求 60/60,负载 20/20/20
openEuler 最终回归 64/64,零失败、零跳过

主实验冻结归档中的测试记录为 62/62;代码加入累计计数、原始 Q8 对象留存和严格打包检查后,最终源码在 openEuler 中独立回归为 64/64。最终回归用于证明代码兼容性,不回写冻结主实验的通信数据。

通信量按照三个边界分别报告,避免把控制帧节省直接表述成完整系统节省。固定微型任务中 structured 的实测墙钟高于 text,因此本项目不宣称当前原型已经获得端到端时延加速。

快速开始

核心运行时仅使用 Python 标准库。进入源码目录后即可执行:

cd code

python3 -m syma doctor --out runs/doctor.md
python3 -m unittest discover -s tests -v
python3 -m syma kernel-demo --out runs/kernel_demo
python3 -m syma ipc-relay-smoke --process --strict --out runs/ipc_relay.json
python3 -m syma ipc-benchmark --workers 3 --requests 60 --strict --out runs/ipc_benchmark.json
python3 -m syma run-eval --out runs/demo --repeats 3
python3 -m syma verify-artifacts --run-dir runs/demo

Linux/openEuler 一键验收:

cd code
sh scripts/run_p1_smoke.sh

运行单轮结构化多 Agent 任务:

cd code
python3 -m syma run-task \
  --mode structured \
  --query "设计 openEuler 上多 Agent 共享记忆与低开销通信验证方案" \
  --tags "openeuler,ipc,memory" \
  --out runs/manual

默认评测不需要安装本地大模型,也不需要调用外部 API。本地 hidden_state.q8 实验需要安装 code/requirements-gpu.txt 中的可选依赖,具体步骤见 code/docs/local_gpu_reproduction.md

实验证据

目录 内容
实验/01_openEuler主实验 冻结主实验、三次 A/B 重复、通信指标与 UDS 证据
实验/02_openEuler最终回归_64项 最终源码 64 项测试、45 个原始 Q8 对象及严格验收
实验/03_本地GPU_hidden_state 本地模型隐藏状态生成、Q8 量化、Handle 传递与消费
实验/04_DeepSeek真实API历史实验 脱敏后的真实 API 历史实验
实验/05_交互四轮会话 text、structured、latent 三模式交互展示记录

最终回归的 verification.mdvector_audit.jsonmetrics.csv 可用于快速核验主要结论。

目录结构

.
├── code/                         # 源码、测试、文档、任务集和部署脚本
├── 实验/                         # 主实验、最终回归、本地 GPU 与交互证据
├── 操作系统开源创新大赛项目说明书.pdf
├── 操作系统开源创新大赛PPT.pptx
├── 操作系统开源创新大赛 作品原创承诺书.pdf
├── video.mp4
└── README.md

环境与结论边界

  • 目标发行版验证环境为 WSL2 中安装的 openEuler 24.03-LTS-SP3,能够验证发行版用户态、Python、SQLite FTS5、mmap、/dev/shm、AF_UNIX 和多进程行为,但不等同于裸机内核性能测试。
  • mmap/ObjectStore 减少大对象进入控制帧和重复序列化,不宣称当前 Python 原型实现绝对零拷贝。
  • 远程 DeepSeek Chat API 仍是文本接口;真实 hidden_state.q8 由本地开源模型路径独立验证。
  • 实验使用固定任务集和确定性代理标签,适合复现系统机制,不等同于开放世界人工标注基准。

安全与许可

仓库不包含 API 密钥、个人凭据或本地模型权重。调用外部模型时应通过环境变量配置密钥,不得将密钥写入源码、配置文件、运行轨迹或提交历史。

SyMA 源码采用 MIT License,详见 code/LICENSE。第三方依赖和模型许可说明见 code/THIRD_PARTY_NOTICES.md

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

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