openclaw多agent協(xié)調配置(ai生成,待驗證)

實現(xiàn)多個 Agent 之間的協(xié)同工作。我們將以“研發(fā) Agent 請求運維 Agent 提供 Hive 機器信息”的典型場景為例,逐步說明配置方法和操作流程。

1. 前置條件

已安裝并運行 OpenClaw 核心服務(版本 ≥ 2026.03)。
具備基本配置文件(openclaw.json)的編輯權限。
了解 Agent、技能(Skill)、綁定(Binding)和鉤子(Hook)的基本概念。
已接入至少一個消息渠道(如 WhatsApp、飛書、Slack),用于測試。

2. 整體架構

[用戶消息] → Gateway (路由表) → 研發(fā) Agent
                                     │
                                     │ (通過 assign_task 技能)
                                     ▼
                              Gateway (Hook 調度)
                                     │
                                     │ (啟動運維 Agent)
                                     ▼
                              運維 Agent → 執(zhí)行技能 (查架構/機器信息)
                                     │
                                     │ (結果存入共享記憶 或 通過 Hook 回調)
                                     ▼
                              研發(fā) Agent → 整合結果 → 回復用戶

協(xié)作方式采用 Agent Teams(顯式編排):研發(fā) Agent 作為協(xié)調者,通過任務分配觸發(fā)運維 Agent 工作。

3. 配置步驟

3.1 定義 Agent

在 openclaw.json 的 agents.list 中分別定義研發(fā) Agent 和運維 Agent。

{
  "agents": {
    "list": [
      {
        "id": "研發(fā)-協(xié)調者",
        "name": "研發(fā)負責人",
        "model": {
          "provider": "openai",
          "name": "gpt-4-turbo"
        },
        "tools": {
          "allow": ["assign_task"]   // 允許使用任務分配技能
        },
        "workspace": "./workspaces/dev"  // 獨立工作區(qū)(可選)
      },
      {
        "id": "運維-執(zhí)行者",
        "name": "運維專家",
        "model": {
          "provider": "anthropic",
          "name": "claude-3-haiku"
        },
        "tools": {
          "allow": [
            "query_hive_architecture",
            "get_machine_info"
          ]
        },
        "workspace": "./workspaces/ops"
      }
    ]
  }
}
3.2 配置消息路由(Bindings)

將外部消息(如來自飛書的特定群組)路由給研發(fā) Agent。

{
  "bindings": [
    {
      "agentId": "研發(fā)-協(xié)調者",
      "match": {
        "channel": "feishu",
        "peer": {
          "kind": "group",
          "id": "oc_xxxxx"   // 實際群 ID
        }
      }
    }
  ]
}
3.3 創(chuàng)建 Agent 技能(Skills)

每個技能對應一個 Markdown 文件,放在 ~/.openclaw/skills/ 目錄下。

assign_task 技能(研發(fā) Agent 使用)
文件:~/.openclaw/skills/assign_task/SKILL.md

# assign_task

## 描述
當你需要其他專家 Agent(如運維)協(xié)助時,使用此技能分配任務。

## 參數(shù)
- `target_agent_id`: 目標 Agent 的 ID(字符串)
- `task_description`: 清晰的任務描述(字符串)

## 工作流程
1. 明確需要哪個 Agent 做什么事。
2. 調用底層工具 `sessions_send`,將任務信息發(fā)送到內部總線。
   - 消息格式:`{ "type": "task_assignment", "targetAgentId": "...", "taskDescription": "..." }`
3. 告知用戶任務已分配,請稍候。

## 示例
用戶要求獲取 Hive 架構圖時,應設置:
- `target_agent_id`: "運維-執(zhí)行者"
- `task_description`: "請?zhí)峁┥a環(huán)境 Hive 機器的架構圖和以下 IP 的詳細信息:10.0.1.10, 10.0.1.11"
實際調用 sessions_send 的細節(jié)由 OpenClaw 運行時自動處理,技能作者只需描述參數(shù)和意圖。

運維 Agent 技能
文件:~/.openclaw/skills/query_hive_architecture/SKILL.md
# query_hive_architecture

## 描述
獲取 Hive 集群的架構圖和相關機器信息。

## 工作流程
1. 調用內部 CMDB API 獲取最新架構圖。
2. 解析返回的 JSON 數(shù)據(jù),生成 Markdown 格式的報告。
3. 將結果寫入共享記憶,鍵名為 `hive_architecture_<會話ID>`。
文件:~/.openclaw/skills/get_machine_info/SKILL.md
# get_machine_info

## 參數(shù)
- `ip_list`: 以逗號分隔的 IP 地址列表

## 描述
查詢指定機器的 CPU、內存、磁盤等詳細信息。

