WhatsApp 是对话发生的地方。不是 Slack,不是 Discord,不是 Telegram——对世界上大多数人来说,WhatsApp 就是默认选择。每月 20 亿活跃用户,在欧洲、拉丁美洲、南亚和非洲占据主导地位。如果你想要一个真正融入日常生活的 AI 助手,它需要出现在你日常对话已经发生的地方。
问题是 WhatsApp 没有面向个人的 bot API。WhatsApp Business API 存在,但它需要商业账户、Meta 审批,以及一个为客服设计的按消息收费结构,而不是个人助手。对于想在自己的 WhatsApp 中拥有一个个人 AI bot 的开发者来说——一个能在群聊中回复、记住上下文、在自己硬件上运行的——官方路径是死胡同。
NanoClaw 通过 Baileys 解决了这个问题。Baileys 是一个开源的 WhatsApp Web 库,以与 WhatsApp Web 客户端相同的方式连接到 WhatsApp 服务器。你扫描一个二维码,连接建立,NanoClaw 就可以用你的 WhatsApp 账户收发消息。不需要 Business API,不需要 Meta 审批,没有按消息收费。
架构:为什么 WhatsApp 很特殊
NanoClaw 的 WhatsApp 集成不只是一个消息桥接——它是整个架构围绕设计的主要频道。虽然其他频道(Telegram、Discord、Slack)通过 Claude Code skills 添加,但 WhatsApp 是内置在核心中的。这不是偏心;这反映了 WhatsApp 的群组模型如何自然地映射到 NanoClaw 的安全模型。
WhatsApp 群组就是隔离边界。每个群组都有自己的容器、自己的 CLAUDE.md 记忆文件和自己的可写工作区。当有人在家庭群组中发送消息时,响应的 agent 只能访问该群组的历史和记忆。它看不到你工作群组的消息,无法访问你的私聊历史,也读不到属于其他群组的文件。隔离由容器挂载强制执行,而非应用逻辑。
这种按群组隔离使得 NanoClaw 对人们实际使用 WhatsApp 的方式是安全的。你的家庭群组讨论私人事务,你的工作群组讨论专有项目,你的朋友群组分享不会公开分享的内容。这些上下文中的每一个都需要是独立的,NanoClaw 确保了这一点——不是通过可能有 bug 的访问控制列表,而是通过应用层漏洞无法绕过的物理容器隔离。
设置步骤
设置过程大约十分钟,其中大部分时间是等待 npm install。
克隆仓库并安装依赖:
```bash git clone https://github.com/qwibitai/NanoClaw.git cd NanoClaw npm install ```
配置你的环境。最小可用配置只需要一个 Anthropic API 密钥:
```bash echo 'ANTHROPIC_API_KEY=sk-ant-your-key-here' > .env ```
运行 WhatsApp 配对:
```bash npm run auth ```
这会在终端中显示一个二维码。打开手机上的 WhatsApp,进入"已关联的设备",扫描二维码。连接建立,NanoClaw 开始监听消息。
启动 agent:
```bash npm start ```
就这样。在任何你想让 bot 活跃的 WhatsApp 群组中发送消息,提及助手的名字(通过 .env 中的 ASSISTANT_NAME 配置),它就会回复。第一次响应需要几秒钟,因为容器需要启动;同一会话中的后续消息更快,因为容器保持热状态。 ## 消息流转过程
理解消息流转有助于解释为什么 NanoClaw 在有容器开销的情况下仍然感觉响应迅速。当 WhatsApp 上收到一条消息时,宿主进程——NanoClaw 约 500 行的 TypeScript 核心——通过 Baileys 接收它。它检查消息是否发给助手(通过名字提及或私聊)。如果是,宿主查找该群组的容器状态。
如果该群组已有一个正在运行的容器(来自最近的对话),消息通过 IPC 路由到它。容器内的 agent 接收消息,用 Claude Agent SDK 处理,然后通过 IPC 发回响应。宿主将响应转发到 WhatsApp。总增加延迟:IPC 几毫秒,加上 Claude API 的响应时间。
如果没有运行中的容器,宿主启动一个。在 macOS 上用 Apple Container 需要 200-400ms,在 Linux 上用 Docker 需要 1-2 秒。容器接收群组的 CLAUDE.md 记忆文件、来自 SQLite 的对话历史和通过 stdin 传递的 API 密钥。它处理消息并响应。容器保持活跃一个可配置的超时时间(默认 30 分钟),以处理后续消息而无需启动开销。
结果是大多数消息——活跃对话中的那些——感觉是即时的。AI 响应时间主要由 Claude 的 API 延迟决定,而非 NanoClaw 的基础设施。只有长时间沉默后的第一条消息有容器启动开销,即便如此也快到用户很少注意到。
按群组记忆:让它真正好用的功能
按群组的 CLAUDE.md 文件是将无状态聊天机器人变成真正有用的助手的关键。每个群组的记忆文件随时间积累上下文——偏好、进行中的项目、反复出现的话题、内部梗。agent 在每次对话轮次开始时读取这个文件,这意味着它记得你上周告诉它的事情,而不需要你重复。
在家庭群组中,记忆可能记录饮食偏好、学校日程和定期活动。在工作群组中,它可能跟踪项目截止日期、团队偏好和技术决策。在朋友群组中,它可能记住旅行计划、餐厅推荐和共同兴趣。
记忆是可编辑的。你可以让 agent 记住特定的事情("记住妈妈对贝类过敏")或忘记某些事情("忘掉我说的关于惊喜派对的事")。你也可以直接编辑 CLAUDE.md 文件——它是你文件系统上的纯文本文件,不是锁在数据库里的。
隐私现实
运行 WhatsApp AI bot 会引发合理的隐私问题,值得坦诚面对。NanoClaw 处理的消息会被发送到 Anthropic 的 API 供 Claude 生成响应。这意味着你的 WhatsApp 消息——至少是发给助手的那些——会离开你的设备并由 Anthropic 的服务器处理。
NanoClaw 通过几种方式缓解这个问题。只有明确发给助手的消息才会被发送到 API——bot 不会处理或存储不是发给它的消息。存储在 SQLite 中的对话历史留在你的机器上。CLAUDE.md 记忆文件留在你的机器上。如果你配置 NanoClaw 使用 Ollama 而不是 Anthropic,AI 处理也在本地进行——没有任何东西离开你的网络。
对大多数用户来说,实际的隐私状况是:你的 WhatsApp 消息留在你的设备上,除非你明确向 AI 助手提问,此时那条特定消息会被发送到 Anthropic(或用 Ollama 在本地处理)。这比那些处理和存储你输入的一切的云 AI 服务有着明显更好的隐私表现。
WhatsApp 是你生活发生的地方。NanoClaw 在那里放了一个 AI 助手——带有隔离、记忆和隐私模型,使其可以安全地用在你讨论真正重要事情的群组中。