🏗️ OpenClaw 架构概念

OpenClaw 的核心架构和关键概念。


📐 整体架构

┌─────────────────┐
│  聊天应用        │
│  WhatsApp       │
│  Telegram       │
│  Discord        │
│  iMessage       │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│   Gateway       │
│  (网关服务)      │
└────────┬────────┘
         │
    ┌────┴────┬───────────┬──────────┐
    ▼         ▼           ▼          ▼
┌───────┐ ┌───────┐ ┌─────────┐ ┌────────┐
│  Pi   │ │  CLI  │ │  Web UI │ │ Mobile │
│ Agent │ │       │ │         │ │ Nodes  │
└───────┘ └───────┘ └─────────┘ └────────┘

网关是核心:所有会话、路由和通道连接的单一事实来源。


🔑 核心概念

1. 网关 (Gateway)

  • 作用: 连接聊天应用和 AI 代理的桥梁
  • 运行位置: 你的机器或服务器
  • 特点: 自托管、多通道、多代理

2. 通道 (Channels)

支持的聊天平台:

通道类型说明
WhatsApp即时通讯需要电话号码
Telegram即时通讯Bot Token
Discord社区聊天Bot Token
iMessageApple 消息需要 macOS
Signal加密通讯需要注册
Slack团队协作Bot Token

3. 代理 (Agents)

  • Pi Agent: 内置 AI 编程助手
  • 多代理路由: 支持多个隔离的代理实例
  • 会话隔离: 每个代理有独立的工作区和会话

4. 会话 (Sessions)

会话作用域选项:

模式说明
main共享会话
per-peer每用户隔离
per-channel-peer每通道每用户隔离
per-account-channel-peer最细粒度隔离

5. 节点 (Nodes)

移动设备连接:

  • iOS App: 支持 Canvas、相机、语音
  • Android App: 功能类似 iOS
  • 配对流程: 安全的设备认证

🔐 安全模型

访问控制

DM 策略:

  • pairing (默认): 未知用户需配对码
  • allowlist: 仅允许列表用户
  • open: 开放所有 DM
  • disabled: 禁用 DM

群聊限制:

  • 提及门控:需要 @mention 才能触发
  • 支持正则匹配模式

沙箱隔离

{
  agents: {
    defaults: {
      sandbox: {
        mode: "non-main",  // off | non-main | all
        scope: "agent",
      },
    },
  },
}

🔄 自动化

心跳 (Heartbeat)

定期主动检查:

{
  agents: {
    defaults: {
      heartbeat: {
        every: "30m",
        target: "last",
      },
    },
  },
}

定时任务 (Cron)

{
  cron: {
    enabled: true,
    jobs: [...],
  },
}

Webhooks

HTTP 端点接收外部事件:

{
  hooks: {
    enabled: true,
    mappings: [...],
  },
}

📊 配置热重载

大多数配置更改无需重启:

类别热重载
通道配置✅ 是
代理&模型✅ 是
自动化✅ 是
会话管理✅ 是
网关端口/绑定❌ 需重启

🎯 使用场景

场景 1: 个人 AI 助手

  • 单代理配置
  • WhatsApp/Telegram 连接
  • 每用户会话隔离

场景 2: 团队协作

  • 多代理路由(工作/个人)
  • Discord/Slack 集成
  • 群聊提及限制

场景 3: 开发工作流

  • 沙箱隔离
  • 自定义技能
  • Cron 自动化

📚 相关文档


最后更新:{{ lastModified }}