163 lines
9.3 KiB
Markdown
163 lines
9.3 KiB
Markdown
# 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/<project-name>/repos/`
|
||
- `~/project/workspace/<project-name>/worktrees/`
|
||
- `~/project/workspace/<project-name>/shared/`
|
||
- `~/project/workspace/<project-name>/docs/`
|
||
- `~/project/workspace/<project-name>/scripts/`
|
||
- `~/project/workspace/<project-name>/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 免密配置
|