← 返回案例
发布:整理:元定义科技(YuanASI)离线运行私有化部署本地量化模型多节点编排上下文压缩open-multi-agent

完全离线的本地多节点 Agent 栈

开源生产采用 · 第三方项目

这套离线 Agent 栈是第三方开源项目,由 Mark Galyan(GitHub 用户名 apollo-mg)独立开发维护,基于 open-multi-agent 构建。整套系统断网运行,推理全部落在自有硬件的本地量化模型上,OMA 在其中充当编排核心。

场景

open-multi-agent 的 README 把 Mark Galyan 列为自框架第一个月起的贡献者。他公开的仓库 Project Apollo 自述为气隙(air-gapped)、本地优先的多节点 Swarm 架构。

按他的 README 与运维手册,系统分两层:协调节点规划并分解任务,工作节点认领执行;中间是 WAL 模式的 SQLite 消息总线,节点以独占事务原子认领,任务自带硬件约束(最小上下文长度、量化位宽),按各节点上报的显存与状态路由。当前稳定运行的是双节点:16GB 显存工作站做协调,32GB 显存双卡无头服务器做执行。

痛点都写在他公开的 issue 和 PR 里:显存是硬边界,无人值守的长循环很快撑爆上下文;高度量化的模型在多轮工具调用里容易吐坏 JSON、掉进重复循环。

方案

角色任务 DAG工具模型部署形态
协调节点(Architect)目标 → 任务分解与依赖调度;跨轮次靠上下文压缩把历史压回可承受的体量OMA 的 coordinator 与 context compaction;委派任务经消息总线下发、等 SSE 回调,设 30 分钟安全超时本地量化模型,经 OpenAI 兼容端点接入工作站上从仓库内 vendored 的 open-multi-agent 引擎目录启动(npx tsx examples/apollo_cli.ts 或 apollo_server.ts)
工作节点(Worker daemon)从 SQLite 队列认领任务并本地执行;卡在执行中超过 15 分钟由后台线程回收重排本机 shell 与系统管理能力经 MCP 暴露,带分级权限门节点本地小模型(其 README 说日志与抽取类任务用 8B–14B 量级即可)deploy/Dockerfile.worker 构建时先拷 engines/open-multi-agent-upstream/package*.json 并 npm ci,再装 Python 守护进程
常驻后台循环(他称 Daydream Daemon、codebase_investigator)无人值守的长多轮循环,自动复查日志与代码库上下文压缩策略是这条循环能活下来的前提同为本地量化模型本地常驻,全栈离线运行

OMA 的位置从仓库结构直接可见:engines/ 下有两个指向 open-multi-agent 的引擎目录,git 记录的是提交指针,其中一个正是 OMA 2026-04-01 的首个发布提交;deploy/Dockerfile.worker 构建工作节点镜像时先装该目录的 Node 依赖;启动脚本与运维手册里拉起编排层的命令也在该目录下。

他提交并已合并进 open-multi-agent 的三个 PR,都是本地离线场景逼出来的。

#161(2026-04-23 合并):上下文压缩只在第二轮之后才评估,压缩后的历史又没回传给调用方,调用方继续持有未压缩历史。改动落在 src/agent/agent.ts、src/agent/runner.ts 与上下文策略测试,去掉首轮门槛并避免丢轮次。对应他先提的 issue #152。

#163(2026-04-25 合并):把 topP、topK、minP、frequencyPenalty、presencePenalty、extraBody 透出到 AgentConfig 与 RunTeamOptions,并接进 OpenAI / Anthropic 适配器。他给的理由:云端默认采样够用,消费级硬件上跑高度量化 MoE 模型缺了这些参数,多轮工具调用里容易掉进重复幻觉循环。

#269(2026-06-02 合并):量化模型偶尔往工具参数里塞 Python 三引号或未转义引号,JSON.parse 失败后只返回空对象,模型据此空转。该 PR 在 OpenAI 补全解析处加正则兜底;按评审意见去掉硬编码的工具名,并补了独立测试文件。

结果

他本人与公开记录写下的事实:

open-multi-agent 的 README 在「Built with OMA」一节列出 Mark Galyan:他 "runs OMA fully offline on local quantized models",用 coordinator 与上下文压缩在紧张显存下维持自主 Agent 循环,自框架第一个月起就是贡献者。

三个 PR(#161、#163、#269)已合并进主仓,改动分布在 Agent 运行器、LLM 适配器与测试文件;另有两个 PR 由他自己关闭,其中一个他说明根因在自己的本地推理服务器。

他在公开 issue #152 的回复里说明用途:把 OMA 当作本地优先系统的核心编排器,在本地复刻 Coordinator → Worker 模式。

他公开仓库的致谢把 open-multi-agent(MIT)列为核心 TypeScript DAG 编排与基础 agent 循环的来源,引擎目录、工作节点 Dockerfile 与启动脚本可逐条对上。

可核实

来源链接核实日期
open-multi-agent README「Built with OMA」条目https://github.com/open-multi-agent/open-multi-agent#built-with-oma
PR #161:上下文压缩持久化与丢轮次修复https://github.com/open-multi-agent/open-multi-agent/pull/161
PR #163:采样参数透出到 AgentConfig / RunTeamOptionshttps://github.com/open-multi-agent/open-multi-agent/pull/163
PR #269:工具参数 JSON 解析的正则兜底https://github.com/open-multi-agent/open-multi-agent/pull/269
Issue #152:他提交的缺陷报告与后续用途说明https://github.com/open-multi-agent/open-multi-agent/issues/152
Project Apollo 仓库首页与 README(架构、节点与模型说明)https://github.com/apollo-mg/Project-Apollo
OPERATIONS.md:启动顺序,编排层从 vendored OMA 目录拉起https://github.com/apollo-mg/Project-Apollo/blob/778a7e8/OPERATIONS.md
deploy/Dockerfile.worker:工作节点镜像安装 OMA 依赖https://github.com/apollo-mg/Project-Apollo/blob/778a7e8/deploy/Dockerfile.worker
scripts/bootstrap_swarm.sh:从 OMA 引擎目录启动编排层https://github.com/apollo-mg/Project-Apollo/blob/778a7e8/scripts/bootstrap_swarm.sh
engines/:两个指向 open-multi-agent 的引擎目录指针https://github.com/apollo-mg/Project-Apollo/tree/778a7e8/engines

与元定义的关系

本页素材全部来自第三方开源项目的公开仓库、PR 与 issue,元定义是它所依赖的 open-multi-agent 框架的作者,他的修复经公开 PR 合并进框架。

如果你的约束也是数据留在内网、模型跑在自有 GPU、还要多个 Agent 分工协作,元定义提供私有化部署与内网模型接入,对应的服务是 多智能体系统集成

最后更新

想知道类似的流程在你这边怎么落地?