跳转至

🧠 AgentMeshOS 项目交接说明

项目名称:AgentMeshOS

版本:v1.5.1

更新:2026-10-04

状态:分布式计算底座、阶段三通用 AI Runtime MVP、阶段四至阶段八、P10 至 P16 已完成并归档;P9 已关闭,不再实施;当前阶段为 P17“代理网络控制面统一入口与真实客户端验收”,进行中,当前工作包为 P17-5

类型:AI 应用运行平台 / AI 操作系统


📌 结论摘要

AgentMeshOS 当前是“分布式计算底座、Runtime 与多应用阶段、P10 网络边缘、P11 网络治理、P12 节点验收、P13 OmniRoute 原生迁移、P14 搜索 MCP、P15 多边缘与 Tailnet 韧性、P16 只读备用控制面均已归档,P17 正在实施代理控制面统一入口与真实客户端验收”的状态。102 继续承载官方 omniroute@3.8.51;P16 已完成 Console/Auth/API 的 102 只读备用、Edge 回退和 RR 整机重启演练。依据是 docs/plans/state.json、P16 完成归档和 P17 计划。


🧭 1. 项目定位

AgentMeshOS 是一个

自托管的 AI 应用运行平台与 AI 操作系统

。

它将多台异构机器(VPS、家用电脑、服务器)通过统一调度与网络层连接,形成一个可编程的计算资源网络(Compute Mesh)。


🎯 2. 系统目标

  • 将多台机器统一为一个“虚拟超级计算机”
  • 支持动态节点加入 / 移除
  • 支持容器化任务调度
  • 支持 AI Agent 自动化执行任务
  • 在底座之上承载多个可插拔 AI 应用
  • 让多个 AI 应用在统一 Runtime、任务、成果、证据、预算和审计底座上运行

🏗️ 3. 当前架构(已确认)

flowchart TB
    Benson["Benson / Console"] --> Runtime["主节点:薄 Runtime"]
    Runtime --> OmniRoute["主节点:官方 OmniRoute"]
    Runtime --> Nomad["主节点:Nomad Server"]
    Nomad --> W101["101:项目控制与发布协调节点(非普通 Worker)"]
    Nomad --> W103["103:通用计算 Worker"]
    Runtime --> Cloud["Cloudreve WebDAV"]
    Edge["逻辑 Edge:MM / d02 / DD / dog-public"] --> RRWeb["RR:Console / Auth / API / Runtime"]
    RRWeb -. "P16 只读备用回退" .-> Standby["102:只读备用控制面(已归档)"]
    Tailnet["Tailnet / Headscale"] --> Relay["DERP region 900-903 + Peer Relay"]
    Cloud --> DD["dd:Cloudreve 本地持久化"]

项目控制与生产发布边界

101 是本项目代码、资料和 GitHub 同步权威,负责 CI/CD 的测试、构建、版本摘要、发布记录和回滚协调;GitHub 与 101 工作区不运行生产 Runtime 或 Bridge。RR 是生产部署与运行节点,继续承载生产 Runtime、System Operations Bridge、Docker、Nomad 和生产服务,只消费已发布且带摘要的版本化产物。CI/CD 不可用时允许人工使用同一产物应急发布,但必须保留审计、回滚和健康验收记录。

本次 RR→101 剥离已完成职责边界确认、版本化发布验收和非敏感恢复材料交接;RR 生产 Bridge、Runtime、凭据、审计和历史恢复原件继续保留。Project 控制链路已由 101 承担,RR 项目控制链路已停用;不得误停生产 Bridge。


🧰 4. 已确定技术栈(不可随意更改)

  • 网络层:Tailscale Client + Headscale 自托管控制面
  • 调度层:Nomad
  • 执行层:Docker
  • 操作系统:Ubuntu / Debian Linux
  • 通信方式:自托管 Headscale 管理的 Tailscale Mesh Network

所有部署服务和控制面默认必须部署在项目自有服务器或自有节点上;不得把第三方托管控制台作为核心能力默认依赖。


🧱 5. 系统分层定义

