docs: draft near-apply multi-agent config patch
This commit is contained in:
@@ -406,3 +406,23 @@ Schema 核對後,每個 `agents.list[]` entry:
|
|||||||
- 是否加入 per-agent `tools`
|
- 是否加入 per-agent `tools`
|
||||||
- 是否另外用 prompt / workflow 檔補足制度邊界
|
- 是否另外用 prompt / workflow 檔補足制度邊界
|
||||||
|
|
||||||
|
## 14. Near-Apply Candidate Patch(2026-04-08)
|
||||||
|
|
||||||
|
本輪已進一步產出:
|
||||||
|
|
||||||
|
1. `docs/plans/2026-04-08-openclaw-config-near-apply-candidate-patch.json`
|
||||||
|
2. `docs/plans/2026-04-08-openclaw-config-near-apply-candidate-patch-notes.md`
|
||||||
|
|
||||||
|
### 14.1 相較前一版 candidate patch 的新增內容
|
||||||
|
- 每個 agent 補 `identity`
|
||||||
|
- 每個 agent 補最小 `skills` allowlist
|
||||||
|
- 每個下游 agent 補保守的 `tools.deny`
|
||||||
|
- 用 `subagents.allowAgents` 進一步表達派工邊界
|
||||||
|
|
||||||
|
### 14.2 這版仍然不是直接套用版
|
||||||
|
雖然已接近可套用,但仍需先審查:
|
||||||
|
- `skills` 是否過窄
|
||||||
|
- `tools.deny` 是否卡住實際流程
|
||||||
|
- `subagents.allowAgents` 空陣列在 runtime 是否符合預期
|
||||||
|
- 是否還要細化 per-agent tool policy
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,57 @@
|
|||||||
|
# 2026-04-08 OpenClaw Near-Apply Candidate Patch Notes
|
||||||
|
|
||||||
|
這份 near-apply candidate patch 是在前一版 candidate patch 基礎上,再補進第一輪值得落進 config 的進階欄位:
|
||||||
|
- `identity`
|
||||||
|
- `skills`
|
||||||
|
- per-agent `tools.deny`
|
||||||
|
- `subagents.allowAgents`
|
||||||
|
|
||||||
|
## 1. 設計策略
|
||||||
|
本版仍維持:
|
||||||
|
- 每個 agent 獨立 workspace
|
||||||
|
- `tools.sessions.visibility = "all"`
|
||||||
|
- `tools.agentToAgent.enabled = true`
|
||||||
|
- `tools.agentToAgent.allow = 6-agent allowlist`
|
||||||
|
|
||||||
|
但額外補強:
|
||||||
|
- 讓每個 agent 在 UI / prompt 注入層面有更清楚的身份
|
||||||
|
- 讓每個 agent 只看到與自己任務相稱的 skill 範圍
|
||||||
|
- 用 per-agent `tools.deny` 先保守收掉不應直接使用的高影響工具
|
||||||
|
- 用 `subagents.allowAgents` 表達 Eve 可以派下游、下游原則上不再往下派
|
||||||
|
|
||||||
|
## 2. 為什麼先用 `tools.deny`
|
||||||
|
這一版先採保守 deny:
|
||||||
|
- `message`
|
||||||
|
- `gateway`
|
||||||
|
- `cron`
|
||||||
|
- `nodes`
|
||||||
|
|
||||||
|
原因:
|
||||||
|
- 這些工具最容易越過 Eve 的單一對上窗口
|
||||||
|
- 也容易導致對外發送、改 config、排程、裝置互動等高影響動作
|
||||||
|
- 先收緊,再視實際需要局部放開,比一開始放太寬安全
|
||||||
|
|
||||||
|
## 3. `subagents.allowAgents` 的角色
|
||||||
|
- `coder`:允許派給 5 個下游 agent
|
||||||
|
- 其餘 5 個 agent:先設為空陣列,表達原則上不再往下派
|
||||||
|
|
||||||
|
注意:
|
||||||
|
這有助於把制度往 config 靠攏,但仍不等於完整的程序正義。真正的「只能回 Eve、不可越權完成」仍需 prompt / workflow 一起約束。
|
||||||
|
|
||||||
|
## 4. `skills` 的策略
|
||||||
|
這一版只放最小、角色對應的 allowlist:
|
||||||
|
- `prompt-optimizer`:偏任務整理
|
||||||
|
- `reviewer`:偏驗證與 code review
|
||||||
|
- `research`:偏搜尋與資料整理
|
||||||
|
- `engineering`:偏測試、驗證、技術交付
|
||||||
|
- `ops`:偏健康檢查與維運研究
|
||||||
|
|
||||||
|
## 5. 套用前最後仍需確認的點
|
||||||
|
1. `tools.deny` 是否會與實際流程衝突
|
||||||
|
2. `skills` allowlist 是否過窄,導致 agent 看不到必要 skill
|
||||||
|
3. `subagents.allowAgents: []` 是否在實際 schema / runtime 下等價於完全禁止往下派
|
||||||
|
4. 是否還要補 per-agent `tools.exec` / `tools.elevated` / `tools.fs` 細節
|
||||||
|
|
||||||
|
## 6. 建議定位
|
||||||
|
- 這份檔案已比前一版更接近可套用
|
||||||
|
- 但仍應先做人工審查,不建議直接拿去 patch live gateway
|
||||||
@@ -0,0 +1,231 @@
|
|||||||
|
{
|
||||||
|
"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"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"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"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"subagents": {
|
||||||
|
"allowAgents": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"tools": {
|
||||||
|
"sessions": {
|
||||||
|
"visibility": "all"
|
||||||
|
},
|
||||||
|
"agentToAgent": {
|
||||||
|
"enabled": true,
|
||||||
|
"allow": [
|
||||||
|
"coder",
|
||||||
|
"prompt-optimizer",
|
||||||
|
"reviewer",
|
||||||
|
"research",
|
||||||
|
"engineering",
|
||||||
|
"ops"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user