Files
reporting-governance-plugin/docs/plans/2026-04-07-openclaw-config-draft.md

12 KiB
Raw Blame History

OpenClaw 多代理 Config 草案2026-04-07

本文件是把前面確認過的流程設計,轉成可實際落地的 OpenClaw 設定草案。

目標不是立刻套用,而是先把:

  • agent 名單
  • workspace 規劃
  • 權限邊界
  • agent-to-agent 允許圖
  • session 可見性
  • 模型配置

整理成一份可審、可再修的正式草案。


1. 設計原則

1.1 唯一入口

  • Eric 總管只對 Eve / coder 主會話 下旨
  • 不直接與下游功能型 agent 對話

1.2 下游只對 Eve 回報

  • prompt-optimizer
  • reviewer
  • research
  • engineering
  • ops

以上 5 個 agent 都只接受 Eve 派工,並只向 Eve 回報。

1.3 不做過重 routing

第一版不做複雜朝廷式多層 routing也不讓 Telegram 直接綁到其他 agent。

1.4 強調防失聯

  • 任務可失敗,但不可失聯
  • 任務可中斷,但不可無聲中斷
  • Eve 必須是持續追蹤與回報者

2. Agent 清單草案

建議第一版 agent list

  1. coderEve 主會話)
  2. prompt-optimizer
  3. reviewer
  4. research
  5. engineering
  6. ops

2.1 各 agent 定位

  • coderEve本體總調度
  • prompt-optimizer:整理執行版任務單
  • reviewer:驗收與複核
  • research:查找、比較、整理研究資訊
  • engineering:程式、除錯、測試、技術實作
  • ops部署、設定、服務、容器、log、系統診斷

3. Workspace 規劃

建議在 ~/.openclaw/ 下建立獨立工作區:

  • /home/alice/.openclaw/workspacecoderEve沿用現有主工作區
  • /home/alice/.openclaw/workspace-prompt-optimizer
  • /home/alice/.openclaw/workspace-reviewer
  • /home/alice/.openclaw/workspace-research
  • /home/alice/.openclaw/workspace-engineering
  • /home/alice/.openclaw/workspace-ops

3.1 工作區原則

  • Eve 使用主工作區
  • 每個功能型 agent 必須擁有自己獨立的 workspace
  • 禁止多個 agent 共用同一個工作目錄
  • 獨立工作區的目的是避免互相污染上下文、memory、tasks、logs 與操作痕跡
  • 若需要共享規格文件,可用明確同步方式,不靠隱晦 prompt 假設
  • config 草案中應盡量為每個 agent 明確寫出 workspace,不要依賴共享 default workspace

4. Session / Tool 邊界建議

4.1 tools.sessions.visibility

Schema 核對後,可選值重點如下:

選項比較

  • self:只看當前 session太窄
  • tree預設值;可看當前 session + 自己 spawn 出來的 subagent sessions
  • agent:可看同一個 agent id 下的 sessions但仍不等於跨 agent 調度
  • all:可看所有 sessions若要跨 agent仍需搭配 tools.agentToAgent

建議

本架構第一版仍建議用 all,但搭配嚴格 tools.agentToAgent.allow。 原因:

  • Eve 需要查其他 agent 的 session / history / send
  • tree 雖然較保守,但只涵蓋當前 session 與其下游,不足以支撐完整多代理中樞協調
  • all 不是單獨放行;跨 agent 仍受 tools.agentToAgent 約束

5. Agent-to-Agent 草案

5.1 是否啟用

建議:enabled: true

因為如果 Eve 要穩定派工與收件,多代理之間需要正式的 agent-to-agent 能力。

5.2 Allowlist 設計

第一版建議 allowlist 只放:

  • coder
  • prompt-optimizer
  • reviewer
  • research
  • engineering
  • ops

5.3 關係規則

雖然 allowlist 會包含全部 6 個 agent但實際制度規則應限定為

  • coder 可派給全部其他 agent
  • prompt-optimizer 只回 Eve不再往下派
  • reviewer 只回 Eve不再往下派
  • research 原則上只回 Eve
  • engineering 原則上只回 Eve
  • ops 原則上只回 Eve

