uv run --frozen mars run \
--task "How should I create a reliable personal backup plan?" \
--runtime-backend in-process \
--json
Linux 上构建 runtime 后可显式选择 native:
export MARS_RUNTIME_BINARY="$PWD/target/release/mars-runtime"
uv run --frozen mars run \
--task "How should I create a reliable personal backup plan?" \
--runtime-backend native \
--json
通信对比与连续评测
run_id=$(date -u +%Y%m%dT%H%M%SZ)
uv run --frozen mars compare \
--task "请解释 Homo sapiens 的含义。" \
--iterations 100 \
--warmup 10 \
--environment-label local-development \
--output-dir "artifacts/compare-$run_id"
uv run --frozen mars eval \
--scenario continuous-10 \
--mode both \
--environment-label local-development \
--output-dir "artifacts/eval-$run_id"
cargo run --locked --release -p mars-metrics -- \
"artifacts/eval-$run_id/metrics.csv"
MARS:Multi-Agent Runtime with Shared Memory
MARS 是面向 openEuler 的多智能体协作原型系统,通过结构化通信、非文本状态传递、共享记忆和 Linux 进程监督,降低多 Agent 协作中的上下文复制与状态传输开销,并提供可复现、可核验的实验与交付证据。
默认实现完全离线,不依赖 GPU、在线 LLM、模型下载或外部服务。Docker 构建和首次安装依赖时需要联网。
材料清单
应用场景
主要功能
SOCK_SEQPACKET、SCM_RIGHTS、sealed MEMFD 和 mmap 状态传递;pidfd + epoll + timerfdWorker 监督、取消、超时和 FD 生命周期管理;/api/reliability、/api/topology只读接口;决赛目录
源码模块:
src/crates/mars-protocol:canonical 协议;src/crates/mars-ipc:SOCK_SEQPACKETframe、ancillary data 和SCM_RIGHTS;src/crates/mars-state:FILE、DEV_SHM、MEMFD 和 mmap;src/crates/mars-runtime:Worker 启动、路由、监督、取消和 FD 生命周期;src/crates/mars-metrics、src/crates/mars-bench:指标复核和 release benchmark;src/crates/mars-observer:/proc、PSI 和可选 eBPF;src/python/mars:Agent、记忆、评测、CLI、FastAPI 和 native client;src/frontend:React/Vite 产品界面;src/schemas、src/examples:JSON schema 和固定评测场景;src/scripts:质量门、production smoke、native host gate 和 release bundle 工具。系统环境
目标环境:
aarch64或x86_64;开发宿主可以是 Linux 或 macOS,但 DEV_SHM、MEMFD、原生 runtime、strict capability 和 eBPF 等 Linux 能力只能在相应 Linux/openEuler 环境验证。
依赖要求
推荐:Docker
/dev/shm用于默认 demo。本机开发
可选在线 LLM 使用 OpenAI-compatible API。请复制
.env.example后自行填写端点、模型和凭据;仓库不提供或保存共享 API Key。构建方法
Production image
仓库只维护一个根
Dockerfile,无 Docker Compose。默认最终 stage 是 non-root production image;development、repository-check、frontend-check、frontend-dev为开发和检查 target。本机构建
运行方法
一键离线 Demo
访问:
停止并清理:
完整说明见
demo/README.md。CLI 单任务
Linux 上构建 runtime 后可显式选择 native:
通信对比与连续评测
测试方法
统一验证入口
该命令运行宿主 Python/Rust 质量门,并验证
tests/results/中正式 bundle 的证据关系、manifest 和逐文件 SHA-256。详见tests/README.md。openEuler 容器质量门
显式指定平台:
Production smoke
该脚本验证 non-root 用户、health、可靠性快照、运行时拓扑、静态页面、最终镜像内容和退出码。
前端检查
物理 openEuler 专属门
该入口包含 strict capability、100 轮 Worker crash/restart、eBPF load/attach 和 observer overhead;不得在 Docker/QEMU 中冒充物理机通过。
测试与证据
决赛证据已冻结并纳入仓库(openEuler 24.03-LTS-SP3 / aarch64 / Docker VM):
finals-15f0c74-docker-vm-arm64:绑定 clean source15f0c740d9a82d575c5dd524c262082a7ba61435;8 条成功命令,包含 release benchmark、双模式 eval、memory reuse、semantic memory、native structured eval。finals-15f0c74-specialists-docker-vm-arm64:同一 source 的 communication v2 与 Tool v1;18 项 SHA-256。通信两组均 10/10 语义一致,Tool 覆盖 15 任务/132 消息。latency-repeat-15f0c74:同一 source 的双模式 eval 连续 11 轮端到端总耗时;中位数文本 44.753 ms、结构化 43.868 ms。native-stress-15f0c74:同一 source 的原生 Worker 100 轮崩溃恢复。运行
uv run --frozen python tests/verify_evidence.py可复核两个包的固定 manifest、精确文件集合和 canonical 语义;完整源码与证据门为tests/verify.sh。摘要、容器入口和复现边界见 tests/README.md。实验 source commit 与纳入证据的 delivery commit 分开记录,不能把后者冒充测量源码。新通信 v2 的离线 wire/logical/token 降低比例为 93.6845% / 92.1434% / 93.7344%;固定 2 ms mock 为 94.5425% / 92.9386% / 95.0769%,不是在线 LLM 或网络性能。共享记忆 warm 实际消费 4 条、跳过 4 次扫描、避免处理 24 项,但中位数 9.416 ms 仍慢于 disabled 的 3.564 ms;仅作为当次 Docker VM 观测。
普通 eval 仅在 text/structured 任务集合完整配对时给出跨模式比例;单模式或不完整结果显示 N/A。Git 不可用时 commit/dirty 为 null,不代表 clean。历史 communication v1 仍可只读核验;v1/v2 的字节/token 数不得混用。
已知限制
run、eval、compare、capability-eval;/dev/shm,不能在 macOS 宿主服务中直接运行;许可证
项目使用木兰宽松许可证第 2 版,见
LICENSE。第三方依赖通过 Cargo、uv 和 npm lockfile 管理;AI 及第三方工具使用声明见docs/人工智能及第三方工具使用说明.pdf。