# 5. Agent Team 架構設計 ### 5.1 行動任務 Team #### 架構圖 ``` 使用者 (Telegram) │ ▼ ┌──────────────────────────────────────────────────┐ │ OpenClaw (x550v) │ │ Skill 庫:assign-task, dispatch-webhook, │ │ project-review, code-review │ │ │ │ │ ┌──────────▼──────────┐ │ │ │ 主 Agent (main) │ │ │ │ Model: Gemini Flash│ │ │ │ 收 Telegram 訊息 │ │ │ └──────┬──────────────┘ │ └────────────────┼─────────────────────────────────┘ │ 分派任務(Skill / Webhook / API) ┌────────┴────────────────┐ │ │ ┌───────▼──────────┐ ┌──────────▼─────────────┐ │ VPS-A │ │ VPS-B │ │ Claude Code │ │ OpenCode / Other LLMs │ │ (Opus/Sonnet) │ │ (Codex / Gemini / …) │ │ │ │ │ │ 角色:專案經理 │ │ 角色:專案經理/執行者 │ │ ・主要專案開發 │ │ ・其他專案開發 │ │ ・Webhook 接收 │ │ ・Webhook 接收 │ │ ・回報結果 │ │ ・回報結果 │ └──────────────────┘ └────────────────────────┘ │ │ └──────────┬──────────────┘ ▼ 執行結果回傳 Telegram ``` #### 角色說明 | 角色 | 模型 | 位置 | 職責 | |------|------|------|------| | 協調者 (Coordinator) | Gemini Flash | OpenClaw x550v | 接收需求,分派任務,彙整回報 | | 專案經理-A (PM-A) | Claude Code Opus | VPS-A | 主要專案規劃、架構設計、任務分派 | | 專案經理-B (PM-B) | OpenCode Codex | VPS-B | 其他專案規劃、多 LLM 調度 | | 開發執行者 | Sonnet / Gemini / 其他 | VPS-A/B | 實際寫程式、測試、文件 | #### 任務流程 ``` 1. 使用者在 Telegram 描述任務 │ 2. OpenClaw 主 agent 接收,判斷任務類型 │ 3. 呼叫 assign-task skill: ├── 主要專案 → 觸發 VPS-A Webhook (Claude Code) └── 其他專案 → 觸發 VPS-B Webhook (OpenCode) │ 4. PM 接收任務,制定計劃,分派給執行者 │ 5. 執行者完成任務,回報 PM │ 6. PM 整理結果,透過 API 回傳 OpenClaw │ 7. OpenClaw 回報使用者(Telegram) ``` #### Webhook 設計 **VPS-A Webhook Endpoint**(Claude Code 接收端) ``` POST https://vps-a.example.com/webhook/openclaw Headers: X-OpenClaw-Token: Content-Type: application/json Body: { "task_id": "task-uuid", "type": "project_development", "project": "project-name", "description": "任務描述", "priority": "high|normal|low", "context": { ... }, "callback_url": "https://oclaw.nature.edu.kg/webhook/callback", "callback_token": "" } ``` **回傳格式** ```json { "task_id": "task-uuid", "status": "completed|failed|in_progress", "summary": "執行摘要", "artifacts": ["file1.py", "README.md"], "next_steps": ["部署測試", "code review"] } ``` ### 5.2 生活安排 Team #### 架構圖 ``` 使用者 (Telegram) │ ▼ ┌──────────────────────────────────────────────┐ │ OpenClaw 生活安排 Agent │ │ Model: Gemini Flash / Claude Sonnet │ │ │ │ Skill 庫: │ │ ・calendar-check 行事曆查詢 │ │ ・schedule-plan 行程規劃 │ │ ・daily-briefing 每日摘要 │ │ ・reminder-set 提醒設定 │ │ ・task-capture 快速記錄待辦 │ └──────────────────────────────────────────────┘ │ ├── Google Calendar API ├── 天氣 API ├── cron (OpenClaw 內建排程) └── Telegram 推送 ``` #### 功能說明 | 功能 | 觸發方式 | 說明 | |------|---------|------| | 每日簡報 | cron 每早 8:00 | 今日行程 + 天氣 + 待辦摘要 | | 行程安排 | Telegram 指令 | 新增/查詢 Google Calendar | | 提醒設定 | Telegram 指令 | 設定 cron job 定時提醒 | | 快速待辦 | Telegram 指令 | 記錄到 workspace/TODO.md | | 週報 | cron 每週日晚 | 本週完成事項彙整 | #### Cron Job 設定範例 ```bash # 每日 8:00 早安簡報 openclaw cron add \ --name "daily-briefing" \ --cron "0 8 * * *" \ --session main \ --system-event "請執行每日簡報:查詢今日行程、天氣,整理待辦事項,用繁體中文發送到 Telegram" # 每週日 21:00 週報 openclaw cron add \ --name "weekly-review" \ --cron "0 21 * * 0" \ --session main \ --system-event "請整理本週完成的工作、學習重點,以及下週計劃,發送週報到 Telegram" ```