diff --git a/docs/INDEX.md b/docs/INDEX.md index 544a7ca..a1ed65f 100644 --- a/docs/INDEX.md +++ b/docs/INDEX.md @@ -1,6 +1,6 @@ # KingClawArmy 文件索引 -> 版本:v4.0 | 更新日期:2026-04-09 +> 版本:v4.1 | 更新日期:2026-04-10 --- @@ -12,7 +12,8 @@ |---|---| | [spec_v4_system_overview.md](spec/spec_v4_system_overview.md) | 系統目標、設計原則、整體架構、為什麼只用 OpenClaw | | [spec_v4_org_and_roles.md](spec/spec_v4_org_and_roles.md) | 組織架構、Agent 清單(15~17 agents)、各角色定義 | -| [spec_v4_collaboration_scheduling_memory.md](spec/spec_v4_collaboration_scheduling_memory.md) | 協作模式、排程觸發、記憶架構、Discord Server 結構 | +| [spec_v4_collaboration_protocol.md](spec/spec_v4_collaboration_protocol.md) | **協作協定**:Message Envelope、Intent 類型、Pipeline 架構(策略師主導)、spawn/send 規則、輸出 Schema、Review Gate、HITL、錯誤處理 | +| [spec_v4_collaboration_scheduling_memory.md](spec/spec_v4_collaboration_scheduling_memory.md) | 排程觸發、記憶架構、Discord Server 結構 | | [spec_v4_rollout_and_risks.md](spec/spec_v4_rollout_and_risks.md) | 上線計畫(Phase 0~5)、風險限制、成本控制、停損信號 | --- @@ -25,8 +26,9 @@ |---|---| | [guide_openclaw_config.md](guides/guide_openclaw_config.md) | openclaw.json 結構、Discord 接入、Gateway 管理、常用指令 | | [guide_workspace_files.md](guides/guide_workspace_files.md) | 8 個 Workspace 設定檔的正確用途與應放內容 | -| [guide_sessions_tools.md](guides/guide_sessions_tools.md) | sessions_spawn / sessions_send 參數、使用場景、Agents vs Sub-agent run 的區別 | -| [agent_roster.md](agent_roster.md) | 全體 Agent 花名冊:職稱、代號、模型、狀態、輸出格式 | +| [guide_sessions_tools.md](guides/guide_sessions_tools.md) | **sessions_spawn / sessions_send 行為**:maxSpawnDepth 工具權限、判斷規則、常見錯誤 | +| [guide_tools_skills.md](guides/guide_tools_skills.md) | **MCP Tools & Skills 配置**:每個角色的外部工具/技能、安裝方式、安全注意事項 | +| [agent_roster.md](agent_roster.md) | 全體 Agent 花名冊:職稱、代號、模型、狀態、輸出格式、工具/技能配置 | --- @@ -40,3 +42,16 @@ | Phase 3 | 行銷閉環(3 agents) | 待開始 | | Phase 4 | 內容閉環(2 agents) | 待開始 | | Phase 5 | 工程團隊(依需求) | 待開始 | + +--- + +## v4.0 → v4.1 主要變更 + +| 變更 | 說明 | +|---|---| +| 新增協作協定 | Message Envelope + Intent 取代自由文字溝通 | +| Pipeline 改由策略師主導 | CEO 只管啟動和例外,策略師 own 量化 pipeline | +| 修正 spawn/send 行為 | 釐清 maxSpawnDepth、sessions_send 不授權給子 agent | +| 新增輸出 Schema | 每個 agent 的 JSON 輸出格式定義 | +| 新增工具/技能配置 | 每個角色的 MCP Tools + Skills 對照表 | +| Standing Orders → Lobster DSL | Pipeline 流程改用結構化定義 | diff --git a/docs/agent_roster.md b/docs/agent_roster.md index 33c8d4c..30d5452 100644 --- a/docs/agent_roster.md +++ b/docs/agent_roster.md @@ -1,28 +1,44 @@ # KingClawArmy Agent 花名冊 -> 更新日期:2026-04-09 +> 更新日期:2026-04-10 +> 版本:v4.1(新增工具/技能配置、修正 pipeline 流程) --- ## 管理團隊(Phase 1) -| 職稱 | Emoji | Agent ID | 模型 | 狀態 | 輸出格式 | -|---|---|---|---|---|---| -| 執行長 | 🎯 | `ceo_coo` | gpt-5.4 | 常駐 | `Task_Spec.json`, `Final_Decision_Packet.json` | -| 秘書 | 📋 | `secretary` | gpt-5.4-mini | 常駐 | `Meeting_Summary.json`, `State_Diff.json`, `Todo_List.json` | -| 審查員 | 🔍 | `reviewer` | gpt-5.4 | Warm | `Review_Report.json` | +| 職稱 | Emoji | Agent ID | 模型 | 狀態 | 輸出格式 | MCP Tools | Skills | +|---|---|---|---|---|---|---|---| +| 執行長 | 🎯 | `ceo_coo` | gpt-5.4 | 常駐 | `Task_Spec.json`, `Final_Decision_Packet.json` | — | — | +| 秘書 | 📋 | `secretary` | gpt-5.4-mini | 常駐 | `Meeting_Summary.json`, `State_Diff.json`, `Todo_List.json` | — | GOG(選配) | +| 審查員 | 🔍 | `reviewer` | gpt-5.4 | Warm | `Review_Report.json` | — | — | ## 量化研究團隊(Phase 2) -| 職稱 | Emoji | Agent ID | 模型 | 狀態 | 輸出格式 | -|---|---|---|---|---|---| -| 財經情報研究員 | 💹 | `finance_researcher` | gpt-5.4-mini | 喚醒 | `Finance_Research_Brief.json` | -| 市場結構研究員 | 📈 | `market_structure_researcher` | gpt-5.4-mini | 喚醒 | `Market_Structure_Report.json` | -| 多方研究員 | 🚀 | `bullish_researcher` | gpt-5.4-mini | 喚醒 | `Bullish_Brief.json` | -| 空方研究員 | 🛡️ | `bearish_researcher` | gpt-5.4-mini | 喚醒 | `Bearish_Brief.json` | -| 量化策略師 | 🧭 | `quant_strategist` | gpt-5.4 | 喚醒 | `Strategy_Thesis.json` | -| 量化工程師 | ⚙️ | `quant_engineer` | gpt-5.4 | 喚醒 | `Backtest_Report.json` | -| 資料分析師 | 🧪 | `data_analyst` | gpt-5.4-mini | 喚醒 | `Data_Analysis_Report.json` | +| 職稱 | Emoji | Agent ID | 模型 | 狀態 | 輸出格式 | MCP Tools | Skills | +|---|---|---|---|---|---|---|---| +| 財經情報研究員 | 💹 | `finance_researcher` | gpt-5.4-mini | 喚醒 | `Finance_Research_Brief.json` | Tavily, Firecrawl, Financial Datasets | Deep Research | +| 市場結構研究員 | 📈 | `market_structure_researcher` | gpt-5.4-mini | 喚醒 | `Market_Structure_Report.json` | TradingView, Alpha Vantage | Deep Research | +| 多方研究員 | 🚀 | `bullish_researcher` | gpt-5.4-mini | 喚醒 | `Bullish_Brief.json` | — | — | +| 空方研究員 | 🛡️ | `bearish_researcher` | gpt-5.4-mini | 喚醒 | `Bearish_Brief.json` | — | — | +| 量化策略師 | 🧭 | `quant_strategist` | gpt-5.4 | 喚醒 | `Strategy_Thesis.json` | — | — | +| 回測工程師 | ⚙️ | `quant_engineer` | gpt-5.4 | 喚醒 | `Backtest_Report.json` | E2B / FinClaw | Code Reviewer | +| 資料分析師 | 🧪 | `data_analyst` | gpt-5.4-mini | 喚醒 | `Data_Analysis_Report.json` | E2B, Plotly | Deep Research | + +## 行銷策略團隊(Phase 3 — 預規劃) + +| 職稱 | Emoji | Agent ID | 模型 | 狀態 | 輸出格式 | MCP Tools | Skills | +|---|---|---|---|---|---|---|---| +| 市場研究員 | 🔎 | `market_researcher` | gpt-5.4-mini | 喚醒 | `Market_Research_Brief.json` | Tavily, Exa, Firecrawl | Deep Research | +| 策略總監 | 🎯 | `strategy_director` | gpt-5.4 | 喚醒 | `Brand_Strategy_Plan.json` | — | — | +| 投放分析師 | 📊 | `ads_analyst` | gpt-5.4-mini | 喚醒 | `Ads_Performance_Report.json` | 廣告平台 API, Plotly | — | + +## 內容創意團隊(Phase 4 — 預規劃) + +| 職稱 | Emoji | Agent ID | 模型 | 狀態 | 輸出格式 | MCP Tools | Skills | +|---|---|---|---|---|---|---|---| +| 文案撰寫員 | ✏️ | `copywriter` | gpt-5.4 | 喚醒 | `Copywriting_Pack.json` | — | SEO Blog Writer | +| 創意總監 | 🎨 | `creative_director` | gpt-5.4 | 喚醒 | `Creative_Brief.json` | DALL-E / Flux, Firecrawl | — | ## 閒聊 @@ -32,60 +48,98 @@ --- +## 內建工具分配 + +每個 agent 除了外部 MCP/Skills 外,還有 OpenClaw 內建工具: + +| Agent | 內建工具 | +|---|---| +| 🎯 CEO | `sessions_spawn`, `sessions_send`, `cron`, `memory_search`, Discord 工具 | +| 📋 秘書 | `memory_search`, `memory_write`, Discord 工具 | +| 🔍 審查員 | `memory_search` | +| 💹 情報員 | `memory_write`, `memory_search` | +| 📈 市場結構 | `memory_search` | +| 🚀 多方 | `memory_search` | +| 🛡️ 空方 | `memory_search` | +| 🧭 策略師 | `memory_search`, `sessions_spawn`, `subagents`, `sessions_list`, `sessions_history` | +| ⚙️ 回測 | `exec`, `code_execution`, `file_ops`, `memory_write` | +| 🧪 資料分析 | `code_execution`, `memory_search`, `memory_write` | + +> **注意:** 策略師的 session 工具需要 `maxSpawnDepth ≥ 2` 才會生效(他是 depth-1 編排者)。 + +--- + ## Pipeline 流程 ``` -總司令 → 🎯執行長 sessions_send → 🧭策略師(pipeline 主人) - │ - sessions_send ┌───┬───┼───┐ - ↓ ↓ ↓ ↓ - 💹 📈 🚀 🛡️ - 情報 結構 多方 空方 - ↓ ↓ ↓ ↓ - └───┴───┴───┘ - ↓ 回覆策略師 - 🧭策略師收斂 - ↓ - sessions_send → 🔍審查員 - ↕ revise 直接來回(退回原研究員修改) - pass ↓ - 🧭策略師發 #策略結果 - ↓ - sessions_send → 🎯執行長「完成了」 - ↓ - 🎯執行長回報總司令 +董事長 → 🎯執行長 spawn → 🧭策略師(pipeline owner, depth 1) + │ + sessions_spawn ┌─┴──────────┐ + ↓ ↓ + 💹情報員 (等待) + (depth 2) + ↓ announce + 📈市場結構 + (depth 2) + ↓ announce + sessions_spawn ┌─┴─┐ + ↓ ↓ + 🚀 🛡️ ← 並行 + 多方 空方 + (depth 2, depth 2) + ↓ ↓ + announce + ↓ + 🧭策略師收斂 + Strategy_Thesis.json + ↓ + sessions_spawn → 🔍審查員 (depth 2) + ↕ revise → 重新 spawn 被退回角色(最多 3 輪) + pass ↓ + sessions_spawn → 🧪資料分析 (depth 2) + ↓ announce + 🧭策略師 announce 給 🎯執行長 + ↓ + 🎯執行長 → Discord #審批 @董事長 -例外:block → 策略師通知執行長 → 執行長發 #異常 -例外:HITL → 策略師通知執行長 → 執行長發 #審批 @總司令 -例外:每日情報 → 執行長直接 send 財經情報研究員 → 研究員自己發 #每日情報 +例外:block → 策略師 escalate 執行長 → 執行長發 #異常 +例外:revise > 3 輪 → 策略師 escalate 執行長 → 執行長發 #審批 @董事長 +例外:每日情報 → 執行長 spawn 情報員 → 情報員 announce → 執行長發 #每日情報 例外:每日摘要 → 秘書自己發 #每日摘要 / #決策紀錄 ``` +--- + ## 通訊方式 -| 方式 | 用途 | 誰用 | -|---|---|---| -| `sessions_send` | Agent 之間直接對話(最多 5 輪) | 所有 agent | -| `sessions_spawn` | 背景獨立任務(非阻塞) | 需要並行處理時 | -| `message` 工具 | 發到 Discord 頻道 | 只有通過審查的內容 | +| 方式 | 用途 | 誰能用 | 限制 | +|---|---|---|---| +| `sessions_spawn` | 非阻塞派工 | CEO(depth 0)、策略師(depth 1, 需 maxSpawnDepth ≥ 2) | 最多 5 並行 | +| `sessions_send` | 同步即時對話 | **僅 depth-0 agent**(CEO、秘書) | Sender 阻塞等回覆 | +| `announce` | 子 agent 回傳結果 | 所有被 spawn 的 agent | 單向往上 | +| `message` 工具 | 發到 Discord 頻道 | 通過審查的內容 | — | + +--- ## Discord 頻道 | 頻道 | 誰發 | 內容 | |---|---|---| -| #執行長 | 🎯 執行長 | 回覆總司令、進度回報 | +| #執行長 | 🎯 執行長 | 回覆董事長、進度回報 | | #審批 | 🎯 執行長 | HITL 審批請求 | | #異常 | 🎯 執行長 | block、錯誤、異常 | -| #每日情報 | 💹 財經情報研究員 | 每日情報摘要 | -| #研究討論 | 🧭 策略師 | 研究過程摘要(pass 後) | -| #策略結果 | 🧭 策略師 | 最終策略定稿(pass 後) | +| #每日情報 | 🎯 執行長(轉發) | 情報員的每日情報摘要 | +| #研究討論 | 🎯 執行長(轉發) | 研究過程摘要(pass 後) | +| #策略結果 | 🎯 執行長(轉發) | 最終策略定稿(pass 後) | | #每日摘要 | 📋 秘書 | 每日工作摘要 | | #決策紀錄 | 📋 秘書 | 重大決策存檔 | | #閒聊 | 🌿 小安 | 閒聊放鬆 | +--- + ## 模型分級 | 等級 | 模型 | 適用角色 | |---|---|---| -| reasoning-heavy | gpt-5.4 | 執行長、審查員、量化策略師、量化工程師 | +| reasoning-heavy | gpt-5.4 | 執行長、審查員、量化策略師、回測工程師 | | general / research | gpt-5.4-mini | 秘書、財經情報、市場結構、多空研究、資料分析、小安 | diff --git a/docs/guides/guide_sessions_tools.md b/docs/guides/guide_sessions_tools.md index b927fd1..d11112f 100644 --- a/docs/guides/guide_sessions_tools.md +++ b/docs/guides/guide_sessions_tools.md @@ -1,25 +1,28 @@ # sessions_spawn / sessions_send 使用指南 > 適用版本:OpenClaw v2026.4.x -> 更新日期:2026-04-09 +> 更新日期:2026-04-10 +> 狀態:v4.1 修正版(修正 spawn/send 工具權限行為) --- -## Agents vs Sub-agent Runs +## 核心概念 + +### Agent vs Sub-agent Run **Agent** = 有自己 workspace、設定檔、記憶的持久實體。在 `openclaw.json` 的 `agents.list` 裡定義。 -**Sub-agent run** = 當一個 Agent 被 `sessions_spawn` 呼叫時,那次在隔離 session 裡的執行。Session key 格式:`agent::subagent:`。 +**Sub-agent run** = 當一個 Agent 被 `sessions_spawn` 呼叫時,在隔離 session 裡的那次執行。Session key 格式:`agent::subagent:`。 -兩者不是不同等級,只是存在方式不同:同一個 Agent 可以被 spawn 成 sub-agent run 來執行任務,完成後 announce 結果回去。 +同一個 Agent 可以被 spawn 成 sub-agent run 來執行任務,完成後 announce 結果回 parent。 --- -## sessions_spawn — 派工(非阻塞) +## sessions_spawn — 非阻塞派工 **行為:** 立即返回 `runId` 和 `childSessionKey`,不等待結果。對方 Agent 在獨立 session 執行,完成後 announce 結果。 -**使用場景:** 獨立任務,不需要即時來回溝通。 +**使用場景:** Pipeline 步驟交接、獨立任務、並行研究。 ```json { @@ -41,23 +44,18 @@ | `sandbox: "require"` | 強制沙箱隔離 | | `model` | 覆蓋模型設定 | -**限制:** -- 最多 5 層深(spawn 的 spawn 的 spawn...) -- 最多 5 個並行 -- 預設葉層 sub-agent 不具備 sessions 工具(無法再 spawn) - --- -## sessions_send — 同步溝通(可等待回覆) +## sessions_send — 同步對話(阻塞) -**行為:** 向另一個 session 傳訊,可設定是否等待回覆。支援最多 5 輪來回。 +**行為:** 向另一個 session 傳訊,sender 等待回覆。支援最多 5 輪來回。 -**使用場景:** 追問細節、審查來回、交叉確認。 +**使用場景:** CEO 問秘書即時問題、depth-0 agent 之間的直接對話。 ```json { - "sessionKey": "agent:reviewer:subagent:xxxx", - "message": "請審查以下量化策略內容:[...]", + "sessionKey": "agent:secretary:subagent:xxxx", + "message": "給我今日工作摘要", "timeoutSeconds": 60 } ``` @@ -74,14 +72,82 @@ --- +## maxSpawnDepth — 子 agent 工具權限控制 + +這是控制嵌套 spawn 能力的核心參數。 + +### 設定方式 + +在 `openclaw.json` 中設定: + +```jsonc +{ + "tools": { + "subagents": { + "maxSpawnDepth": 2, // 允許 depth-1 子 agent 再 spawn + "maxChildrenPerAgent": 5, // 每個 session 最多 5 個子 agent(可調至 20) + "maxConcurrent": 8 // 全局最大併發 + } + } +} +``` + +### 各深度的工具權限 + +| 深度 | 角色 | 可用的 Session 工具 | +|---|---|---| +| **Depth 0**(主 agent) | 完整權限 | `sessions_spawn`, `sessions_send`, `subagents`, `sessions_list`, `sessions_history` | +| **Depth 1**(maxSpawnDepth=1) | 葉層 | ❌ 無任何 session 工具 | +| **Depth 1**(maxSpawnDepth≥2) | 編排者 | ✅ `sessions_spawn`, `subagents`, `sessions_list`, `sessions_history` | +| **Depth 2+** | 永遠葉層 | ❌ 無任何 session 工具(`sessions_spawn` 永遠被拒絕) | + +### 關鍵限制 + +| 限制 | 說明 | +|---|---| +| **`sessions_send` 不授權給任何子 agent** | 無論 maxSpawnDepth 設多少,被 spawn 的 agent 都不能用 `sessions_send` | +| **通訊方向為單向往上** | 子 agent 只能 announce 結果回 parent,不能橫向溝通 | +| **同層不能對話** | 兩個 depth-2 的子 agent 之間無法直接通訊 | +| **Depth 2 永遠是葉層** | 即使 maxSpawnDepth > 2,depth-2 的 agent 也不能再 spawn | + +### KingClawArmy 建議設定 + +```jsonc +{ + "tools": { + "subagents": { + "maxSpawnDepth": 2, // 策略師(depth 1)可以 spawn 研究員(depth 2) + "maxChildrenPerAgent": 7, // 策略師最多需要 spawn 7 個研究員 + "maxConcurrent": 8, + "allowAgents": ["*"] // 允許 spawn 任何 agent + } + } +} +``` + +--- + ## 使用情境對照 | 情境 | 工具 | 原因 | |---|---|---| -| 蒐集資料 | spawn | 獨立任務,不需互動 | -| 寫回測程式 | spawn | 獨立任務 | -| 多空平行研究 | spawn(兩個) | 並行執行 | -| 追問研究員細節 | send | 兩個 agent 直接對話 | -| 審查員來回審查 | send | 需要 ping-pong | -| 請秘書做摘要 | spawn 或 send | 依是否需要等待 | -| Coordinator 討論 | send(逐一收集) | 整合多方觀點 | +| CEO 啟動量化 pipeline | **spawn** 策略師 | CEO 不能阻塞 | +| 策略師派工給情報員 | **spawn** | 獨立任務(策略師是 depth-1 編排者) | +| 策略師並行派工多方/空方 | **spawn**(兩個) | 並行執行 | +| 策略師發現報告缺漏 | **重新 spawn** | 帶上前次結果 + 修改意見 | +| 策略師提交審查 | **spawn** 審查員 | 審查是獨立任務 | +| 審查退回修改 | 策略師**重新 spawn** | 帶上 Review_Report.json 的 issues | +| CEO 問秘書今日摘要 | **send** | CEO 是 depth-0,需要即時回覆 | +| 你在 Discord 問 CEO | **Discord message** | 不經 session 工具 | + +--- + +## 常見錯誤 + +| 錯誤 | 為什麼不行 | 正確做法 | +|---|---|---| +| 策略師 send 研究員追問 | 被 spawn 的 agent 沒有 `sessions_send` | 重新 spawn,帶上問題 | +| CEO 用 send 啟動 pipeline | CEO 會阻塞等整條 pipeline 跑完 | 用 spawn | +| 研究員之間互相 send | 同層子 agent 不能橫向通訊 | 各自 announce 回策略師,由策略師整合 | +| 用 Standing Orders 定義 pipeline | 自然語言無強制力 | 用 Lobster DSL 定義 flow | +| Agent 用自由文字溝通 | 接收方要猜意圖 | 用 Message Envelope + intent | diff --git a/docs/guides/guide_tools_skills.md b/docs/guides/guide_tools_skills.md new file mode 100644 index 0000000..339f601 --- /dev/null +++ b/docs/guides/guide_tools_skills.md @@ -0,0 +1,256 @@ +# MCP Tools & Skills 配置指南 + +> 適用版本:OpenClaw v2026.4.x +> 更新日期:2026-04-10 + +--- + +## MCP Tools vs Skills 的差異 + +| | MCP Tools | Skills | +|---|---|---| +| **是什麼** | 獨立程序,透過 Model Context Protocol 提供能力 | `SKILL.md` 資料夾,教 agent 做事的方法論 | +| **類比** | 一把工具(鋸子、螺絲起子) | SOP 手冊(怎麼組裝傢俱) | +| **範例** | Tavily = 搜尋能力 | Deep Research = 結構化研究流程 | +| **可移植性** | 跨平台(Claude Desktop、Cursor 等都能用) | OpenClaw 專用 | +| **關係** | 獨立運作 | 65% 的 skill 底層會呼叫 MCP tool | +| **安裝** | `openclaw.json` 設定 | `clawhub install ` | + +**簡單說:MCP 是手,Skill 是腦裡的方法論。按角色搭配。** + +--- + +## 配置原則 + +| 原則 | 說明 | +|---|---| +| **按角色配,不要全裝** | 工具定義會佔 context token,太多工具 agent 會選錯 | +| **蒐集者裝工具,判斷者不裝** | 情報員需要搜尋;策略師只需要讀報告收斂 | +| **一個 MCP 可以多人共用** | MCP server 啟動一次,多個 agent 共用同一個 | +| **先跑再加** | 先用最少工具跑通 pipeline,有需求再加 | + +--- + +## Phase 2 — 量化研究團隊配置 + +### 💹 財經情報研究員 `finance_researcher` + +**角色定位:** 資料蒐集者,需要大量外部資料 + +| 類型 | 工具 | 用途 | 安裝方式 | +|---|---|---|---| +| MCP | **Tavily** | AI 優化搜尋,自動帶引用來源 | API key(有免費額度) | +| MCP | **Firecrawl** | 爬網頁全文,7 秒抓完一頁 | API key | +| MCP | **Financial Datasets** | 財報、SEC 文件、股價、加密貨幣新聞 | API key | +| Skill | **Deep Research** | 結構化深度研究流程:搜尋→多源交叉驗證→綜合 | `clawhub install deep-research` | +| 內建 | `memory_write` | 寫入每日筆記 | 內建 | +| 內建 | `memory_search` | 搜尋歷史記憶 | 內建 | + +### 📈 市場結構研究員 `market_structure_researcher` + +**角色定位:** 技術分析專家,需要行情數據 + +| 類型 | 工具 | 用途 | 安裝方式 | +|---|---|---|---| +| MCP | **TradingView MCP** | 30+ 技術指標、K 線圖、情緒指標 | 自架 Python | +| MCP | **Alpha Vantage** | 即時/歷史行情、外匯、加密、總經數據 | API key(免費) | +| Skill | **Deep Research** | 配合行情數據做結構化分析 | `clawhub install deep-research` | +| 內建 | `memory_search` | 搜尋歷史記憶 | 內建 | + +### 🚀 多方研究員 `bullish_researcher` + +**角色定位:** 觀點整理者,不做資料蒐集 + +| 類型 | 工具 | 用途 | +|---|---|---| +| 內建 | `memory_search` | 讀取情報員、市場結構的報告(via QMD) | + +> 不需要外部 MCP 或 Skill。他的 input 是其他 agent 的報告,不是原始數據。 +> 給他搜尋工具會讓他跑去自己找資料,偏離角色分工。 + +### 🛡️ 空方研究員 `bearish_researcher` + +同多方研究員,只有 `memory_search`。 + +### 🧭 量化策略師 `quant_strategist` + +**角色定位:** 收斂者 + Pipeline Owner + +| 類型 | 工具 | 用途 | +|---|---|---| +| 內建 | `memory_search` | 讀取所有研究報告 | +| 內建 | `sessions_spawn` | 派工給研究員(需要 maxSpawnDepth ≥ 2) | +| 內建 | `subagents` | 管理子 agent | +| 內建 | `sessions_list` | 查看 session 狀態 | + +> 不需要外部工具。策略師的價值在判斷和收斂,不在蒐集。 + +### ⚙️ 回測工程師 `quant_engineer` + +**角色定位:** 程式碼執行者 + +| 類型 | 工具 | 用途 | 安裝方式 | +|---|---|---|---| +| MCP | **E2B** | 沙箱 Python 環境,裝 pandas/numpy/backtrader | API key | +| MCP | **FinClaw** | AI 量化引擎:回測、策略進化 | 自架 Python | +| Skill | **Code Reviewer** | 回測程式碼自我檢查 | `clawhub install code-reviewer` | +| 內建 | `exec` | 執行命令 | 內建 | +| 內建 | `file_ops` | 讀寫檔案 | 內建 | +| 內建 | `memory_write` | 記錄回測結果 | 內建 | + +### 🧪 資料分析員 `data_analyst` + +**角色定位:** 數據分析 + 視覺化 + +| 類型 | 工具 | 用途 | 安裝方式 | +|---|---|---|---| +| MCP | **E2B** | 跟回測工程師共用沙箱環境 | 同上 | +| MCP | **Plotly MCP** | 49+ 圖表類型,自然語言生圖 | 自架 Python | +| Skill | **Deep Research** | 拉外部 benchmark 比對分析 | `clawhub install deep-research` | +| 內建 | `code_execution` | 跑分析腳本 | 內建 | +| 內建 | `memory_search` | 搜尋歷史數據 | 內建 | +| 內建 | `memory_write` | 記錄分析結果 | 內建 | + +--- + +## Phase 1 — 管理團隊配置 + +### 🎯 CEO `ceo_coo` + +| 類型 | 工具 | 用途 | +|---|---|---| +| 內建 | `sessions_spawn` | 啟動 pipeline、派工 | +| 內建 | `sessions_send` | 問秘書即時問題(depth-0 才能用) | +| 內建 | `cron` | 排程管理 | +| 內建 | `memory_search` | 搜尋歷史 | +| 內建 | Discord 工具 | 跟董事長溝通、推送通知 | + +> CEO 不需要外部工具,他的工作是管理和協調。 + +### 📋 秘書 `secretary` + +| 類型 | 工具 | 用途 | 安裝方式 | +|---|---|---|---| +| Skill | **GOG (Google Workspace)** | Gmail + Calendar + Drive + Sheets | `clawhub install gog`(如果用 Google 生態) | +| 內建 | `memory_search` | 搜尋所有 agent 記憶(via QMD) | +| 內建 | `memory_write` | 寫入摘要、壓縮記憶 | +| 內建 | Discord 工具 | 推送每日摘要 | + +### 🔍 審查員 `reviewer` + +| 類型 | 工具 | 用途 | +|---|---|---| +| 內建 | `memory_search` | 讀取被審查的產出 | + +> 審查員只需要讀,不需要搜尋或執行。純粹的判斷角色。 + +--- + +## Phase 3 — 行銷策略團隊(預規劃) + +### 市場研究員 `market_researcher` + +| 類型 | 工具 | 用途 | +|---|---|---| +| MCP | **Tavily** | 共用搜尋(同情報員) | +| MCP | **Exa** | 語意搜尋,按「意思」找內容 | +| MCP | **Firecrawl** | 爬競品網站 | +| Skill | **Deep Research** | 結構化市場研究 | +| 內建 | `memory_write` | 記錄研究 | + +### 策略總監 `strategy_director` + +| 類型 | 工具 | 用途 | +|---|---|---| +| 內建 | `memory_search` | 讀取市場研究報告 | + +> 同策略師邏輯:收斂者不需要外部工具。 + +### 投放分析師 `ads_analyst` + +| 類型 | 工具 | 用途 | +|---|---|---| +| MCP | **廣告平台 API** | Google Ads / Meta Ads 數據(需自行包 MCP) | +| MCP | **Plotly MCP** | 投放報表視覺化 | +| 內建 | `memory_write` | 記錄 KPI | + +--- + +## Phase 4 — 內容創意團隊(預規劃) + +### 文案撰寫員 `copywriter` + +| 類型 | 工具 | 用途 | +|---|---|---| +| Skill | **SEO Blog Writer** | 搜尋優化文章結構 | +| 內建 | `memory_search` | 讀取品牌語氣庫 | + +### 創意總監 `creative_director` + +| 類型 | 工具 | 用途 | +|---|---|---| +| MCP | **DALL-E / Flux MCP** | 生成參考圖、素材 mock | +| MCP | **Firecrawl** | 抓競品視覺參考 | +| 內建 | `memory_search` | 讀取品牌規範 | + +--- + +## MCP Server 安裝總覽 + +Phase 2 只需要安裝 5 個外部 MCP server: + +| # | MCP Server | 誰用 | 類型 | 優先級 | +|---|---|---|---|---| +| 1 | **Tavily** | 情報員 (+Phase 3 市場研究員) | API key | 必裝 | +| 2 | **Firecrawl** | 情報員 (+Phase 3/4) | API key | 必裝 | +| 3 | **Financial Datasets** 或 **Alpha Vantage** | 情報員 + 市場結構 | API key | 必裝 | +| 4 | **TradingView MCP** | 市場結構 | 自架 Python | 必裝 | +| 5 | **E2B** 或 **FinClaw** | 回測 + 資料分析 | API key / 自架 | 必裝 | + +Phase 3 新增: + +| # | MCP Server | 誰用 | 類型 | +|---|---|---|---| +| 6 | **Exa** | 市場研究員 | API key | +| 7 | **廣告平台 API** | 投放分析師 | 自行包裝 | +| 8 | **Plotly MCP** | 資料分析 + 投放分析 | 自架 Python | + +Phase 4 新增: + +| # | MCP Server | 誰用 | 類型 | +|---|---|---|---| +| 9 | **DALL-E / Flux** | 創意總監 | API key | + +--- + +## Skill 安裝總覽 + +| Skill | 誰用 | 安裝指令 | Phase | +|---|---|---|---| +| **Deep Research** | 情報員、市場結構、資料分析 | `clawhub install deep-research` | 2 | +| **Code Reviewer** | 回測工程師 | `clawhub install code-reviewer` | 2 | +| **GOG** | 秘書(如果用 Google) | `clawhub install gog` | 1 | +| **SEO Blog Writer** | 文案撰寫員 | `clawhub install seo-blog-writer` | 4 | + +--- + +## 安全注意事項 + +### ClawHub 安全 + +ClawHub 曾發生 **ClawHavoc** 惡意 skill 攻擊事件,偽造熱門 skill 名稱植入後門。 + +| 檢查項目 | 說明 | +|---|---| +| 看原始碼 | 安裝前檢查 `SKILL.md` 和 install 腳本 | +| 看安裝數 | 優先選高安裝數 + verified 標記的 | +| 看名稱 | 不要裝 typo 版本(如 `deep-reserach`) | +| 沙箱隔離 | 不信任的 skill 用 `sandbox: "require"` | + +### MCP Server 安全 + +| 檢查項目 | 說明 | +|---|---| +| API key 管理 | 用環境變數,不要硬寫在設定檔 | +| 網路隔離 | 自架的 MCP 只綁 localhost | +| 權限最小化 | API key 只給必要的 scope | diff --git a/docs/spec/spec_v4_collaboration_protocol.md b/docs/spec/spec_v4_collaboration_protocol.md new file mode 100644 index 0000000..145baf6 --- /dev/null +++ b/docs/spec/spec_v4_collaboration_protocol.md @@ -0,0 +1,404 @@ +# KingClawArmy - 第四部分:Agent 協作協定 + +> 版本:v4.1 +> 日期:2026-04-10 +> 狀態:取代 v4.0 協作章節 +> 變更:重新定義協作模式、新增 Message Envelope、修正 spawn/send 行為、Pipeline 改由策略師主導 + +--- + +## 4.1 設計原則 + +| 原則 | 說明 | +|---|---| +| **Spawn 優先** | Pipeline 步驟一律用 `sessions_spawn`,不阻塞任何 agent | +| **Send 只用於即時對話** | 只有 depth-0 的獨立 agent 之間才能 `sessions_send` | +| **策略師主導 Pipeline** | 量化 pipeline 由策略師 own,CEO 只管啟動和例外 | +| **Schema 消除追問** | 嚴格定義輸出格式,讓 agent 一次交齊,不需要來回追問 | +| **向上回報** | 子 agent 透過 announce 回傳結果,不能橫向對話 | + +--- + +## 4.2 通訊工具行為(已驗證) + +### sessions_spawn — 非阻塞派工 + +- 立即返回 `runId`,不等待結果 +- 對方在隔離 session 中執行,完成後 announce 結果回 parent +- Parent 可繼續處理其他事 + +### sessions_send — 同步對話(阻塞) + +- Sender 等待對方回覆(可設 `timeoutSeconds`) +- 最多 5 輪來回 +- **只有 depth-0 的獨立 agent 能使用** + +### maxSpawnDepth 與工具權限 + +| `maxSpawnDepth` | Depth-1 子 agent | Depth-2 子 agent | +|---|---|---| +| **1(預設)** | ❌ 無 session 工具(葉層) | — | +| **≥ 2** | ✅ `sessions_spawn`, `subagents`, `sessions_list`, `sessions_history` | ❌ 永遠是葉層 | + +**關鍵限制:** + +- `sessions_send` **不在任何子 agent 的授權清單中**,無論 maxSpawnDepth 設多少 +- 通訊方向為**單向往上**:子 agent 只能 announce 回 parent +- 同層子 agent 之間**不能互相通訊** +- 最大嵌套深度:5 層 +- 最大並行子 agent:5 個(`maxChildrenPerAgent`,可調至 20) +- 最大併發:8 個(`maxConcurrent`) + +### 判斷規則 + +> **你需要對方「現在立刻回答你」才能繼續嗎?** +> - Yes → `sessions_send`(僅限 depth-0 agent) +> - No → `sessions_spawn` + +| 情境 | 工具 | 原因 | +|---|---|---| +| Pipeline 步驟交接 | **spawn** | 獨立任務,不需等待 | +| 並行研究 | **spawn**(多個) | 各做各的 | +| CEO 啟動 pipeline | **spawn** | CEO 不能被阻塞 | +| CEO 問秘書「今日摘要」 | **send** | CEO 是 depth-0,需要即時回覆 | +| 審查員退回修改 | **重新 spawn** | 帶上修改意見再跑一次 | +| 需要追問細節 | **重新 spawn** | 帶上前次結果 + 具體問題 | + +--- + +## 4.3 Message Envelope(Agent 間訊息格式) + +所有 agent 間的溝通統一使用結構化信封,不使用自由文字: + +```json +{ + "from": "bullish_researcher", + "to": "quant_strategist", + "intent": "deliver_report", + "ref_task": "quant-pipeline-2026-04-10", + "payload": { "$ref": "Bullish_Brief.json" }, + "expect_response": false +} +``` + +### Intent 類型 + +| intent | 方向 | 說明 | +|---|---|---| +| `assign_task` | parent → child | 派工指令 | +| `deliver_report` | child → parent | 任務完成,結果在 payload | +| `request_clarification` | parent → child | 追問(透過重新 spawn) | +| `review_request` | → reviewer | 請求審查 | +| `review_verdict` | reviewer → parent | 審查結果:`pass` / `revise` / `block` | +| `collect_opinion` | coordinator → agent | 收集觀點 | +| `escalate` | any → CEO | 上報異常 | +| `notify` | any → Discord | 通知(非對話) | + +### Payload 規範 + +- 所有 payload 必須是定義好的 JSON schema(見各 agent 的 AGENTS.md) +- 不在 JSON 之外附加自由文字說明 +- 缺少必填欄位時,回傳 `missing_fields` 清單而非空值 + +--- + +## 4.4 Pipeline 架構 + +### 角色分工 + +``` +CEO 的職責: + ✅ 接收董事長指令 + ✅ spawn 啟動 pipeline(策略師) + ✅ 處理 escalation 和 HITL + ✅ 多 pipeline 並行管理 + ❌ 不逐步 spawn 每個研究員(那是策略師的事) + +策略師的職責: + ✅ 擁有量化 pipeline 的執行權 + ✅ spawn 研究員、收斂結果 + ✅ spawn 審查員、處理 revise + ✅ 管理研究員的輸出品質 + ❌ 不做資料蒐集(那是研究員的事) +``` + +### 量化 Pipeline 流程 + +``` +你 → CEO(Discord)→ 「啟動量化 pipeline」 + │ + └─ spawn 策略師(depth 1, maxSpawnDepth ≥ 2) + │ + ├─ spawn 情報員(depth 2) + │ └─ announce Finance_Research_Brief.json + │ + ├─ spawn 市場結構研究員(depth 2,等情報完成) + │ └─ announce Market_Structure_Report.json + │ + ├─ spawn 多方研究員(depth 2)──┐ 並行 + ├─ spawn 空方研究員(depth 2)──┘ 並行 + │ └─ 都 announce 完成 + │ + ├─ 策略師自己收斂 → Strategy_Thesis.json + │ + ├─ spawn 審查員(depth 2) + │ └─ announce Review_Report.json + │ ├─ pass → 繼續 + │ ├─ revise → 策略師重新 spawn 被退回的角色(帶修改意見) + │ │ 最多 3 輪,超過 → escalate CEO + │ └─ block → escalate CEO + │ + └─ announce 給 CEO「pipeline 完成」 + │ + └─ CEO → Discord @董事長 請求批准 +``` + +### Lobster DSL 定義(取代 Standing Orders) + +```yaml +name: daily_quant_pipeline +trigger: cron "30 7 * * 1-5" +owner: quant_strategist + +steps: + - id: intel + agent: finance_researcher + action: spawn + output: Finance_Research_Brief.json + + - id: structure + agent: market_structure_researcher + action: spawn + depends_on: [intel] + output: Market_Structure_Report.json + + - id: bull + agent: bullish_researcher + action: spawn + depends_on: [structure] + output: Bullish_Brief.json + + - id: bear + agent: bearish_researcher + action: spawn + depends_on: [structure] + output: Bearish_Brief.json + + - id: converge + agent: quant_strategist + action: self + depends_on: [bull, bear] + output: Strategy_Thesis.json + + - id: review + agent: reviewer + action: spawn + depends_on: [converge] + output: Review_Report.json + on_revise: retry(converge, max=3) + on_block: escalate(ceo_coo) + + - id: data_analysis + agent: data_analyst + action: spawn + depends_on: [review] + condition: review.verdict == "pass" + output: Data_Analysis_Report.json + + - id: approve + type: hitl + channel: "#approvals" + depends_on: [data_analysis] +``` + +### 追問處理(重新 Spawn 模式) + +當策略師發現研究員報告有缺漏,不用 send,用重新 spawn: + +```json +{ + "from": "quant_strategist", + "to": "bullish_researcher", + "intent": "request_clarification", + "ref_task": "quant-pipeline-2026-04-10", + "payload": { + "previous_report": { "$ref": "Bullish_Brief.json" }, + "missing_fields": ["key_levels[].evidence", "invalidation"], + "question": "你提到 OB 支撐,請補充具體價位與時間框架" + } +} +``` + +**但設計目標是讓追問不需要發生** — 靠嚴格的輸出 schema 讓 agent 一次交齊。 + +--- + +## 4.5 輸出 Schema(核心) + +每個 agent 的產出必須遵循定義好的 JSON schema,寫在各 agent 的 AGENTS.md 中。 + +### Finance_Research_Brief.json + +```json +{ + "date": "2026-04-10", + "market": "BTC/USDT", + "macro_summary": "...", + "key_events": [ + { "event": "...", "impact": "bullish|bearish|neutral", "source": "..." } + ], + "sentiment": { "overall": "bullish|bearish|neutral", "score": 0.0 }, + "data_sources": ["..."] +} +``` + +### Market_Structure_Report.json + +```json +{ + "date": "2026-04-10", + "market": "BTC/USDT", + "timeframes_analyzed": ["H4", "H1"], + "structure": { + "trend": "bullish|bearish|ranging", + "mss_detected": true, + "key_levels": [ + { "type": "OB|FVG|POI|support|resistance", "price": 0, "timeframe": "H4", "tested": false } + ] + }, + "liquidity_zones": [ + { "type": "buy_side|sell_side", "range": [0, 0], "significance": "high|medium|low" } + ] +} +``` + +### Bullish_Brief.json / Bearish_Brief.json + +```json +{ + "date": "2026-04-10", + "market": "BTC/USDT", + "thesis": "核心論點(一句話)", + "arguments": [ + { "point": "...", "evidence": "...", "confidence": 0.0 } + ], + "key_levels": [ + { "type": "support|resistance", "price": 0, "timeframe": "H4", "evidence": "..." } + ], + "catalysts": ["..."], + "invalidation": "什麼條件下論點失效", + "confidence": 0.0, + "data_sources": ["..."] +} +``` + +### Strategy_Thesis.json + +```json +{ + "date": "2026-04-10", + "market": "BTC/USDT", + "direction": "long|short|neutral", + "thesis": "收斂後的策略論點", + "entry_zone": [0, 0], + "stop_loss": 0, + "take_profit": [0, 0], + "risk_reward": 0.0, + "position_size_pct": 0.0, + "risk_assessment": { + "max_drawdown_pct": 0.0, + "bias_check": "confirmed|conflicting", + "bull_confidence": 0.0, + "bear_confidence": 0.0 + }, + "invalidation": "...", + "requires_backtest": true +} +``` + +### Review_Report.json + +```json +{ + "date": "2026-04-10", + "reviewed_artifact": "Strategy_Thesis.json", + "verdict": "pass|revise|block", + "score": 0.0, + "issues": [ + { "severity": "critical|major|minor", "field": "...", "description": "...", "suggestion": "..." } + ], + "revise_target": "quant_strategist|bullish_researcher|...", + "summary": "..." +} +``` + +### Data_Analysis_Report.json + +```json +{ + "date": "2026-04-10", + "analyzed_artifact": "Backtest_Delivery.json", + "metrics": { + "total_trades": 0, + "win_rate": 0.0, + "profit_factor": 0.0, + "max_drawdown_pct": 0.0, + "sharpe_ratio": 0.0, + "avg_rr": 0.0 + }, + "insights": ["..."], + "recommendation": "proceed|adjust|reject", + "summary": "..." +} +``` + +--- + +## 4.6 Review Gate + +| 必審節點 | 觸發方式 | 審查標準 | +|---|---|---| +| 量化策略提交 | 策略師 spawn 審查員 | schema 完整性 + 風控邏輯 | +| 回測結果提交 | 策略師 spawn 審查員 | 績效指標合理性 | +| 工程交付 | CEO spawn 審查員 | 程式碼品質 + 測試覆蓋 | +| 文案對外 | CEO spawn 審查員 | 品牌一致性 + 法規合規 | + +### Revise 流程 + +``` +審查員 announce: { verdict: "revise", revise_target: "bullish_researcher", issues: [...] } + ↓ +策略師收到 → 重新 spawn 多方研究員,帶上 issues + ↓ +多方研究員修改 → announce 新版本 + ↓ +策略師再 spawn 審查員 review + ↓ +最多 3 輪。超過 → escalate CEO → CEO Discord @董事長 +``` + +--- + +## 4.7 HITL 節點 + +| 需要董事長批准的事 | 通知方式 | +|---|---| +| 量化策略正式執行 | Discord #approvals @董事長 | +| 正式部署 | Discord #approvals @董事長 | +| DB schema 變更 | Discord #approvals @董事長 | +| 廣告正式發布 | Discord #approvals @董事長 | +| 對外訊息發送 | Discord #approvals @董事長 | +| 金流操作 | Discord #approvals @董事長 | + +--- + +## 4.8 錯誤處理 + +| 錯誤類型 | 處理方式 | +|---|---| +| Agent 執行超時 | 策略師重新 spawn,帶上 timeout 通知 | +| Agent 回傳 missing_fields | 策略師重新 spawn,明確要求補齊 | +| 審查 block | escalate CEO → Discord @董事長 | +| 審查 revise 超過 3 輪 | escalate CEO → Discord @董事長 | +| Pipeline 異常中斷 | CEO 通知 Discord #errors | +| 模型 API 錯誤 | 自動重試 1 次,失敗 → Discord #errors | diff --git a/docs/spec/spec_v4_collaboration_scheduling_memory.md b/docs/spec/spec_v4_collaboration_scheduling_memory.md index de0869b..dbaad85 100644 --- a/docs/spec/spec_v4_collaboration_scheduling_memory.md +++ b/docs/spec/spec_v4_collaboration_scheduling_memory.md @@ -1,91 +1,14 @@ -# KingClawArmy - 第四部分:協作模式 & 第五部分:排程與觸發 & 第六部分:記憶 & 第七部分:Discord +# KingClawArmy - 第五部分:排程與觸發 & 第六部分:記憶 & 第七部分:Discord + +> 版本:v4.1 +> 日期:2026-04-10 +> 狀態:協作模式已獨立至 [spec_v4_collaboration_protocol.md](spec_v4_collaboration_protocol.md) --- -## 第四部分:協作模式 - -### 4.1 三種模式(全部在 OpenClaw 內完成) - -| 模式 | OpenClaw 實現 | 場景 | -|---|---|---| -| **Orchestrator** | CEO 用 `sessions_spawn` 派工給 sub-agent | 日常任務分派 | -| **Peer-to-Peer** | Agent 之間用 `sessions_send` 來回溝通(最多 5 輪) | 追問、澄清、交叉驗證 | -| **Coordinator 討論** | CEO 用 `sessions_send` 逐一收集觀點再收斂 | 多方意見整合、辯論替代 | - -### 4.2 協作模式詳細流程 - -#### Orchestrator(派工) - -``` -CEO 收到任務 - ↓ -sessions_spawn("finance_researcher", task="蒐集今日盤前資訊") - ↓ -財經情報研究員在獨立 session 中執行 - ↓ -完成後 push 結果回 CEO - ↓ -CEO 收到結果,spawn 下一個 agent -``` - -#### Peer-to-Peer(直接溝通) - -``` -量化策略研究員讀完多方報告後有疑問 - ↓ -sessions_send("bullish_researcher", "你提到 OB 支撐,具體是哪個價位?") - ↓ -多方研究員回覆(ping-pong 最多 5 輪) - ↓ -量化策略研究員獲得澄清,繼續工作 -``` - -#### Coordinator 討論(辯論替代方案) - -``` -CEO 需要整合多空觀點 - ↓ -step 1: sessions_send("bullish_researcher", "總結你的核心做多論點") -step 2: sessions_send("bearish_researcher", "總結你的核心做空論點") -step 3: sessions_send("bearish_researcher", "針對多方的論點 [X],你的反駁是?") -step 4: sessions_send("bullish_researcher", "針對空方的反駁 [Y],你的回應是?") -step 5: sessions_send("quant_strategist", "以下是雙方觀點 [全文],請收斂成策略") - ↓ -CEO 收到策略規格 -``` - -### 4.3 什麼場景用什麼模式 - -| 場景 | 模式 | 理由 | -|---|---|---| -| 蒐集資料 | Orchestrator spawn | 獨立任務,不需互動 | -| 寫回測程式 | Orchestrator spawn | 獨立任務 | -| 多空辯論 | Coordinator 討論 | 需要多方觀點交叉 | -| 追問細節 | Peer-to-Peer send | 兩個 agent 直接對話 | -| 審查來回 | Peer-to-Peer send | 審查員與被審者 ping-pong | -| 跨團隊對齊 | Coordinator 討論 | CEO 逐一收集再收斂 | -| 你下達指令 | Discord → CEO | 你對 CEO 說話 | -| 需要你批准 | CEO → Discord @你 | HITL | - -### 4.4 Review Gate - -| 必審節點 | 觸發方式 | -|---|---| -| 量化策略提交 | CEO spawn 審查員 review | -| 回測結果提交 | CEO spawn 審查員 review | -| 工程交付 | CEO spawn 審查員 review | -| 文案對外 | CEO spawn 審查員 review | - -### 4.5 HITL 節點 - -| 需要你批准的事 | 通知方式 | -|---|---| -| 正式部署 | Discord #approvals @你 | -| DB schema 變更 | Discord #approvals @你 | -| 廣告正式發布 | Discord #approvals @你 | -| 對外訊息發送 | Discord #approvals @你 | -| 金流操作 | Discord #approvals @你 | -| 量化策略正式執行 | Discord #approvals @你 | +> **注意:** 原第四部分「協作模式」已重寫並移至獨立文件: +> **[spec_v4_collaboration_protocol.md](spec_v4_collaboration_protocol.md)** +> 包含:Message Envelope、Intent 類型、Pipeline 架構、spawn/send 規則、輸出 Schema、Review Gate、HITL 節點 --- @@ -94,9 +17,12 @@ CEO 收到策略規格 ### 5.1 Cron 排程 ```bash -# 財經情報 — 每日盤前盤後 -openclaw cron add --agent finance_researcher --cron "30 7 * * 1-5" --task "盤前資訊蒐集" -openclaw cron add --agent finance_researcher --cron "30 18 * * 1-5" --task "盤後資訊整理" +# 量化 pipeline — 每日盤前自動啟動 +# 由 CEO spawn 策略師,策略師接管後續流程 +openclaw cron add --agent ceo_coo --cron "30 7 * * 1-5" --task "啟動每日量化 pipeline" + +# 財經情報(獨立)— 盤後整理 +openclaw cron add --agent ceo_coo --cron "30 18 * * 1-5" --task "spawn 財經情報研究員做盤後整理" # 市場研究 — 每日 + 每週 openclaw cron add --agent market_researcher --cron "0 10 * * *" --task "每日市場情報" @@ -113,42 +39,11 @@ openclaw cron add --agent data_analyst --cron "0 10 * * 1" --task "每週數據 openclaw cron add --agent secretary --cron "0 23 * * *" --task "每日記憶壓縮與 State Diff" ``` -### 5.2 事件觸發鏈(量化 pipeline) +### 5.2 事件觸發鏈 -透過 CEO 的 Standing Orders 定義: +Pipeline 流程改由 **Lobster DSL** 定義(見 [spec_v4_collaboration_protocol.md](spec_v4_collaboration_protocol.md) 4.4 節),不再使用 Standing Orders。 -``` -CEO Standing Order: 量化研究流程 - -當收到財經情報完成通知: - → spawn market_structure_researcher - -當收到市場結構報告完成通知: - → spawn bullish_researcher(平行) - → spawn bearish_researcher(平行) - -當收到多方 + 空方報告都完成: - → 執行 coordinator 討論(收集雙方觀點) - → spawn quant_strategist(帶入討論結果) - -當收到量化策略完成通知: - → spawn quant_engineer - -當收到回測完成通知: - → spawn data_analyst - -當收到資料分析完成通知: - → send secretary(做摘要) - → spawn reviewer(審查整條 pipeline) - -當收到審查 pass: - → 組裝 Final_Decision_Packet - → Discord @董事長 請求批准 - -當收到審查 revise: - → 退回被點名角色 - → 如超過 3 輪 → Discord @董事長 介入 -``` +Cron 觸發 CEO → CEO spawn 策略師 → 策略師按 Lobster DSL 自動執行。 --- @@ -183,6 +78,10 @@ CEO Standing Order: 量化研究流程 | 每日筆記 | 自動載入今天+昨天;更舊的靠 memory_search | | 秘書壓縮 | 每日 23:00 將當日重點寫入 MEMORY.md,清理冗餘 | +### 6.4 未來考量 + +當 Phase 3 行銷團隊加入後,跨團隊記憶需求增大時,可考慮導入 **MemOS**(100% 本地、SQLite 後端、混合搜尋、支援多 agent 協作),作為 QMD 的補強或替代。目前 OpenClaw 內建記憶系統足夠 Phase 1-2 使用。 + --- ## 第七部分:Discord Server 結構 @@ -193,14 +92,14 @@ CEO Standing Order: 量化研究流程 KingClawArmy Discord Server │ ├── 📋 管理 -│ ├── #dashboard — 每日摘要、系統狀態 -│ ├── #approvals — HITL 審批(你在這裡批准) -│ └── #errors — 錯誤與異常 +│ ├── #執行長 — 執行長回覆董事長、進度回報 +│ ├── #審批 — HITL 審批(董事長在這裡批准) +│ └── #異常 — 錯誤與異常 │ ├── 📊 量化 -│ ├── #quant-briefing — 盤前盤後情報 -│ ├── #quant-discussion — 討論區(coordinator 討論結果貼這) -│ └── #quant-results — 策略定稿、回測結果 +│ ├── #每日情報 — 盤前盤後情報 +│ ├── #研究討論 — 研究過程摘要(pass 後) +│ └── #策略結果 — 策略定稿、回測結果 │ ├── 📈 行銷 │ ├── #marketing-intel — 市場情報 @@ -209,20 +108,23 @@ KingClawArmy Discord Server ├── ✏️ 內容 │ └── #content-briefs — 文案 / 創意 brief │ -└── 📝 記錄 - ├── #meeting-logs — 所有 coordinator 討論記錄 - └── #decision-log — 重大決策 +├── 📝 記錄 +│ ├── #每日摘要 — 秘書每日工作摘要 +│ └── #決策紀錄 — 重大決策存檔 +│ +└── 💬 閒聊 + └── #閒聊 — 小安陪聊 ``` ### 7.2 Discord 互動方式 | 你想做的事 | 怎麼做 | |---|---| -| 下達新指令 | 在 #dashboard 或 DM 跟 CEO agent 說 | +| 下達新指令 | 在 #執行長 跟 CEO agent 說 | | 查看進度 | 問 CEO 或秘書 | -| 批准高風險動作 | 在 #approvals 回覆 approve / reject | -| 看今日摘要 | #dashboard 自動推送(秘書每日產出) | -| 看回測結果 | #quant-results | +| 批准高風險動作 | 在 #審批 回覆 approve / reject | +| 看今日摘要 | #每日摘要 自動推送(秘書每日產出) | +| 看回測結果 | #策略結果 | | 手動發起討論 | @CEO 說「召集量化團隊討論 [主題]」 | | 緊急停止 | `openclaw tasks flow cancel ` 或 Discord @CEO「停止 [任務]」 | @@ -230,9 +132,10 @@ KingClawArmy Discord Server | 事件 | 推送到 | 由誰推送 | |---|---|---| -| 任務完成 | 對應區域頻道 | CEO | -| 審查 pass(HITL) | #approvals | CEO | -| 審查 block | #errors + #approvals | CEO | -| 每日摘要 | #dashboard | 秘書 | -| 討論結論 | #meeting-logs | 秘書 | -| 錯誤/異常 | #errors | 相關 agent | +| Pipeline 完成 | #策略結果 + #審批 | CEO | +| 審查 pass(需 HITL) | #審批 | CEO | +| 審查 block | #異常 + #審批 | CEO | +| 每日情報 | #每日情報 | CEO(轉發情報員結果) | +| 每日摘要 | #每日摘要 | 秘書 | +| 決策紀錄 | #決策紀錄 | 秘書 | +| 錯誤/異常 | #異常 | CEO |