注意

OpenClaw schema 對 tools.agentToAgent 目前只確認有:

  • enabled
  • allow

也就是說config 層目前只能做「名單放行」,無法細緻表達「誰可以找誰」的單向圖。 所以真正的單向制度,必須再由 prompt / workflow 規則約束。


6. 模型配置建議

6.1 Eve / coder

建議沿用:

  • cowbay/gpt-5.4

理由:

  • 要做總調度、驗收、判斷、整合
  • 需要較穩定的理解與管理能力

6.2 prompt-optimizer

建議:

  • cowbay/gpt-5.4 或較便宜但仍穩的型號

理由:

  • 需要理解模糊需求與整理結構
  • 若品質差,後面整條鏈都會歪

6.3 reviewer

建議:

  • cowbay/gpt-5.4

理由:

  • reviewer 的價值在嚴格判斷,不宜太弱

6.4 research / engineering / ops

可先統一:

  • cowbay/gpt-5.4

之後再視成本與品質,分別調整。

第一版建議

先全部用同一個穩定主模型,確認流程正確後再分模型。


7. Agent 草案結構schema 已確認)

Schema 核對後,每個 agents.list[] entry

必要欄位

  • id

第一版建議明確寫出的欄位

  • name
  • workspace
  • model

Schema 另有支援、可留待第二版評估的欄位

  • default
  • agentDir
  • skills
  • identity
  • tools
  • subagents
  • runtime
  • thinkingDefault
  • reasoningDefault
  • fastModeDefault

已額外核對到的可用欄位細節

  • identity:目前可放 name / theme / emoji / avatar
  • skills:是字串陣列,可作 agent skill allowlist
  • tools:可做 per-agent 工具限制(如 allow / alsoAllow / deny / profile 等)
  • subagents:目前至少確認可放 allowAgents / model / thinking
  • runtimeschema 有保留,但這次 lookup 沒展開出更細子欄位,暫不建議先寫死

因此,第一版 ready draft 先聚焦在:

  • 穩定 agent id
  • 明確 workspace
  • 明確 model
  • 先不把 prompt 制度細節誤塞進 config schema 不保證的欄位

概念草案

{
  "agents": {
    "defaults": {
      "model": {
        "primary": "cowbay/gpt-5.4"
      }
    },
    "list": [
      {
        "id": "coder",
        "name": "Eve"
      },
      {
        "id": "prompt-optimizer",
        "name": "Prompt Optimizer",
        "workspace": "/home/alice/.openclaw/workspace-prompt-optimizer"
      },
      {
        "id": "reviewer",
        "name": "Reviewer",
        "workspace": "/home/alice/.openclaw/workspace-reviewer"
      },
      {
        "id": "research",
        "name": "Research",
        "workspace": "/home/alice/.openclaw/workspace-research"
      },
      {
        "id": "engineering",
        "name": "Engineering",
        "workspace": "/home/alice/.openclaw/workspace-engineering"
      },
      {
        "id": "ops",
        "name": "Ops",
        "workspace": "/home/alice/.openclaw/workspace-ops"
      }
    ]
  }
}

8. 權限與制度邊界

8.1 Eve 的權限定位

  • 可接旨
  • 可派工
  • 可追蹤
  • 可驗收
  • 可整合回報

8.2 子代理共通限制

  • 不直接對總管發話
  • 不自行宣告正式完成
  • 高風險動作未授權前不可自行執行
  • 必須如實回報卡點、錯誤與風險

8.3 Reviewer 特別定位

  • 不是對上窗口
  • 不是第二個 Eve
  • 是 Eve 的驗收輔助與嚴格審查者

9. 第一版最小可行配置建議

若要先求穩,不必一次裝滿全部能力。

Phase 1

先開:

  • coder
  • prompt-optimizer
  • reviewer
  • engineering

用這組先驗證:

  • 接旨
  • prompt 優化
  • 單線技術任務
  • 驗收/退件
  • 正式回報

Phase 2

再加:

  • research
  • ops

驗證:

  • 研究支線
  • 運維支線
  • 並行任務

