Clawdbot:运行在你自己设备上的个人AI助手

支持多平台消息通道,本地优先的AI助手框架

目录:

在AI助手日益普及的今天,我们往往需要依赖云端服务来使用这些智能工具。但如果你想要一个完全由自己控制、运行在本地的AI助手呢?今天要介绍的 Clawdbot 就是这样一个开源项目——一个真正属于你的个人AI助手。

什么是Clawdbot?

Clawdbot 是一个个人AI助手框架,你可以在自己的设备上运行它。它最大的特点是可以接入你日常使用的各种消息平台,包括:

  • WhatsApp、Telegram、Signal、iMessage
  • Slack、Discord、Microsoft Teams、Google Chat
  • Matrix、BlueBubbles、Zalo 等扩展通道
  • macOS/iOS/Android 上的语音交互
  • 实时 Canvas 可视化界面

Clawdbot 不仅仅是一个简单的聊天机器人,它的设计理念是成为一个"本地优先、快速响应、始终在线"的个人助手。Gateway 只是控制平面,真正的产品是这个助手本身。

核心架构

Clawdbot 的架构设计非常清晰:

WhatsApp/Telegram/Slack/Discord/其他消息平台
┌───────────────────────────────┐
│            Gateway            │
│         (控制平面)            │
│     ws://127.0.0.1:18789      │
└──────────────┬────────────────┘
               ├─ Pi agent (RPC)
               ├─ CLI (clawdbot …)
               ├─ WebChat UI
               ├─ macOS app
               └─ iOS / Android nodes

Gateway 网关

Gateway 是整个系统的核心,它是一个 WebSocket 控制平面,负责:

  • 管理多个消息通道的连接
  • 路由消息到不同的 agent
  • 处理会话(sessions)和状态管理
  • 提供 Web UI 控制界面
  • 执行定时任务(cron)和 webhook

多通道接入

Clawdbot 支持几乎所有主流的消息平台:

  • WhatsApp: 使用 Baileys 库
  • Telegram: 基于 grammY 框架
  • Slack: 使用 Bolt SDK
  • Discord: discord.js
  • Google Chat: Chat API
  • Signal: signal-cli
  • iMessage: imsg (仅 macOS)
  • Microsoft Teams: 扩展支持
  • 以及更多…

Agent 系统

Clawdbot 使用 Pi agent 运行时,支持:

  • RPC 模式的工具流式传输
  • 多 agent 路由(可以根据通道/账号/对等方路由到隔离的 agents)
  • 会话隔离和激活模式
  • 队列模式和回复机制

快速开始

安装要求

  • Node.js >= 22
  • npm、pnpm 或 bun

推荐安装方式

使用内置的引导向导是最简单的方式:

# 全局安装
npm install -g clawdbot@latest

# 运行引导向导(会安装 daemon 服务)
clawdbot onboard --install-daemon

引导向导会引导你完成以下配置:

  1. Gateway 配置
  2. Workspace 设置
  3. 消息通道配置
  4. Skills(技能)安装

启动 Gateway

# 启动 Gateway(默认端口 18789)
clawdbot gateway --port 18789 --verbose

# 发送消息
clawdbot message send --to +1234567890 --message "Hello from Clawdbot"

# 与 agent 对话
clawdbot agent --message "Ship checklist" --thinking high

从源码构建(开发者)

如果你想参与开发或从源码构建:

git clone https://github.com/clawdbot/clawdbot.git
cd clawdbot

pnpm install
pnpm ui:build    # 首次运行会自动安装 UI 依赖
pnpm build

pnpm clawdbot onboard --install-daemon

# 开发模式(TypeScript 热重载)
pnpm gateway:watch

# generated by hugo's coding agent

核心功能特性

1. 本地优先的 Gateway

Gateway 是单一的控制平面,管理:

  • 会话(Sessions)
  • 通道连接(Channels)
  • 工具(Tools)
  • 事件(Events)

所有数据都存储在本地,你完全掌控你的数据。

2. 多 Agent 路由

可以根据不同的输入通道、账号或对话者,将消息路由到不同的 agent 实例。每个 agent 可以有独立的:

  • Workspace 配置
  • 会话状态
  • 工具权限
  • 模型选择

3. 语音交互

支持 macOS、iOS 和 Android 平台的语音交互:

  • Voice Wake: 始终在线的语音唤醒
  • Talk Mode: 连续对话模式
  • 集成 ElevenLabs 进行高质量语音合成

4. Live Canvas

Agent 驱动的可视化工作空间,支持:

  • A2UI (Agent-to-UI) 协议
  • 实时界面更新
  • 截图和快照
  • Canvas 操作和评估

5. 浏览器控制

Clawdbot 可以控制一个专用的 Chrome/Chromium 实例:

  • CDP (Chrome DevTools Protocol) 控制
  • 页面快照
  • 自动化操作
  • 文件上传
  • 多配置文件支持

6. Skills 平台

支持三种类型的 skills:

  • Bundled skills: 内置技能
  • Managed skills: 托管技能
  • Workspace skills: 工作空间技能

Skills 可以通过 UI 安装和管理,并有安装门控机制。

7. 自动化能力

  • Cron 任务: 定时触发 agent 任务
  • Webhooks: HTTP 触发器
  • Gmail Pub/Sub: 邮件事件触发

模型支持

Clawdbot 支持多种 AI 模型,通过 OAuth 或 API 密钥认证:

  • Anthropic: Claude Pro/Max (推荐使用 Opus 4.5)
  • OpenAI: ChatGPT/Codex

