From 3b65829ad7705f905fa74bbfe7ebcb622ae58da9 Mon Sep 17 00:00:00 2001 From: Eve Date: Wed, 8 Apr 2026 08:34:53 +0800 Subject: [PATCH] docs: prepare apply-ready multi-agent config patch --- .../plans/2026-04-07-openclaw-config-draft.md | 15 ++ ...-08-openclaw-config-apply-ready-patch.json | 236 ++++++++++++++++++ ...-08-openclaw-config-apply-ready-runbook.md | 52 ++++ 3 files changed, 303 insertions(+) create mode 100644 docs/plans/2026-04-08-openclaw-config-apply-ready-patch.json create mode 100644 docs/plans/2026-04-08-openclaw-config-apply-ready-runbook.md diff --git a/docs/plans/2026-04-07-openclaw-config-draft.md b/docs/plans/2026-04-07-openclaw-config-draft.md index 7b84911..5d64691 100644 --- a/docs/plans/2026-04-07-openclaw-config-draft.md +++ b/docs/plans/2026-04-07-openclaw-config-draft.md @@ -442,3 +442,18 @@ Schema 核對後,每個 `agents.list[]` entry: - `coder` 與下游 agent 的 delegation 邊界是否符合預期 - 套用後需要用哪些驗證動作確認 policy 真的生效 +## 16. Apply-Ready Patch(2026-04-08) + +本輪已再產出: + +1. `docs/plans/2026-04-08-openclaw-config-apply-ready-patch.json` +2. `docs/plans/2026-04-08-openclaw-config-apply-ready-runbook.md` + +### 16.1 用途 +- `apply-ready-patch.json`:純 `gateway config.patch` payload 候選版 +- `apply-ready-runbook.md`:套用前後的操作順序與驗證清單 + +### 16.2 邊界 +這份 apply-ready patch 仍然**沒有被套用**。 +它的意義是:設計與文件已收斂到可以進入「等待總管批准後再 patch」的階段。 + diff --git a/docs/plans/2026-04-08-openclaw-config-apply-ready-patch.json b/docs/plans/2026-04-08-openclaw-config-apply-ready-patch.json new file mode 100644 index 0000000..ed9752b --- /dev/null +++ b/docs/plans/2026-04-08-openclaw-config-apply-ready-patch.json @@ -0,0 +1,236 @@ +{ + "agents": { + "defaults": { + "workspace": null + }, + "list": [ + { + "id": "coder", + "name": "Eve", + "workspace": "/home/alice/.openclaw/workspace", + "model": { + "primary": "cowbay/gpt-5.4", + "fallbacks": [ + "ollama/minimax-m2.5:cloud", + "cowbay/minimax/minimax-m2.5:free", + "cowbay/kilo-auto/free" + ] + }, + "identity": { + "name": "Eve", + "theme": "gentle coordinator and overseer", + "emoji": "🤖" + }, + "skills": [ + "using-superpowers", + "executing-plans", + "requesting-code-review", + "verification-before-completion", + "writing-plans", + "using-git-worktrees", + "subagent-driven-development" + ], + "subagents": { + "allowAgents": [ + "prompt-optimizer", + "reviewer", + "research", + "engineering", + "ops" + ] + } + }, + { + "id": "prompt-optimizer", + "name": "Prompt Optimizer", + "workspace": "/home/alice/.openclaw/workspace-prompt-optimizer", + "model": { + "primary": "cowbay/gpt-5.4", + "fallbacks": [ + "ollama/minimax-m2.5:cloud", + "cowbay/minimax/minimax-m2.5:free", + "cowbay/kilo-auto/free" + ] + }, + "identity": { + "name": "Prompt Optimizer", + "theme": "task clarification and execution drafting", + "emoji": "🧭" + }, + "skills": [ + "using-superpowers" + ], + "tools": { + "deny": [ + "message", + "gateway", + "cron", + "nodes", + "sessions_spawn" + ] + }, + "subagents": { + "allowAgents": [] + } + }, + { + "id": "reviewer", + "name": "Reviewer", + "workspace": "/home/alice/.openclaw/workspace-reviewer", + "model": { + "primary": "cowbay/gpt-5.4", + "fallbacks": [ + "ollama/minimax-m2.5:cloud", + "cowbay/minimax/minimax-m2.5:free", + "cowbay/kilo-auto/free" + ] + }, + "identity": { + "name": "Reviewer", + "theme": "strict verification and evidence review", + "emoji": "🛡️" + }, + "skills": [ + "using-superpowers", + "verification-before-completion", + "requesting-code-review" + ], + "tools": { + "deny": [ + "message", + "gateway", + "cron", + "nodes", + "sessions_spawn" + ] + }, + "subagents": { + "allowAgents": [] + } + }, + { + "id": "research", + "name": "Research", + "workspace": "/home/alice/.openclaw/workspace-research", + "model": { + "primary": "cowbay/gpt-5.4", + "fallbacks": [ + "ollama/minimax-m2.5:cloud", + "cowbay/minimax/minimax-m2.5:free", + "cowbay/kilo-auto/free" + ] + }, + "identity": { + "name": "Research", + "theme": "source-based investigation and comparison", + "emoji": "🔎" + }, + "skills": [ + "using-superpowers", + "tavily-search", + "serpapi", + "github" + ], + "tools": { + "deny": [ + "message", + "gateway", + "cron", + "nodes", + "sessions_spawn" + ] + }, + "subagents": { + "allowAgents": [] + } + }, + { + "id": "engineering", + "name": "Engineering", + "workspace": "/home/alice/.openclaw/workspace-engineering", + "model": { + "primary": "cowbay/gpt-5.4", + "fallbacks": [ + "ollama/minimax-m2.5:cloud", + "cowbay/minimax/minimax-m2.5:free", + "cowbay/kilo-auto/free" + ] + }, + "identity": { + "name": "Engineering", + "theme": "implementation debugging and validation", + "emoji": "🧰" + }, + "skills": [ + "using-superpowers", + "test-patterns", + "requesting-code-review", + "verification-before-completion" + ], + "tools": { + "deny": [ + "message", + "gateway", + "cron", + "nodes", + "sessions_spawn" + ] + }, + "subagents": { + "allowAgents": [] + } + }, + { + "id": "ops", + "name": "Ops", + "workspace": "/home/alice/.openclaw/workspace-ops", + "model": { + "primary": "cowbay/gpt-5.4", + "fallbacks": [ + "ollama/minimax-m2.5:cloud", + "cowbay/minimax/minimax-m2.5:free", + "cowbay/kilo-auto/free" + ] + }, + "identity": { + "name": "Ops", + "theme": "operations diagnostics and safe change planning", + "emoji": "⚙️" + }, + "skills": [ + "using-superpowers", + "healthcheck", + "github" + ], + "tools": { + "deny": [ + "message", + "gateway", + "cron", + "nodes", + "sessions_spawn" + ] + }, + "subagents": { + "allowAgents": [] + } + } + ] + }, + "tools": { + "sessions": { + "visibility": "all" + }, + "agentToAgent": { + "enabled": true, + "allow": [ + "coder", + "prompt-optimizer", + "reviewer", + "research", + "engineering", + "ops" + ] + } + } +} diff --git a/docs/plans/2026-04-08-openclaw-config-apply-ready-runbook.md b/docs/plans/2026-04-08-openclaw-config-apply-ready-runbook.md new file mode 100644 index 0000000..757533f --- /dev/null +++ b/docs/plans/2026-04-08-openclaw-config-apply-ready-runbook.md @@ -0,0 +1,52 @@ +# 2026-04-08 OpenClaw Apply-Ready Patch Runbook + +這份文件的用途,是把 `2026-04-08-openclaw-config-apply-ready-patch.json` 的使用方式講清楚。 + +## 1. 定位 +- 這份 `apply-ready patch` 是**純 payload** +- 不包含設計說明、備忘、註解或非 schema 欄位 +- 目標:在總管明確批准後,可直接作為 `gateway config.patch` 的候選輸入 + +## 2. 套用前條件 +套用前應先確認: +- 各 agent workspace 已存在 +- prompt / workflow 檔案已建立 +- 總管已明確批准進行 config 變更 +- 已準備好套用後驗證步驟 + +## 3. 套用前建議順序 +1. 重新讀取目前 live config 的 `agents` / `tools.sessions` / `tools.agentToAgent` +2. 再次確認這份 patch 仍符合最新設計 +3. 取得總管明確批准 +4. 執行 `gateway config.patch` +5. 套用後立刻做驗證 + +## 4. 套用後必驗項 +### 4.1 結構驗證 +- `agents.list` 應為 6 個 agent +- `agents.defaults.workspace` 應被刪除 +- 每個 agent 應有自己的 `workspace` +- `tools.sessions.visibility` 應為 `all` +- `tools.agentToAgent.enabled` 應為 `true` + +### 4.2 行為驗證 +- `coder` → `reviewer` 的 `sessions_spawn` 應成功 +- `reviewer` → `engineering` 的 `sessions_spawn` 應失敗 +- 下游 agent 呼叫 `message` / `gateway` / `cron` / `nodes` 應被拒絕 +- 下游 agent 呼叫 `sessions_spawn` 應被拒絕 + +### 4.3 邊界驗證 +- `skills` allowlist 應如預期生效 +- `tools.deny` 應如預期生效 +- 子代理不應直接越過 Eve 對上回話 + +## 5. 失敗時回退策略 +如果套用後驗證失敗: +1. 先停止繼續擴大測試 +2. 立即回報總管與 Eve 的驗證結果 +3. 重新讀取 live config 差異 +4. 視情況用新的 `config.patch` 修正,或回退到先前配置 + +## 6. 注意 +- 這份檔案雖然叫 apply-ready,但**仍不等於已批准套用** +- 真正執行 `gateway config.patch` 前,仍需總管明確同意