這樣比一次全開更穩。


10. 建議下一步

下一步建議分三件事做:

A. 保持「說明文件」與「ready draft JSON」分離

  • openclaw-config-ready-draft.json 應只保留 schema-backed config 欄位
  • metaphaseimplementationNotes 這類設計說明,應留在 markdown不要混進可套用 JSON

B. 第二輪優先決定哪些進階欄位要進第一版 config

建議優先順序:

  1. identity(可讀性高、風險低)
  2. skills(可限制每個 agent 看到的 skill 範圍)
  3. subagents.allowAgents(若要進一步約束誰能派誰,值得優先研究)
  4. tools(高價值,但需非常小心別把 agent 卡死)
  5. runtime / agentDir(先保守)

C. 真正的制度邊界,分清楚哪裡該放 config、哪裡該放 prompt

適合放 config

  • workspace
  • model
  • sessions visibility
  • agentToAgent allowlist
  • per-agent tool policy
  • skill allowlist

不適合假裝只靠 config 解決:

  • 只准 Eve 對總管回話
  • 子代理只能回 Eve
  • reviewer 不可越權判定完成
  • 失聯超時後的回報責任

D. 再建立各 agent 工作區與 prompt 檔案布局草案

例如:

  • SOUL.md
  • AGENTS.md
  • 是否共用某些規格文件

11. 結論

這份 config 草案的核心不是「多加幾個 agent」而是把制度落地成一個穩定的中樞模式

  • 總管只對 Eve 下旨
  • Eve 再決定是否走 optimizer
  • Eve 派給對應功能 agent
  • 所有結果先回 Eve
  • Eve 驗收後才正式回報

如果照這份草案走,後續實作時就不會再回到那種多層朝廷式、難控、容易失聯的狀態。

12. 下一輪收斂建議(往 config.patch 靠攏)

若要再往前一步,我建議下一輪直接產出兩份:

12.1 config.patch 候選版本

只包含:

  • agents.defaults
  • agents.list
  • tools.sessions.visibility
  • tools.agentToAgent

12.2 policy-notes.md 或沿用本檔

專門保存:

  • Eve 才是唯一對上窗口
  • 子代理只能回 Eve
  • reviewer 的角色界線
  • 失聯 / 超時 / 重派的程序正義

這樣可避免把制度描述誤塞進 schema 不保證存在的欄位,之後真的套用 config 時也較不容易踩坑。

13. 已產出的候選 patch 檔

本輪已另外落出兩份審查用文件:

  1. docs/plans/2026-04-07-openclaw-config-candidate-patch.json
  2. docs/plans/2026-04-07-openclaw-config-candidate-patch-notes.md

13.1 候選 patch 的策略

  • 以 live config 為基準做最小必要變更
  • 使用 JSON Merge Patch 語義
  • 明確以 agents.defaults.workspace: null 刪除共享 default workspace
  • 以完整 agents.list 替換現有單一 coder list

13.2 為什麼這份是 candidate patch不是直接套用版

因為在真正送進 gateway config.patch 前,仍需先確認:

  • 各工作區是否先建好
  • 是否加入 identity
  • 是否加入 skills
  • 是否加入 per-agent tools
  • 是否另外用 prompt / workflow 檔補足制度邊界

14. Near-Apply Candidate Patch2026-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: [] 只代表不能跨 agent 派工,不等於完全禁用 sessions_spawn
  • 若要真正禁止下游 agent 再往下派,需搭配 per-agent tools.deny: ["sessions_spawn"]
  • 是否還要細化 per-agent tool policy

15. Final Review Checklist2026-04-08

本輪已再產出:

  1. docs/plans/2026-04-08-openclaw-multi-agent-final-review-checklist.md

15.1 用途

這份文件不是再發散設計,而是把 near-apply 版進入真正套用前,還需要人工確認的點壓成 checklist。

15.2 焦點

  • skill allowlist 是否過窄
  • per-agent tools.deny 是否合理
  • coder 與下游 agent 的 delegation 邊界是否符合預期
  • 套用後需要用哪些驗證動作確認 policy 真的生效