作者强烈推荐使用 Anthropic Pro/Max + Opus 4.5,因为它具有:

  • 强大的长上下文能力
  • 更好的 prompt 注入抵抗力

配置示例:

{
  agent: {
    model: "anthropic/claude-opus-4-5"
  }
}

安全性设计

Clawdbot 连接到真实的消息平台,因此安全性至关重要。

DM(私信)访问控制

默认行为使用 配对策略dmPolicy="pairing"):

  1. 未知发送者会收到一个短配对码
  2. Bot 不会处理他们的消息
  3. 需要手动批准:clawdbot pairing approve <channel> <code>
  4. 批准后,发送者被添加到本地白名单

如果要允许公开私信(不推荐),需要:

  • 设置 dmPolicy="open"
  • 在通道白名单中包含 "*"

运行 clawdbot doctor 可以检查风险配置。

沙箱模式

  • 主会话:默认在主机上运行,拥有完整访问权限
  • 非主会话:可以设置 agents.defaults.sandbox.mode: "non-main" 在 Docker 沙箱中运行群组/通道会话

沙箱默认配置:

  • 白名单工具:bash、process、read、write、edit、sessions_*
  • 黑名单工具:browser、canvas、nodes、cron、discord、gateway

远程访问

Clawdbot 可以在远程 Linux 服务器上运行,通过 TailscaleSSH 隧道 访问:

Tailscale 集成

支持两种模式:

  • Serve: Tailnet 内部访问(默认使用 Tailscale 身份认证)
  • Funnel: 公开 HTTPS 访问(需要密码认证)

配置 gateway.tailscale.mode:

{
  gateway: {
    tailscale: {
      mode: "serve",  // 或 "funnel"
      resetOnExit: true  // 可选:关闭时清理
    }
  }
}

设备节点

即使 Gateway 运行在远程服务器上,你仍然可以配对设备节点(macOS/iOS/Android)来执行本地操作:

  • system.run: 运行本地命令
  • camera.*: 相机操作
  • screen.record: 屏幕录制
  • location.get: 获取位置
  • system.notify: 发送通知

Agent 间通信

Clawdbot 支持 agent 之间的通信,通过 sessions_* 工具:

  • sessions_list: 发现活跃的会话(agents)
  • sessions_history: 获取会话的历史记录
  • sessions_send: 向另一个会话发送消息(支持回复机制)

这使得你可以构建协作式的 AI 系统,让不同的 agent 协同工作。

聊天命令

在 WhatsApp、Telegram、Slack 等平台中,可以使用以下命令:

  • /status: 查看会话状态(模型、token 使用情况、成本)
  • /new/reset: 重置会话
  • /compact: 压缩会话上下文(摘要)
  • /think <level>: 设置思考级别(off|minimal|low|medium|high|xhigh)
  • /verbose on|off: 详细模式开关
  • /usage off|tokens|full: 使用情况显示
  • /restart: 重启 gateway(仅群组所有者)
  • /activation mention|always: 群组激活模式切换

应用生态

macOS 应用(可选)

  • 菜单栏控制 Gateway
  • Voice Wake + 按键说话覆盖层
  • 内置 WebChat 和调试工具
  • 通过 SSH 远程控制 gateway

iOS 节点(可选)

  • 通过 Bridge 配对为节点
  • 语音触发转发 + Canvas 界面
  • 使用 clawdbot nodes ... 控制

Android 节点(可选)

  • 与 iOS 相同的 Bridge + 配对流程
  • 支持 Canvas、Camera 和屏幕捕获

开发通道

Clawdbot 提供三个发布通道:

  • stable: 稳定版本(npm latest 标签)
  • beta: 预发布版本(npm beta 标签)
  • dev: 开发版本(npm dev 标签,main 分支)

切换通道:

clawdbot update --channel stable|beta|dev

配置示例

最小化配置 ~/.clawdbot/clawdbot.json

{
  agent: {
    model: "anthropic/claude-opus-4-5"
  },
  channels: {
    telegram: {
      botToken: "YOUR_BOT_TOKEN"
    },
    discord: {
      token: "YOUR_DISCORD_TOKEN"
    }
  }
}

完整配置参考:Configuration Reference

社区与贡献

Clawdbot 是一个活跃的开源项目,由 Peter Steinberger 和社区共同维护。项目欢迎贡献,包括"AI/vibe-coded"的 PR!

特别感谢 Mario Zechner 的支持和他的 pi-mono 项目。

相关链接

适用场景

Clawdbot 特别适合以下场景:

  1. 个人自动化:构建自己的智能助手,自动化日常任务
  2. 团队协作:在 Slack/Discord 中部署团队 bot
  3. 隐私优先:需要完全控制数据和 AI 交互的场景
  4. 多平台整合:需要统一管理多个消息平台的用户
  5. 开发学习:学习 AI agent 系统架构和实现

总结

Clawdbot 是一个功能强大、架构清晰的个人AI助手框架。它的核心优势在于:

  • 本地优先:数据和控制权完全在你手中
  • 多平台支持:几乎支持所有主流消息平台
  • 灵活可扩展:通过 skills、tools 和 agents 构建复杂功能
  • 安全设计:内置配对机制和沙箱隔离
  • 活跃社区:持续更新,文档完善

如果你想要一个真正属于自己的AI助手,Clawdbot 绝对值得一试。它不仅是一个工具,更是一个平台,让你可以根据自己的需求定制和扩展功能。

现在就开始体验 Clawdbot,让AI助手真正为你服务吧!🦞

npm install -g clawdbot@latest
clawdbot onboard --install-daemon

EXFOLIATE! EXFOLIATE! 🦞


See also