## 工作流程
1. 調用內部監(jiān)控 API 獲取實時指標。
2. 整理成表格返回。
3.4 配置任務分發(fā) Hook
在 openclaw.json 的 hooks 數(shù)組中添加規(guī)則,使 Gateway 能夠監(jiān)聽 sessions_send 發(fā)出的任務分配事件,并啟動對應的 Agent。
{
  "hooks": [
    {
      "event": "internal:message",          // 內部消息事件
      "condition": {
        "field": "payload.type",
        "operator": "eq",
        "value": "task_assignment"           // 僅處理類型為 task_assignment 的消息
      },
      "action": {
        "type": "start_agent",
        "agentId": "{{payload.targetAgentId}}",   // 從事件中動態(tài)獲取目標 Agent ID
        "payload": {
          "kind": "agentTurn",
          "message": "{{payload.taskDescription}}",
          "sessionTarget": "isolated"            // 隔離會話,避免污染原對話
        }
      }
    }
  ]
}
3.5 (可選)配置共享記憶

如果希望運維 Agent 的結果能被研發(fā) Agent 自動感知,可以啟用共享記憶插件(如 @openclaw/memory-plugin)。

在 Agent 配置中添加記憶相關設置:

{
  "agents": {
    "list": [
      {
        "id": "研發(fā)-協(xié)調者",
        "memory": {
          "provider": "sqlite",
          "autoRecall": true,      // 自動召回相關記憶
          "namespace": "shared"     // 與其他 Agent 共享的命名空間
        }
      },
      {
        "id": "運維-執(zhí)行者",
        "memory": {
          "provider": "sqlite",
          "autoStore": true,        // 自動存儲結果
          "namespace": "shared"
        }
      }
    ]
  }
}

此時運維 Agent 的執(zhí)行結果會自動存入共享記憶,研發(fā) Agent 在后續(xù)回復時會自動召回這些信息。

4. 操作流程(用戶視角)

用戶提出問題:在已綁定的飛書群中發(fā)送:“生產環(huán)境 Hive 查詢變慢,研發(fā)幫忙看看?”

研發(fā) Agent 接收:Gateway 根據(jù) Binding 將消息發(fā)給研發(fā) Agent。

研發(fā) Agent 分析:

識別到需要 Hive 架構圖和機器信息。

調用 assign_task 技能,參數(shù)為:

target_agent_id: 運維-執(zhí)行者

task_description: “請?zhí)峁┥a環(huán)境 Hive 機器的架構圖和以下 IP 的詳細信息:10.0.1.10, 10.0.1.11”

技能內部通過 sessions_send 發(fā)送內部消息。

研發(fā) Agent 回復用戶:“正在調取運維數(shù)據(jù),請稍候...”

Gateway 調度:Hook 監(jiān)聽到內部消息,根據(jù) targetAgentId 啟動運維 Agent,并將任務描述作為輸入。

運維 Agent 執(zhí)行:

調用 query_hive_architecture 技能獲取架構圖。

調用 get_machine_info 技能獲取指定 IP 的機器信息。

將結果(Markdown 格式)通過 sessions_send 發(fā)送回 Gateway(或存入共享記憶)。

結果返回:

如果配置了共享記憶,研發(fā) Agent 在下一輪回復時會自動召回數(shù)據(jù),直接生成最終答案。

或者 Gateway 可以通過另一個 Hook 將結果轉發(fā)給研發(fā) Agent(需要額外配置)。

研發(fā) Agent 整合并回復:生成包含架構圖和機器信息的完整分析報告,回復給用戶。

5. 驗證與調試

檢查 Agent 日志:每個 Agent 的運行日志默認在 ~/.openclaw/logs/ 下,可查看調用過程。

測試技能:可以在 Agent 工作區(qū)中手動執(zhí)行技能,確保技能本身能正常工作。

模擬內部消息:使用 openclaw-cli 工具發(fā)送測試內部消息,驗證 Hook 是否觸發(fā)。

查看共享記憶:如果使用了記憶插件,可查詢數(shù)據(jù)庫確認數(shù)據(jù)是否成功存儲。

6. 注意事項

任務分配不要循環(huán):確保 Hook 配置不會導致 Agent 互相無限觸發(fā)(例如研發(fā) Agent 分配任務給運維,運維完成后又分配任務給研發(fā))??稍谌蝿肇撦d中加入唯一 ID 或會話標記,避免重復處理。

隔離會話:使用 sessionTarget: "isolated" 確保運維 Agent 的執(zhí)行環(huán)境與用戶對話隔離,防止混淆。

技能參數(shù)格式:確保技能定義的參數(shù)格式與 Agent 實際調用時一致。建議使用 JSON 或明確的分隔符。

權限控制:不同 Agent 可使用不同的 API 密鑰,避免跨 Agent 權限濫用。

監(jiān)控與告警:對關鍵 Agent 的任務執(zhí)行時間、失敗率設置監(jiān)控,及時發(fā)現(xiàn)異常。

7. 擴展:其他協(xié)作模式

事件驅動 + 共享記憶:如果不需要顯式任務分配,可以讓 Agent 將結果存入共享記憶,其他 Agent 通過自動召回獲取信息。此模式耦合度更低,適合信息查詢類場景。

多 Agent 輪詢:通過 Hook 鏈式觸發(fā)多個 Agent,實現(xiàn)流水線處理(如數(shù)據(jù)采集 → 分析 → 報告生成)。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容