AI 应用层(本地应用及后续可插拔应用)
│
通用 AI Runtime(多 Agent、Provider、MCP、工作流、复盘)
│
AI Runtime 内部控制边界(Adapters、状态、任务日志、数据安全围栏)
│
分布式计算底座(Nomad、Docker、Cloudreve、Headscale/Tailscale)

🚧 6. 当前开发阶段

阶段:底座 v0.5、架构重整、阶段三通用 AI Runtime MVP、阶段四至阶段八、P10 至 P16 已完成并归档;P9 已关闭,不再实施;当前阶段为 P17(阶段十七)“代理网络控制面统一入口与真实客户端验收”,进行中,当前工作包为 P17-5

状态:分布式计算底座已部署并完成真实任务闭环;阶段三 P3-6 至 P3-12 已完成生产部署和真实验收。102 当前生产为官方 omniroute@3.8.51、系统 Node 22.23.0、默认数据目录 /root/.omniroute,健康接口为 healthy,P13-4 运行基线为 70 条连接、19 个 Combo、4 个 API Key、迁移 193、SQLite quick_check=ok。RR omni 数据、包、service、回退备份和网关 vhost 已在 P13-C 删除。Boss 使用 agentmeshos-free-quality-first,Worker 使用 agentmeshos-free-capacity-pool,各含 195 个候选并覆盖 24 家 Provider;2026-08-04 的 52/51/2/2 和 2026-08-03 的 53/52/2/1、迁移 133 继续作为历史验收基线。官方 MCP 搜索/抓取已通过标准 Streamable HTTP 验收;Compression 隔离复评在特定工具日志上有高压缩率但保真门槛未通过,生产保持关闭。详见阶段三完成归档。

目标:阶段四已完成模型结构化规划、逻辑能力选择、任务分派、成果登记、真实检查、AI BOSS 审核和最终验收闭环,详见最终归档。阶段五至阶段八、P10 至 P16 均已完成归档;P9 已关闭且不再实施。P16 已为 RR 控制面增加 102 只读备用、认证会话连续性、只读拓扑快照和 Edge 本地回退,且不开放任务提交、凭据修改或生产写入;P17 当前执行代理控制面统一入口、节点面板、Console 架构页和客户端验收。


🔜 7. 下一阶段任务

  1. 查阅阶段四最终归档与原阶段四核心归档,保留边界和验收事实
  2. 查阅阶段五完成归档,保留策略、预算、暂停和审计边界
  3. 查阅P6 完成归档与P7 完成归档,保留应用中心、应用运行、成果历史与恢复边界
  4. P10 已完成稳定边缘身份、DNS、端点快照、SSH 双通道、直连/DERP、控制台态势、隔离切换回退和归档,见P10 完成归档
  5. P11 已完成冻结归档,历史证据见P11 完成归档
  6. P12 已完成 102 节点纳管并归档,见 P12 完成归档;不再从 P12 拆出零散任务
  7. P13 已完成并归档,见 P13 完成归档:102 已成为唯一生产权威,MM 直连 102,RR omni 数据和回退点已删除
  8. P14 已完成并归档,见 P14 完成归档:搜索 MCP 双监听、三工具和双通道真实回归继续作为稳定能力保留
  9. P15 已完成并归档,见 P15 完成归档:多 Edge、DERP region 900 至 903、Peer Relay、DNS 切换、RR 冷启动和 MM → d02 真实切流/回切均已收口
  10. P16 已完成并归档,见 P16 完成归档:102 只读备用、认证连续性、Edge 回退和 RR 整机重启演练已收口
  11. 当前为 P17:代理网络控制面统一入口与真实客户端验收:执行 proxy.yohan.fun Master 入口、四个节点面板、Console #proxyNetwork 架构页和三端客户端验收

📜 8. 项目核心原则(必须遵守)

  • 所有节点必须可插拔(Plug & Play)
  • 控制层(VPS)必须稳定独立
  • 计算层(Node)可以随时加入/退出
  • 存储必须接口化;系统云盘使用 Cloudreve,最大 1 MiB Worker JSON 证据使用 Runtime SQLite,不预设 S3
  • AI 层不得依赖单一节点
  • 底座与应用必须解耦,应用失败不能破坏底座
  • 普通任务不引入审批、准入报告、租约或普通 TTL
  • 只有为防止数据破坏而设置必要的技术围栏

