这种情况大多数人都熟悉:你的工作团队在 Slack 上沟通,亲密朋友在 WhatsApp,游戏社区在 Discord,个人联系人偏好 Telegram。你最终打开四个应用,管理四个通知流,维护四个独立的上下文。
现在想象你的 AI 助手同时在所有这些平台上工作——共享记忆,所以它记得你在 Telegram 上告诉它的事情,当你在 Discord 上问起时。一个助手,在你已经在的每个地方。
这就是 ZeroClaw 的多频道架构使之成为可能的,而且设置比你想象的更简单。
底层工作原理
ZeroClaw 的频道系统建立在 Rust trait 上。每个频道——Telegram、Discord、WhatsApp、Signal、Matrix、IRC——是一个实现相同接口的独立适配器。它们共享单个 AI 提供商连接、单个记忆数据库、单个配置文件,以及作为单个二进制文件运行的单个进程。
实际结果是当你在 Telegram 上告诉机器人某件事时,它在 Discord 上问起时会记得。记忆是频道无关的。ZeroClaw 在统一的 SQLite 数据库中存储对话,带有关于每条消息来自哪个频道的元数据,但检索跨所有频道工作。你的上下文跟随你。
设置 Telegram
在 Telegram 上给 @BotFather 发消息创建新机器人并获取你的 token。然后给 @userinfobot 发消息获取你的用户 ID。将这个添加到你的配置:
```toml [channels.telegram] token = "123456:ABCdefGHIjklMNO" allowed_users = [your_user_id] ```
`allowed_users` 列表很重要——它确保只有你(或你指定的任何人)可以与你的机器人交互。
设置 Discord
去 discord.com/developers,创建一个应用,添加一个机器人,复制 token。在机器人设置中启用消息内容意图——没有这个,机器人无法读取消息。使用 OAuth2 URL 生成器将机器人邀请到你的服务器。
```toml [channels.discord] token = "MTk4NjIz..." guild_ids = [your_server_id] allowed_roles = ["ai-users"] ```
`allowed_roles` 字段让你限制哪些 Discord 用户可以与机器人交互——如果你将它添加到共享服务器,这很有用。
设置 WhatsApp
ZeroClaw 使用不需要任何特殊 API 访问的 WhatsApp Web 桥接:
```toml [channels.whatsapp] enabled = true allowed_numbers = ["+1234567890"] ```
第一次启动时,ZeroClaw 在终端显示二维码。用手机上的 WhatsApp 扫描它进行配对。之后,它会自动保持连接。
启动一切
```bash zeroclaw start ```
一条命令。所有三个频道同时连接:
``` [INFO] Telegram channel connected [INFO] Discord channel connected (1 guild) [INFO] WhatsApp channel paired [INFO] ZeroClaw ready — 3 channels active ```
实践中的共享记忆
跨频道记忆是让这真正有用而不只是技术上有趣的功能。实际效果是这样的:
你在 Telegram 上发送消息: > "记住我的项目截止日期是 3 月 15 日" > "好的——你的项目截止日期是 3 月 15 日。"
之后,在 Discord 上: > "我的截止日期是什么时候?" > "你的项目截止日期是 3 月 15 日,正如你之前提到的。"
机器人不需要被再次告知。不需要你在同一个频道。记忆在整个 ZeroClaw 实例中共享。
按频道调整行为
不同平台有不同的惯例。Discord 用户期望 Markdown 格式和简洁的响应。WhatsApp 对话更随意,不渲染 Markdown。Telegram 支持更长、更详细的回复。ZeroClaw 让你按频道调整行为:
```toml [channels.discord] token = "..." system_prompt_append = "You are in a Discord server. Keep responses concise. Use markdown formatting." max_response_length = 1500
[channels.telegram] token = "..." system_prompt_append = "You are in a private Telegram chat. Be conversational and detailed." max_response_length = 4000
[channels.whatsapp] enabled = true system_prompt_append = "You are on WhatsApp. Keep responses short — no markdown, plain text only." max_response_length = 500 ```
同一个 AI,同一个记忆,每个平台不同的风格。
访问控制
当你的机器人可以跨多个频道访问时,访问控制很重要。ZeroClaw 给你每个频道的控制:
```toml [channels.telegram.permissions] tools = ["web_search", "file_read", "file_write"]
[channels.discord.permissions] tools = ["web_search"] # 在公共服务器上只读 ```
你可以给你的私人 Telegram 聊天完整的工具访问权限,同时保持 Discord 机器人仅限于网络搜索。权限在频道级别强制执行,而不是用户级别。
添加更多频道
ZeroClaw 支持 30+ 个频道。添加另一个只是更多配置:
```toml [channels.slack] token = "xoxb-..." channels = ["C01234567"]
[channels.signal] enabled = true phone_number = "+1234567890"
[channels.matrix] homeserver = "https://matrix.org" username = "@zeroclaw:matrix.org" password = "..." ```
每个额外的频道增加大约 0.5MB RAM。十个频道同时运行仍然总共不到 10MB。
更大的图景
多频道设置解决了一个真实问题:你的生活不在一个应用里发生,你的 AI 助手也不应该如此。一个二进制文件,一个配置文件,一个记忆数据库,你的助手就出现在你使用的每个对话平台上——跨所有平台记住上下文,使用的 RAM 比单个浏览器标签还少。
没有微服务。没有消息队列。没有容器编排。只是一个恰好能说三十种不同聊天协议的单个进程。