# 2026-03-18 ## mac 集群角色语义更新 - 已确认新的稳定角色定义: - `mac-5 = brain`(控制与编排) - `mac-6 = hands`(执行与算力) - `mac-7 = eyes`(浏览器与验收) - 已据此修改记忆系统相关文档,使长期基线、记忆索引与当前运行态统一到这套角色语义 - 记忆系统规划保持不变: - 单 Gateway / 单记忆主入口仍在 `mac-5` - `mac-6` 与 `mac-7` 仍作为 Node Host,不各自演化为独立控制面 ## opencode 默认模型规则更新 - 原先“`opencode` 默认使用各机器本地模型”的描述已失效,不应继续作为当前默认规则使用 - 当前生效的默认策略为: - `mac-5`:`opencode/minimax-m2.5-free` - `mac-6`:`vllm/Qwen3.5-27B` via `http://100.64.0.5:8000/v1` - `mac-7`:`vllm/Qwen3.5-27B` via `http://100.64.0.5:8000/v1` ## 验证记录 - `mac-5` 上 direct `opencode` 与 ACP 最小测试已通过 `opencode/minimax-m2.5-free` - 从 `mac-6` / `mac-7` 实测 `http://100.64.0.5:8000/v1/models`,可见模型: - `Qwen3.5-27B` - 已将 `mac-6` / `mac-7` 的 `~/.config/opencode/opencode.json` 更新为 `vllm` provider 配置 - `mac-6` ACP 最小测试结果:`MAC6_VLLM_ACP_OK` - `mac-7` ACP 最小测试结果:`MAC7_VLLM_ACP_OK` ## opencode provider/default 切换(mac-5) - hotwa 要求撤掉 `opencode` 上一会话里为 `Kimi For Coding` 临时接入的 `ckimi` provider - 原因:`Kimi For Coding` 当前仅面向 Coding Agents(如 Kimi CLI / Claude Code / Roo Code / Kilo Code 等),不支持当前这条 `opencode` 使用路径 - 已将 `~/.config/opencode/opencode.json` 改为: - 删除 `ckimi` provider - 新默认 provider:`infini` - 新默认模型:`infini/kimi-k2.5` - `baseURL`:`https://cloud.infini-ai.com/maas/coding/v1` - `apiKey`:`{env:WARP_INFINI_API_KEY}` - 已用 `opencode models infini` 最小校验,返回:`infini/kimi-k2.5` - 结论:`mac-5` 的当前 `opencode` 默认模型基线,已从 `opencode/minimax-m2.5-free` 调整为 `infini/kimi-k2.5` ## 备注 - 这次更新针对的是 `opencode` 默认模型策略,不等于废弃原有 subagent / worker 的本地模型拓扑说明 - 后续涉及 `opencode` 默认模型时,应优先引用本日规则,而不是旧的“每机默认本地 oMLX”说法 ## 工程目录默认规则确定 - 已确定正式工程项目的默认根目录使用:`~/project/workspace` - 理由: - 与 `~/openclawd` 运行时目录分离 - 与 `~/project/collective-memory-repo` 记忆系统分离 - 便于 `mac-5` / `mac-6` / `mac-7` 统一使用相同路径语义 - 便于 OpenClaw / ACP / OpenCode 默认按统一路径落盘与调度 - 已确定每个正式项目使用项目容器结构: - `~/project/workspace//repos/` - `~/project/workspace//worktrees/` - `~/project/workspace//shared/` - `~/project/workspace//docs/` - `~/project/workspace//scripts/` - `~/project/workspace//tmp/` - 多机协作默认采用方案 A: - 三台机器各自保留本地项目副本 - 代码同步以 git remote 为主 - 不以文件级实时同步 `.git` / `worktree` 元数据作为主协作方式 - 项目环境管理规则已补充: - 每个正式项目默认优先使用 Pixi 管理环境 - 每个项目应有 `pixi.toml` - `.pixi/` 不纳入 git 跟踪 - 若 Pixi 失效或不适用,可使用 UV 作为后备方案 - 默认应把 Pixi 作为首选项目环境管理器 - 已新增长期决策文档:`shared/long-term/decisions/project-workspace-layout.md` - 已新增可复用初始化脚本:`scripts/init-project-workspace.sh` - 用于快速创建标准项目容器目录 - 会初始化 `repos/`、`worktrees/`、`shared/`、`docs/`、`scripts/`、`tmp/` - 会生成项目级 `docs/PROJECT-RULES.md` - 该规则文档内已包含 Pixi 优先、`.pixi/` 不跟踪、UV 作为后备方案的说明 ## 自我提升技能与长期记忆的衔接规则 - hotwa 明确要求:自我提升(self-improving)skill 在使用过程中形成的关键反思结论,不应只停留在 skill 局部记忆 - 若反思结果具有长期指导意义(如:稳定偏好、持续纠错模式、工作流程规则、可复用经验结论),应同步写入正式记忆系统 `collective-memory-repo` - 若只是一次性、临时性、上下文强绑定的反思,则不必强行提升为长期记忆 - 结论:self-improving 负责发现与总结,durable memory 负责沉淀长期有效规则 - 已新增长期 lesson 文档:`shared/long-term/lessons/self-improving-memory-sync.md` ## 浏览器控制职责分流决策 - hotwa 明确确认新的稳定浏览器策略: - `mac-5` 主要用于接管本机真实 Chrome 会话(human-in-the-loop / signed-in session / existing-session 优先) - `mac-7` 主要用于自动化浏览器任务(service-like / unattended automation / browser worker) - 该分流的原因: - `mac-5 = brain` 适合本机控制与交互式接管 - `mac-7 = eyes` 适合作为浏览器执行与验收节点 - 不应把 `user/existing-session` 与远程 raw CDP 混成同一条默认路径 - 实施建议: - `mac-5` 侧优先配置本机 `user` / `existing-session` profile,用于接管当前登录浏览器 - `mac-7` 侧优先作为独立自动化浏览器承载机,可采用 OpenClaw managed browser 或明确的 remote CDP 启动方式 - 若 `mac-5` 要控制 `mac-7` 的浏览器,应视为远程自动化路径,而不是 `mac-5` 本机会话接管路径 - 已新增长期决策文档:`shared/long-term/decisions/browser-role-split-mac5-mac7.md` - 当日验证结果补充: - `mac-5` 本机 Chrome 接管(`browser profile=user` / `existing-session` / `chrome-mcp`)已测通 - `openclaw browser --browser-profile user status` 返回 `running: true` - `openclaw browser --browser-profile user tabs` 可见当前本机标签页,说明 mac-5 本机会话接管可直接使用 - `mac-7` 自动化 Chrome LaunchAgent 已建立:`~/Library/LaunchAgents/com.lingyuzeng.chrome-cdp-mac7.plist` - `mac-7` 持久化本地 CDP 监听端口为 `127.0.0.1:9333` - `mac-7` 自动化 Chrome profile 路径为 `~/.openclaw/browser/mac7-automation-profile` - `mac-7` 持久化 tailnet 转发入口已建立:`100.64.0.23:9223 -> 127.0.0.1:9333` - 对应 LaunchAgent:`~/Library/LaunchAgents/com.lingyuzeng.chrome-cdp-tailnet-proxy-mac7.plist` - 对应代理脚本:`~/.openclaw/bin/chrome_cdp_tailnet_proxy.py` - 已验证 `http://100.64.0.23:9223/json/version` 返回 `200 OK`,可直接提供标准 CDP 元数据与 `webSocketDebuggerUrl` - `tailscale serve` 当前仍未使用;正式持久化方案改为 LaunchAgent + Python TCP proxy - 因此后续引用时可直接视为: - 稳定本地自动化入口:`mac-7 127.0.0.1:9333` - 稳定 tailnet 远程入口:`mac-7 100.64.0.23:9223` ## mac-7 automation Chrome LaunchAgent 修正 - 用户观察到 mac-7 自动化 Chrome 会不断新增空白页;远程 `remote-mac7` profile 看到的空白 tab 一度累积到大量 `about:blank` - 现场排查确认:问题不在 mac-5 的 remote CDP profile,而在 mac-7 本地 LaunchAgent `com.lingyuzeng.chrome-cdp-mac7` - 原始问题配置特征: - `KeepAlive = true` - 直接执行 Chrome 二进制 - `ProgramArguments` 包含 `about:blank` - 实际运行机理: - Chrome 发现 automation profile 的现有会话已存在 - 输出“正在现有的浏览器会话中打开。”后退出 `0` - launchd 因 `KeepAlive=true` 立即再次拉起 - 从而持续向同一会话注入新的 `about:blank` tab - 修正后的 durable 方案: - 去掉 `KeepAlive` - 不再由 launchd 直接反复 exec Chrome - 改为执行包装脚本:`~/.openclaw/bin/start_chrome_cdp_mac7.sh` - 包装脚本会先检查 `127.0.0.1:9333` 是否已监听;若已存在则直接退出,否则仅启动一次 automation Chrome - 修正后验证: - `127.0.0.1:9333` 正常监听 - `/json/version` 正常返回标准 CDP 信息 - 远程 tabs 数复测稳定,不再持续增长 - 运维提示: - 未来若再次出现空白 tab 不断增长,优先检查该 plist 是否误恢复为 `KeepAlive + 直接执行 Chrome + about:blank` 这一旧模式 - 补充清理: - 已清空 mac-7 上相关历史日志: - `~/Library/Logs/chrome-cdp-mac7.stdout.log` - `~/Library/Logs/chrome-cdp-mac7.stderr.log` - 已新增长期 runbook: - `shared/long-term/projects/mac7-browser-worker-runbook.md` - 用于集中记录 mac-7 browser worker 的 LaunchAgent、脚本、端口、验证命令、事故根因与排障入口 ## GitHub 协作身份与默认代码提交流程 - hotwa 本人的 GitHub 用户名是 `hotwa` - hotwa 专门为 Claw 配置了一个 GitHub 账号:`work2ai` - `mac-5`、`mac-6`、`mac-7` 三台机器都应配置 `GH_TOKEN`,用于让 Claw 代表 `work2ai` 执行 GitHub 相关操作 - `work2ai` 被视为 Claw 的默认 GitHub 执行身份 - 当后续遇到 hotwa 的代码仓库,且需要安全隔离开发流程时,默认采用: 1. 用 `work2ai` fork `hotwa` 的仓库 2. 在 fork 中修改与测试 3. 通过 Pull Request 向 hotwa 上游仓库发起合并请求 - 该流程优先于直接在 hotwa 本人仓库上做高风险改动,除非 hotwa 明确要求直接操作上游仓库 - hotwa 已说明:若后续需要,还会补充 `mac-5`、`mac-6`、`mac-7` 到 `work2ai` 相关 SSH 免密配置