🤝 9. AI 协作规则

  • 外部 AI 工具用于研发、调查、审阅或工程执行,不是系统内固定角色;系统运行角色以 Runtime 的 AI Boss Agent 和 Worker Agent 为准。

📚 10. 文档使用规则

本项目所有设计以 docs/architecture 为唯一事实来源(SSOT)。

禁止使用聊天记录作为系统设计依据。


⚠️ 重要说明

任何修改架构设计前,必须更新本项目文档,而不是直接修改代码逻辑。


✅ 当前状态总结

  • 分布式底座:已完成并运行
  • AI 平台架构:已收口;阶段三已完成并归档
  • AI Runtime:阶段三核心闭环、阶段四智能编排与成果验收闭环、阶段五受控主动循环、阶段六至阶段八应用能力均已部署并归档;P10 和 P11 已完成网络与节点治理归档
  • 应用中心与本地样板:P6 至 P8 已完成生产验收;P16 已完成控制面后端只读冗余并归档,当前 P17 正在实施代理网络控制面与客户端验收,不启动新的应用或后台工作
  • 生产运行:依赖已发布镜像、Runtime 数据和既有服务,不依赖 Git 工作树常驻

🧪 11. 专项交接:由 Office 观察主节点活动 Codex 的模型选择

目的与范围

该任务用于核查主节点正在运行的 Codex 桌面会话中,模型选择器为何出现非预期的 agentmeshos-* 名称。它只采集事实,不清除缓存、不重启服务、不修改 Provider/Combo/Key,也不替换主节点的当前会话。

观察时间开始前,Office 必须在本机记录自身的 Provider、模型和会话标识;如为检查而临时切换 Office 本机 Codex 的 Provider,任务结束后必须恢复为该记录值。Office 不得修改主节点 /root/.codex/config.toml、models_cache.json、SQLite、会话 JSONL 或 App Server。

截至 2026-08-08 的主节点已验证基线仅供比对,不能跳过实时采集:Tailnet IPv4 为 100.64.0.1,SSH 为 47522,活动 App Server 以默认 /root/.codex 启动;当前活动线程的已持久化设置为 custom / gpt-5.6-terra,主节点 models_cache.json 的模型数组为空。正式结论只以本次观察结果为准。

连接与安全约束

从 Office 使用既有 SSH 私钥直接连接主节点:

$EvidenceRoot = "C:\temp\agentmeshos-codex-main-audit-$(Get-Date -Format yyyyMMdd-HHmmss)"
New-Item -ItemType Directory -Force -Path $EvidenceRoot | Out-Null
$MainSsh = @("-p", "47522", "root@100.64.0.1")
& ssh @MainSsh "hostname; date -Is; tailscale ip -4; id" |
    Set-Content -Encoding utf8 "$EvidenceRoot\00-connectivity.txt"

仅当上面的连接、主机名和 Tailnet 地址均符合预期时继续。不要使用 ProxyJump,不要把私钥、API Key、Cookie、完整请求正文、完整会话内容或 SQLite 原始文件复制到 Office、Git 或聊天。

下列动作是禁止项:

  • pkill、kill、systemctl restart、codex app-server 重启或重载;
  • 删除、移动、截断或改写 /root/.codex 下的任何文件;
  • 调用 config/value/write、config/batchWrite,或在主节点执行 codex config 写入;
  • 在主节点当前桌面会话内切换 Provider、模型或 profile;
  • 输出任何以 sk- 开头的值、Authorization 头、env_key 对应变量值或请求 body。

第一阶段:主节点零写入证据采集

在 Office 执行以下命令。命令只读取主节点状态,输出保存在 Office 本机证据目录。

$RemoteReadOnly = @'
set -euo pipefail

printf '%s\n' '=== 10 app-server-and-profiles ==='
ps -eo pid,ppid,lstart,args | grep '[c]odex.*app-server' || true
find /root/.codex -maxdepth 1 -type f -name '*.config.toml' -printf '%f\n' | sort

