docs: prepare apply-ready multi-agent config patch
This commit is contained in:
@@ -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」的階段。
|
||||
|
||||
|
||||
236
docs/plans/2026-04-08-openclaw-config-apply-ready-patch.json
Normal file
236
docs/plans/2026-04-08-openclaw-config-apply-ready-patch.json
Normal file
@@ -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"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
52
docs/plans/2026-04-08-openclaw-config-apply-ready-runbook.md
Normal file
52
docs/plans/2026-04-08-openclaw-config-apply-ready-runbook.md
Normal file
@@ -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` 前,仍需總管明確同意
|
||||
Reference in New Issue
Block a user