Clawdbot 架構

深入了解 Clawdbot AI 助手架構。學習 Gateway-Agent 模型、WebSocket API、訊息流程和系統設計。

Clawdbot 架構概覽

Clawdbot 採用 Gateway-Agent 架構,將訊息傳輸和 AI 處理分離。這種設計實現了可擴展性、可靠性和多通道支援。

系統組件

閘道層

Clawdbot 閘道是中央協調器:

組件職責
連線管理器維護提供者連線
訊息路由器將訊息路由到代理
會話管理器管理對話狀態
WebSocket 伺服器公開類型化 API

代理層

Clawdbot 代理處理 AI 處理:

組件職責
執行時執行代理邏輯
工具執行器運行工具和技能
上下文管理器管理對話上下文
回應產生器產生 AI 回應

訊息流程

入站流程

Provider → Gateway → Router → Agent → Runtime
  1. 提供者接收訊息
  2. 閘道標準化格式
  3. 路由器選擇目標代理
  4. 代理處理訊息
  5. 執行時產生回應

出站流程

Runtime → Agent → Gateway → Provider → User
  1. 執行時產生回應
  2. 代理格式化訊息
  3. 閘道路由到提供者
  4. 提供者傳遞訊息

WebSocket API

連線

const ws = new WebSocket('ws://localhost:3010');

ws.on('open', () => {
  ws.send(JSON.stringify({
    type: 'auth',
    token: 'your-token'
  }));
});

訊息類型

類型方向描述
auth客戶端→伺服器驗證連線
message雙向傳送/接收訊息
status伺服器→客戶端連線狀態更新
typing伺服器→客戶端輸入指示器

狀態管理

會話狀態

Clawdbot 在多個層級維護狀態:

Global State
  └── Agent State
        └── Session State
              └── Message State

狀態持久化

狀態類型儲存生命週期
全域clawdbot.json永久
代理agents/<id>/每個代理
會話sessions/<key>.jsonl直到過期
訊息記憶體每個請求

可擴展性

水平擴展

Clawdbot 支援水平擴展:

  • 負載平衡器後面的多個閘道實例
  • 共享會話儲存以保持一致性
  • 無狀態訊息處理

資源限制

資源預設可配置
最大連線數100
訊息緩衝區1000
會話逾時24 小時

安全模型

驗證

  • API 金鑰驗證
  • 基於令牌的 WebSocket 驗證
  • 每個提供者的憑證

授權

  • 工具級別權限
  • 代理級別隔離
  • 會話級別存取控制

後續步驟