目录

MemLink-OS

低熵协同 · 应用创新赛道第 10 题
作品全称:面向多智能体协作的低开销通信、状态传递与共享记忆运行时

  • 版本:v1.3.11
  • 目标系统:openEuler 24.03-LTS-SP3
  • 主性能数据:Debian GNU/Linux 13 (trixie) 同机机制对照
  • 目标环境证据:artifacts/openeuler/ 是与当前版本、源码树和提交树精确匹配的唯一入口;环境类型以 doctor.json 和 SOURCE_REVISION.json 为准
  • 许可证:Apache License 2.0
  • 源码树 SHA-256:d8518e39e74c3a335922699ae2dd540cbeb8df8236a6ec822df2d4da3a25f00d
  • 提交树 SHA-256:409f70bdc2ba8821f2c70919dd0beeea1f5852358da61013da3f83f36782fdd1

1. 项目定位

MemLink-OS 将多智能体协作拆分为控制面、数据面和经验面:32 字节 MLP 帧 + MessagePack;1536 维 float32 feature-hashing 状态的 binary/mmap 路由;SQLite WAL + FTS5 + 向量召回 + 连续意图与证据冲突拒绝。Planner、Retriever、Executor、Reporter 四个独立 Agent 由 Runtime 统一完成 HELLO 能力发现、DAG 调度、Trace、会话状态清理和故障恢复。Executor 使用状态完成证据排序与假设选择;Reporter 独立重算证据—状态一致性并据此校准报告置信度,形成两个功能性消费者。

每个 action 显式声明 idempotent / max_retries / side_effects;只有幂等动作可自动重试,非幂等动作丢失响应时返回 outcome_unknown。Runtime 会拒绝重复 action 注册,并在启动握手失败时事务化回滚已启动进程和共享状态会话。

2. 赛题映射

赛题要求 本作品实现 入口
不少于 3 个 Agent 4 个独立进程 memlink/agents/
结构化协议与能力发现 MLP + MessagePack + HELLO + Sequence + Trace memlink/protocol.py
纯文本/结构化对照 4 种等价信息模式 memlink/benchmark.py
非文本状态 binary / /dev/shm mmap 自适应;Executor 分析 + Reporter 独立一致性校验 memlink/shared_state.py、memlink/transport.py、memlink/agents/reporter.py
共享记忆 SQLite WAL + FTS5 + 向量召回 + 连续意图/冲突拒绝 memlink/memory.py
关联任务 4 组初始/正向/困难负样本 data/task_sets.json
不少于 10 轮 12 任务 × 8 重复 × 4 模式,共 384 条观测 artifacts/benchmark/
openEuler SP3 动态证据采集、版本/源码树/提交树严格校验 artifacts/openeuler/

3. 快速运行

python3 -m venv .venv
. .venv/bin/activate
python -m pip install -r requirements-lock.txt
python -m pip install -e .
memlink doctor
memlink demo --mode structured --memory --task-index 0

串行独立 campaign 的完整实验:

rm -rf artifacts/benchmark
python scripts/run_release_benchmarks.py --output artifacts/benchmark --campaigns 8 --rounds 12 --repetitions 1 --seed 20260723 --warmup-tasks 1 --pause-seconds 1 --config configs/benchmark.yaml --quiet
python scripts/run_extended_experiments.py
python scripts/generate_figures.py

4. 公平实验设计

  • 四种模式共用相同 Unix Socket 与 32 字节 MLP 帧;Text JSON 的 Agent 间业务内容为纯文本 prompt/answer,Structured 模式直接传动作、参数和二进制状态。该基线隔离业务载荷表示方式的影响。
  • 使用同一任务、知识库、证据结构、Agent 逻辑和 1536 维状态;文本基线只编码一份紧凑 JSON。
  • 模式顺序采用固定种子的 Latin-square 轮换;完整 episode 确定性换序但保持组内初始→正向→困难负样本。
  • 每个模式/重复先执行 1 条不计时预热任务;同一 task/repetition 做配对比较并报告 campaign→task 分层 bootstrap 95% CI。
  • 状态扫描直接使用 /dev/shm,记录挂载类型、tmpfs 状态和回退原因。
  • 状态指标由下游 Agent 成功返回的显式 state_consumption ACK 计数:分别报告发布对象数、成功消费次数、分配字节和逻辑读取字节;不把任务拓扑中的计划消费者数当作实测读取次数。
  • 分位数口径固定为 P50=statistics.median、P95=numpy.quantile(method=linear),并写入 summary.json,避免偶数样本的下侧 nearest-rank 偏差。
  • 主要时延估计量为模式级聚合均值比和同任务配对绝对时延差;逐任务相对百分比受小分母和任务异质性影响,仅作辅助指标。
  • 串行合并 8 个完整、同配置、非重叠 campaign;所有观测均纳入聚合,不按收益挑选轮次。

5. 主实验结果

