remove2
第三届中国研究生操作系统开源创新大赛 · 应用创新赛道目标环境:openEuler 24.03-LTS-SP3 · Python 3.10+
SyMA(Shared-memory Multi-Agent Runtime)是运行在 Linux/openEuler 用户态的多智能体协作运行时原型。它不把多 Agent 简化为若干大模型接口的顺序调用,而是从操作系统视角管理 Agent 的能力发现、任务调度、进程间通信、非文本状态对象、共享记忆及运行证据。
系统将协作链路拆分为三个相互独立的平面:
embedding.q8
hidden_state.q8
state_delta.q8
/dev/shm
Planner、Retriever、Executor、Summarizer 等 Agent 作为用户态工作进程运行;Broker 类似调度与 IPC 中枢;ObjectStore 类似共享对象空间;MemoryStore 负责长期状态沉淀。大模型 API 或本地开源模型属于可插拔的上层模型服务,并不是 SyMA 运行时本身。
code/
实验/
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 组成:
syma.control.v1 使用长度前缀帧、紧凑字段码和非空字段编码。Agent 通过 HELLO 完成握手与能力注册,Broker 根据 action、状态格式、传输方式、优先级、并发上限和负载选择执行者。审计日志仍保留完整字段名,兼顾线上开销与可解释性。
syma.control.v1
中间状态以 Q8 二进制对象写入 ObjectStore。完整 Handle 元数据保留在数据面,线上控制帧仅携带对象引用和鉴权信息。接收 Agent 校验对象边界、类型、形状、生命周期、ACL 与 SHA-256 后直接解引用;实验中的 Retriever 记录 query_text_used=false,证明检索阶段真实消费了向量状态,而不是在接收端重新转换为文本。
query_text_used=false
每条记忆统一包含 memory_id、source_agent、created_at、topic、summary、tags、向量和状态引用。检索采用关键词、标签、语义相似度、新鲜度与可信度融合排序;负样本门控拒绝冲突、过期、缺少证据或不适用的历史记忆,避免“相似但错误”的内容污染后续 Agent。
memory_id
source_agent
created_at
topic
summary
tags
系统实现 Unix Domain Socket Broker、多 Worker 能力路由、断连失败回传、mmap//dev/shm 对象存储、SQLite 记忆库和统一评测工具。任务、消息、对象、记忆与指标均形成可追溯证据,可在相同任务集和固定随机种子下重复运行。
text
structured
latent
主实验对比 text 与 structured;latent 使用本地开源模型独立验证,不与主实验通信统计混合。
主实验采用 15 个连续任务、2 种模式、3 次隔离重复,共形成 90 次任务运行。
主实验冻结归档中的测试记录为 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。
code/requirements-gpu.txt
code/docs/local_gpu_reproduction.md
实验/01_openEuler主实验
实验/02_openEuler最终回归_64项
实验/03_本地GPU_hidden_state
实验/04_DeepSeek真实API历史实验
实验/05_交互四轮会话
最终回归的 verification.md、vector_audit.json 和 metrics.csv 可用于快速核验主要结论。
verification.md
vector_audit.json
metrics.csv
. ├── code/ # 源码、测试、文档、任务集和部署脚本 ├── 实验/ # 主实验、最终回归、本地 GPU 与交互证据 ├── 操作系统开源创新大赛项目说明书.pdf ├── 操作系统开源创新大赛PPT.pptx ├── 操作系统开源创新大赛 作品原创承诺书.pdf ├── video.mp4 └── README.md
仓库不包含 API 密钥、个人凭据或本地模型权重。调用外部模型时应通过环境变量配置密钥,不得将密钥写入源码、配置文件、运行轨迹或提交历史。
SyMA 源码采用 MIT License,详见 code/LICENSE。第三方依赖和模型许可说明见 code/THIRD_PARTY_NOTICES.md。
code/LICENSE
code/THIRD_PARTY_NOTICES.md
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
SyMA:面向多智能体协作的低开销通信、状态传递与共享记忆机制
SyMA(Shared-memory Multi-Agent Runtime)是运行在 Linux/openEuler 用户态的多智能体协作运行时原型。它不把多 Agent 简化为若干大模型接口的顺序调用,而是从操作系统视角管理 Agent 的能力发现、任务调度、进程间通信、非文本状态对象、共享记忆及运行证据。
系统将协作链路拆分为三个相互独立的平面:
embedding.q8、hidden_state.q8、state_delta.q8写入 mmap//dev/shm对象存储,控制消息只传递 Handle 与 StateReceipt。Planner、Retriever、Executor、Summarizer 等 Agent 作为用户态工作进程运行;Broker 类似调度与 IPC 中枢;ObjectStore 类似共享对象空间;MemoryStore 负责长期状态沉淀。大模型 API 或本地开源模型属于可插拔的上层模型服务,并不是 SyMA 运行时本身。
交付物导航
code/实验/code/docs/deploy.mdcode/docs/design.mdcode/docs/experiment.md系统组成
参考任务由不少于 4 类 Agent 组成:
核心技术
1. 结构化低开销通信
syma.control.v1使用长度前缀帧、紧凑字段码和非空字段编码。Agent 通过 HELLO 完成握手与能力注册,Broker 根据 action、状态格式、传输方式、优先级、并发上限和负载选择执行者。审计日志仍保留完整字段名,兼顾线上开销与可解释性。2. 可消费的非文本状态
中间状态以 Q8 二进制对象写入 ObjectStore。完整 Handle 元数据保留在数据面,线上控制帧仅携带对象引用和鉴权信息。接收 Agent 校验对象边界、类型、形状、生命周期、ACL 与 SHA-256 后直接解引用;实验中的 Retriever 记录
query_text_used=false,证明检索阶段真实消费了向量状态,而不是在接收端重新转换为文本。3. 可靠的共享记忆复用
每条记忆统一包含
memory_id、source_agent、created_at、topic、summary、tags、向量和状态引用。检索采用关键词、标签、语义相似度、新鲜度与可信度融合排序;负样本门控拒绝冲突、过期、缺少证据或不适用的历史记忆,避免“相似但错误”的内容污染后续 Agent。4. 面向 openEuler 的运行时与证据链
系统实现 Unix Domain Socket Broker、多 Worker 能力路由、断连失败回传、mmap/
/dev/shm对象存储、SQLite 记忆库和统一评测工具。任务、消息、对象、记忆与指标均形成可追溯证据,可在相同任务集和固定随机种子下重复运行。三种协作模式
textstructuredlatent主实验对比
text与structured;latent使用本地开源模型独立验证,不与主实验通信统计混合。最终实验结果
主实验采用 15 个连续任务、2 种模式、3 次隔离重复,共形成 90 次任务运行。
query_text_used=false主实验冻结归档中的测试记录为 62/62;代码加入累计计数、原始 Q8 对象留存和严格打包检查后,最终源码在 openEuler 中独立回归为 64/64。最终回归用于证明代码兼容性,不回写冻结主实验的通信数据。
通信量按照三个边界分别报告,避免把控制帧节省直接表述成完整系统节省。固定微型任务中
structured的实测墙钟高于text,因此本项目不宣称当前原型已经获得端到端时延加速。快速开始
核心运行时仅使用 Python 标准库。进入源码目录后即可执行:
Linux/openEuler 一键验收:
运行单轮结构化多 Agent 任务:
默认评测不需要安装本地大模型,也不需要调用外部 API。本地
hidden_state.q8实验需要安装code/requirements-gpu.txt中的可选依赖,具体步骤见code/docs/local_gpu_reproduction.md。实验证据
实验/01_openEuler主实验实验/02_openEuler最终回归_64项实验/03_本地GPU_hidden_state实验/04_DeepSeek真实API历史实验实验/05_交互四轮会话最终回归的
verification.md、vector_audit.json和metrics.csv可用于快速核验主要结论。目录结构
环境与结论边界
/dev/shm、AF_UNIX 和多进程行为,但不等同于裸机内核性能测试。hidden_state.q8由本地开源模型路径独立验证。安全与许可
仓库不包含 API 密钥、个人凭据或本地模型权重。调用外部模型时应通过环境变量配置密钥,不得将密钥写入源码、配置文件、运行轨迹或提交历史。
SyMA 源码采用 MIT License,详见
code/LICENSE。第三方依赖和模型许可说明见code/THIRD_PARTY_NOTICES.md。