printf '%s\n' '=== 11 config-and-cache-redacted ==='
sed -E 's/(env_key|experimental_bearer_token)[[:space:]]*=[[:space:]]*.*/\1 = [REDACTED_SECRET]/' /root/.codex/config.toml
jq '{fetched_at,client_version,model_count:(.models|length),agentmeshos_ids:[.models[]?.id | select(startswith("agentmeshos-"))]}' /root/.codex/models_cache.json

printf '%s\n' '=== 12 recent-thread-settings ==='
sqlite3 -readonly -header -column /root/.codex/state_5.sqlite "SELECT id, model_provider, model, datetime(updated_at,'unixepoch','localtime') AS updated, archived FROM threads ORDER BY updated_at_ms DESC LIMIT 20;"

printf '%s\n' '=== 13 app-server-model-events ==='
rg -n -i 'models cache:|model/list|model_catalog_json|agentmeshos-' /root/.codex/app-server-control/app-server.log | tail -200 || true
'@

$RemoteReadOnly | & ssh @MainSsh "bash -s" |
    Set-Content -Encoding utf8 "$EvidenceRoot\10-13-readonly-evidence.txt"

如果 models_cache.json、SQLite 或日志不存在,记录路径和错误原文后停止该项;不能创建替代文件,更不能根据旧结果补写内容。

第二阶段:原始模型选择器的人工观察

在不离开主节点原始桌面会话、且不提交新消息的前提下打开已经出现异常的模型选择器。Office 需要采集一张完整截图,并在 14-picker-observation.md 记录:

  1. 截图时间、线程 ID、屏幕显示的 Provider 与当前模型。
  2. 每个可见 agentmeshos-* 条目的完整 ID、显示名和排序位置。
  3. 是否有 profile、搜索词、筛选器、Provider 下拉选择或“高级模型”状态。
  4. 打开选择器前后 models_cache.json 的 SHA-256、修改时间和模型数量;仅比较,不删除或编辑。

若不能访问原始桌面会话,不得用新建 Codex、codex exec 或另一个 App Server 代替并宣称已复现。应如实记录“未观察到原始选择器”,并保留第一阶段证据。

第三阶段:恢复 Office 本机上下文并复查

Office 完成截图与只读采集后,恢复其本机开始前记录的 Provider、模型和会话;此恢复不得对主节点执行。恢复后只允许在 Office 自己的新建隔离线程中检查其自身模型选择器,且必须使用与开始前相同的 Provider。

交付给主节点的内容仅包含以下脱敏材料:00-connectivity.txt、10-13-readonly-evidence.txt、14-picker-observation.md、截图、Office 初始与恢复后的 Provider/模型摘要,以及是否观察到原始异常条目。主节点据此判断下一步是读取缓存来源、检查桌面端覆盖配置,还是调查特定 profile;在此之前不得把异常归因于缓存,也不得清除任何缓存。


⚠️ 未决项 / 需要决策

未决项 当前事实 下一步
P12 关闭决策 8 项验收全部通过,102 纳管已关闭并归档 无;后续漂移按新运维事件处理,不重新打开 P12
P13 归档后观察 P13 已完成并归档,102 生产健康,MM 直连 102,RR omni 物料已退役 长期健康观察独立运行;异常按新运维事件处理
P14 归档 搜索 MCP 双监听、三工具和双通道真实回归已完成 保持稳定能力,不重新打开归档
P15 完成归档 多 Edge、DERP、Peer Relay、DNS 切换和 RR 冷启动修复均已完成并归档 不再重开 P15;后续边缘漂移按新运维事件处理
P16 控制面备用 102 只读备用、认证连续性、Edge 回退和 RR 整机重启演练已完成并归档 不再重开 P16;后续异常按新运维事件处理
P17 范围 代理控制面统一入口、四个节点面板、Console 架构页和三端客户端验收 生产实施与真实验收完成后才允许归档
专项模型观察 Office 的离线证据采集尚未在本文件记录新结果 获得证据后再更新结论,不能用旧缓存或聊天推断替代现场观察