环境:Debian GNU/Linux 13 (trixie),内核 6.12.13,Python 3.13.5。合并 8 个独立实验 campaign,每种模式共 8 次重复,总计 384 条任务观测。

对照 指标 结果
Structured Inline vs Text JSON 应用层 IPC 帧字节 -8.66%
Structured Inline vs Text JSON 文本字符 -70.00%
Structured Inline vs Text JSON 聚合平均时延 上升 1.43%
Adaptive Shared vs Inline 应用层 IPC 帧字节 -52.70%
Adaptive Shared vs Inline 配对时延 方向不确定时不作稳定时延优化结论;以IPC字节收益为主
Memory vs No Memory 消息 / Agent 步骤 -8.38% / -8.25%
Memory vs No Memory 聚合平均时延 下降 33.59%
完整机制 vs Text JSON IPC 字节 / 文本字符 / 聚合平均时延 -58.78% / -69.68% / -31.91%
完整机制 vs Text JSON 全局 P95 **上升 0.26%**(611.04 vs 609.45 ms)
所有模式 成功率 / 质量 100% / 1.00

端到端配对平均绝对时延差为 92.62 ms,campaign→task 分层 bootstrap 95% CI [49.05, 137.46] ms。P50 使用 statistics.median,P95 使用 numpy.quantile(method=linear)。wire_bytes 仅表示应用层 IPC 帧字节;token equivalent 只是字符代理估算。

6. 记忆安全与纯文本泛化

  • 主实验:Precision/Recall/F1 = 1.00/1.00/1.00,错误复用率 **0%**。
  • 8 个未见主题的元数据辅助组:96 条决策,F1 1.00。
  • 纯文本未见改写(不传 explicit_follow_up 真值):96 条决策,F1 1.00,错误复用率 **0%**。
  • 完全未见意图表达(不传 explicit_follow_up 真值):96 条决策,F1 1.00,错误复用率 **0%**。
  • 72 条含糊表达:错误复用率 **0%**。
  • 96 条关闭安全门消融:F1 0.9505,错误复用率 **10.42%**。

按任务类型拆分 Memory vs No Memory 的配对时延:

  • 正向复用:**298.83 ms (95% CI [200.12, 403.98] ms;相对变化 77.08%)**;
  • 初始分析:**2.43 ms (95% CI [-10.18, 16.12] ms;相对变化 -17.46%)**;
  • 困难负样本:**-1.38 ms (95% CI [-12.79, 9.68] ms;相对变化 -17.78%)**。

正向且通过安全门的可复用任务是主要收益来源;初始任务和冲突负样本可能承担一次记忆查询与拒绝校验的固定开销。核心检索代码不包含 benchmark 业务关键词列表;演示领域结论位于可替换 scenario profile。

7. 状态与规模边界

主任务 1536 维状态为 6144 B,完整分析链有两个功能性下游消费者:Executor 使用状态完成证据排序与假设选择,Reporter 独立完成证据一致性校验与置信度校准;成本模型实际选择 shared_memory。主实验按成功 ACK 统计 state_consumer_reads,并同时公开 state_objects_published、state_bytes_allocated 与 state_logical_bytes_read。扫描覆盖 384/1536/4096/16384 维和 1/2/4/8 消费者,实际后端为 /dev/shm tmpfs。

同主题线性扫描在 10,000 条记忆时 P50/P95 为 120.38/179.40 ms;后续方向是 ANN、候选分片和冷热分层。

8. 自动化与可执行物

当前自动化测试:154 passed,语句覆盖率 **87%**。Wheel 与单文件 PYZ 均在脱离源码树的临时目录完成 12 任务回归。

python scripts/build_executable.py
python scripts/verify_release_artifacts.py
python scripts/submission_preflight.py --strict --run-tests

9. openEuler 目标环境

artifacts/openeuler/ 是 v1.3.11 精确证据唯一入口。最终提交前在 openEuler 24.03-LTS-SP3 目标环境执行:

bash scripts/install_openeuler.sh
bash scripts/capture_openeuler_evidence.sh

采集脚本会清空旧目录,并记录 git_available / git_commit / git_clean / git_status、版本、源码树、提交树和环境类型。无 Git 仓库时,git_clean 为 null,不会把“无法判断”误报为“干净”。只有版本、源码树、提交树、测试和目标用户态状态全部匹配时,严格预检才将证据判为精确。

10. 已知边界

  • Agent 使用确定性离线知识库与可替换 scenario profile,以隔离模型随机性;质量 1.00 不等于开放域 LLM 能力满分。
  • CodeAct 是受限表达式执行器,不是任意 Python 强隔离沙箱。
  • WSL2 证据只能证明用户态兼容性,不代表原生内核绝对性能。
  • 当前样本规模用于验证运行时机制;不将留出结果外推为开放域语言理解能力。
  • 原创承诺书必须由参赛队伍据实亲笔完成。

11. 许可证

项目使用 Apache License 2.0。第三方版本、用途和许可证见 THIRD_PARTY_NOTICES.md;精确依赖见 requirements-lock.txt。

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

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