核心概念
Clawdbot 的架构设计围绕几个核心概念,理解这些概念将帮助你更好地配置和使用系统。
架构概览
┌─────────────────────────────────────────────────────────────┐
│ 网关 (Gateway) │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │WhatsApp │ │Telegram │ │ Discord │ │ Slack │ ... │
│ └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘ │
│ │ │ │ │ │
│ └────────────┴────────────┴────────────┘ │
│ │ │
│ ┌─────┴─────┐ │
│ │ 路由器 │ │
│ └─────┬─────┘ │
│ ┌──────────────────┼──────────────────┐ │
│ ┌────┴────┐ ┌────┴────┐ ┌────┴────┐ │
│ │ 代理 1 │ │ 代理 2 │ │ 代理 3 │ │
│ │(默认) │ │(工作) │ │(个人) │ │
│ └─────────┘ └─────────┘ └─────────┘ │
└─────────────────────────────────────────────────────────────┘核心组件
网关 (Gateway)
网关是 Clawdbot 的中心组件,负责:
- 管理所有消息渠道的连接
- 路由消息到正确的代理
- 维护会话状态
- 提供 WebSocket API
代理 (Agent)
代理是独立的 AI 人格,每个代理拥有:
- 独立的工作空间 (workspace)
- 独立的状态目录 (agentDir)
- 独立的会话存储
- 独立的认证配置
会话 (Session)
会话是对话的上下文容器:
- 私聊消息可以共享主会话或独立会话
- 群聊消息默认使用独立会话
- 支持自动重置策略
渠道 (Channel)
渠道是与聊天平台的连接:
- 每个平台使用特定的协议库
- 支持私聊和群聊
- 可配置访问策略
关键特性
流式传输
Clawdbot 支持实时流式响应:
- 消息分块发送,实时显示
- 可配置分块大小
- 支持部分流式模式
消息分块
长消息自动分块:
- 默认每块 4000 字符
- 根据平台限制自动调整
- 保持消息完整性
安全访问控制
多层安全机制:
- 配对模式: 未知用户需要配对码
- 白名单模式: 只允许列表中的用户
- 开放模式: 允许所有用户
沙箱隔离
代理可以运行在沙箱中:
- host: 直接在主机运行
- docker: 在 Docker 容器中隔离
配置结构
{
// 工作空间
workspace: "~/clawd",
// 渠道配置
channels: {
whatsapp: { /* ... */ },
telegram: { /* ... */ }
},
// 代理配置
agents: {
default: { /* ... */ },
work: { /* ... */ }
},
// 绑定规则
bindings: [
{ match: { channel: "telegram" }, agent: "work" }
]
}