Files
collective-memory-repo/daily/2026-03-18.md
2026-03-18 22:51:19 +08:00

163 lines
9.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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-improvingskill 在使用过程中形成的关键反思结论,不应只停留在 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 免密配置