2026-05-13 OpenClaw 多智能体 agents.json 角色拆分与无头租用 Apple Silicon 云 Mac(HK / JP / KR / SG / US)
单网关、单人格、单条误删事故线——直到你把 OpenClaw 拆成显式的多智能体配置。在香港、东京、首尔、新加坡与美国租用的 Mac mini M4 上,同一 UID 往往同时跑 xcodebuild 车道、签名树和回答企业 IM 的助手。本文把 agents.json 当作运维合同:谁可以触碰哪些根路径、哪个 OPENCLAW_STATE_DIR 拥有 checkpoint、入站事件如何映射到唯一智能体身份。内容串联 工作区白名单、会话 checkpoint 与网关重启 以及 onboard 与 doctor 分流,形成可复现的研发 vs 运维拆分,使 launchd 重启后持久状态不会混写。
为何共享租用构建机必须做多智能体设计
能读仓库的助手与能重启守护进程、轮换令牌的自动化不是同一风险等级。若两种人格共用同一状态目录,去重缓存、插件清单与半写入的 JSON 会在突发 Webhook 下交错,尤其在 npm 升级或 launchctl kickstart 风暴之后。多智能体的核心是爆炸半径:为每个角色收窄工具面、用不同日志前缀区分,并在扩大权限前要求人工评审。把 agents.json 当基础设施代码:走同行评审、在发布包中附带校验和,并按区域灰度,让东京金丝雀失败不会拖垮新加坡流量。
agents.json 与网关进程模型的分层关系
可分三层理解:传输层(HTTP、Slack、Telegram 等)、网关层(路由、鉴权、限流)与智能体运行时(工具执行、模型调用、文件系统策略)。agents.json 属于运行时层——声明命名智能体、默认模型、技能包及各智能体策略字段。网关在启动时读取这些声明;若在受控重启之外热改,容易出现“内存里一半旧策略”。请记录你的 OpenClaw 版本里哪些字段可热加载、哪些必须按 checkpoint 指南 做停启顺序。
- 身份 — 稳定的
id字符串,供路由与指标引用。 - 范围 — 工作区根路径,必须与 单体仓库护栏 中的白名单一致。
- 工具 — 显式允许/拒绝列表;运维画像可包含服务控制类工具,研发画像应省略。
研发与运维人格:彼此不应继承的权限
研发助手 应偏向只读仓库导航、利于 diff 的小范围编辑,以及限定在 CI 检出目录内的测试命令。运维自动化 可能需要更广的主机自省,但仍须避免交互式提示与无界 shell。两类人格的内联提示词都不应硬编码密钥——从 macOS 钥匙串或 plist 引用的密封环境文件加载。团队一旦“临时”模糊边界,事故就会跟着来:聊天线程继承了运维工具,在操作者仍以为是只读探索时去触碰 launchd plist。
单机多智能体下的 OPENCLAW_STATE_DIR 隔离
在可预测前缀下拆分状态根,例如 ~/Library/Application Support/OpenClaw/state-dev 与 .../state-ops;若多条产品线共用一台租赁机,再按租户分子目录。切勿把一个状态树符号链接到另一个;APFS firmlink 与备份工具可能抹平你以为的边界。为每个智能体对齐独立的 TMPDIR 导出,避免并行任务互相删除半成品上传。目录迁移后,按 doctor 分流 中的验证步骤,确认非交互 shell 下网关解析到预期路径。
# 示例:在 launchd 封装脚本中 export 后 exec
#!/bin/bash
set -euo pipefail
export OPENCLAW_STATE_DIR="$HOME/.openclaw-state/ops"
exec /usr/local/bin/openclaw gateway --config "$HOME/.openclaw/ops-gateway.json"
网关路由:关联键、频道与碰撞规避
入站 Webhook 应携带稳定标识——仓库全名加投递 id、Slack 团队加频道加线程 ts,或签名过的内部作业令牌。将每种标识模式映射到单一 id;避免正则兜底把流量误送到默认助手而本应走运维自动化。单主机双网关时,可复用双端口文章中的上游标签思路,但人格路由应与 A/B 流量切分正交。上线期在 info 级别记录路由决策,待错误预算稳定后再降级日志。
决策矩阵:单智能体、拆分 agents.json 与拆分网关进程
| 信号 | 倾向单智能体 | 倾向拆分 agents.json | 倾向拆分网关进程 |
|---|---|---|---|
| 工具面重叠度 | 高重叠、同类风险 | 低重叠、同一网关鉴权域 | 不同鉴权域或 TLS 证书 |
| 发布节奏 | 仅周更提示词 | 不同团队各管一份 JSON | 独立 SLO 或维护窗口 |
| 状态目录争用 | 写少、缓存小 | checkpoint 或插件 IO 重 | 合规审计需要硬隔离 |
| 运维成本 | 组件最少 | 中等:更多目录与路由测试 | 最高:双倍 launchd 与健康探测 |
在租用 Apple Silicon 上落地多智能体 OpenClaw 的八步
- 梳理过去 30 天内所有自动化与人工触发、命中网关的入口。
- 起草含研发与运维画像的
agents.json;工作区根按 白名单指南 绑定。 - 创建兄弟
OPENCLAW_STATE_DIR树,匹配属主与磁盘配额。 - 实现确定性路由规则,并为样例负载编写单元测试。
- 按人格部署 plist 或封装脚本;先在预发用
launchctl kickstart验证。 - 运行合成分流:路由错误时必须失败。
- 采集前后指标:被拒工具尝试次数与网关 p95 延迟。
- 文档化回滚:状态目录 tarball 与打 Git tag 的旧 JSON。
多智能体网关 SLO 信号
| 信号 | 阈值 | 动作 |
|---|---|---|
| 路由歧义率 | 请求中 > 0.1% | 冻结路由变更并补充显式匹配 |
| 状态目录交叉写 | 在声明根之外出现任意写 | 停止网关并从 checkpoint 快照恢复 |
| Git JSON 与主机文件漂移 | 任意未发布的 SSH 手改 | 回滚主机并强制仅 PR 部署 |
常见问题
| 问题 | 实务答复(2026-05-13) |
|---|---|
| 研发与运维是否应共享同一份模型允许列表? | 若成本统一治理可共享提供商列表;若运维作业必须更便宜或可离线端点,则拆分禁用模型列表。 |
事故中能否 SSH 热改 agents.json? |
仅在有配对重启计划与已打 Git 标签的前提下;否则优先改路由侧特性开关,爆炸半径更短。 |
为何 Mac mini M4 租用更适合多智能体 OpenClaw
高速 NVMe 与充足的统一内存可同时承载多份状态树、并行模型缓存与网关健康检查,避免在排练路由变更时 CI 仍在全量编译导致交换抖动。通过 定价页 对比区域容量;在扩大工具权限前,先把同事导向 SSH/VNC 指南。