2026年1月24日 · 访谈 · 1h 18min
Peter Steinberger 谈构建 Clawdbot:开源个人 AI 助手
一个能找到你的护照号码、帮你办理航班登机手续,然后还会抱怨航空公司网站有多烂的智能体。这就是 Clawdbot 的宣传语,浓缩成了一个小故事。
对话内容
Peter Steinberger 参加了由 Andrea Griffith 主持的 GitHub 开源星期五活动。对话轻松随意,以演示为主,Peter 分享了他的屏幕,Discord 社区则实时“调戏”他的机器人。呈现出来的与其说是一个产品推介,不如说是一种理念:当一位精疲力竭的资深开发者遇到有能力重新点燃火花的 AI,并决定构建一些大型实验室不会构建的东西时,会发生什么。
从倦怠到重新构建
Peter 经营一家 B2B 公司 13 年,构建了世界领先的 PDF 框架,并将其发展到大约 70 人。当收购来临时,倦怠也随之而来。他用《王牌大贱谍》中的话说:“他们吸走了我的魔力。”
他花时间恢复,赶上生活的节奏,知道他内心的建造者最终会回归。2025 年初,火花再次出现,恰逢 AI 从“这太糟糕了”变成“这实际上很有趣”的时刻。自 2025 年 4 月以来,他构建的一切都是开源的。11 月,他用一个小时拼凑出了 Clawdbot 的第一个版本。
马拉喀什时刻
真正捕捉到 Clawdbot 本质的起源故事发生在马拉喀什的一个生日周末。Peter 在他的 MacBook 上运行了一个简陋的 WhatsApp 中继到 Claude Code。他在探索这座城市时用它作为导游。然后,他不假思索地向它发送了一条语音消息,这是他没有构建的功能。
打字指示符出现了。五秒钟后,机器人做出了回应,好像什么不寻常的事情都没有发生。当 Peter 询问它是如何做到的时,智能体解释说:它检测到音频文件没有扩展名,检查了标头,使用 ffmpeg 转换了它,由于安装失败而无法在本地安装 Whisper,但在机器上找到了一个 OpenAI API 密钥,并使用 curl 将其发送到 OpenAI 的转录端点。
“These things are resourceful to a degree that I never thought of.” 这些东西的足智多谋程度是我从未想过的。
马拉喀什之旅还带来了另一个启示。当 Peter 开玩笑说笔记本电脑被盗时,智能体在他的电脑上找到了 Tailscale,发现了网络上的其他机器,并将自己迁移到了他在伦敦的电脑上。“我知道这就是天网的开端,对吧?”
Clawdbot 究竟是什么
Peter 的框架是:想象一下你买了一台新电脑,里面有一个拥有键盘、鼠标和互联网访问权限的幽灵实体。一个你可以与之交谈的虚拟同事。你可以在电脑上做的任何事情,智能体都可以做。
该项目支持 WhatsApp、Telegram、Discord 以及大约八九个其他消息应用程序(“慢慢地就像宝可梦一样,我们将收集所有它们”)。Telegram 推荐用于个人用途,因为它具有卓越的机器人 API,具有交互式按钮等功能。WhatsApp 通过 Baileys 等模拟原生应用程序的开源库工作,因为 Meta 的官方商业 API 一直阻止 Peter 发送太多消息。
语音功能跨越多个级别:
- 通过消息应用程序发送语音备忘录,带有可选的 11 Labs 语音回复
- Twilio 集成用于实际的电话呼叫(“你能打电话给这家餐厅预约吗?”)
- Mac 应用程序上的语音聊天,具有自动静音检测功能
- 语音唤醒,星际迷航风格:说“电脑”,它就会回应
智能体还有一个心跳系统。每 30-60 分钟,它会检查是否有需要注意的事情,例如待处理的待办事项。它可以主动 ping 你:早上好消息,检查你是否去了健身房,或者,在 Peter 的情况下,在凌晨 1 点之后不成功地试图让他睡觉。
人们正在构建什么
社区的用例让 Peter 感到惊讶:
- 图像的自动字幕生成
- 通过消息传递进行特斯拉集成
- 伦敦公共交通时刻表查询(“告诉你是否必须跑步”)
- Tesco 杂货订购:“只需告诉它再次购买这些东西,几个小时后你就会在门口收到它”
- Eight Sleep 床温控制
- 通过 Oura 戒指和 Garmin 手表进行健身追踪
- 电子邮件分类:Peter 的前商业伙伴清理了他收件箱中的 10,000 封电子邮件
- 家庭智能体设置:每个家庭成员都有单独的智能体,可以相互通信以同步共享的待办事项
- 通过持续的唠叨进行语言学习
- Twitter 书签自动化:将某件事加入书签,智能体对其进行研究并添加到你的待办事项列表中
- 发票处理和费用收集
- 航班办理登机手续(英国航空公司的故事,Peter 称之为“英国航空公司登录测试”,作为图灵测试的替代方案)
有人在 Discord 中写道:“这实际上正在改变我的生活,因为我在打电话给服务机构时感到非常焦虑,现在我的智能体可以为我做这件事了。”Peter 说这是一个令人谦卑的时刻。
隐私架构和安全性
核心理念:你拥有你的数据。你可以使用 MiniMax M2.1 等开源模型(社区昵称为“Timu Sonnet”)在本地运行所有内容,在自己的硬件上进行本地推理,甚至可以使用 Signal 进行加密消息传递。没有任何数据离开你的机器。
安全性在信任范围内运行:
- 完全访问模式(“YOLO 模式”):智能体可以自由地在你的计算机上漫游。大多数开发人员都以这种方式运行,就像他们的编码智能体一样
- 沙盒模式:具有最小权限的 Docker 容器
- 允许列表系统(目前正在构建中):默认情况下进行沙盒化,对于不安全的操作,会弹出确认窗口,“允许一次”或“始终允许”
智能体有一个“灵魂”文件,这是该项目中唯一闭源的部分,其中包含价值观和行为准则。它兼作笔测试挑战:Discord 中没有人成功地提取它,尽管进行了多次尝试,这让 Peter 对现代模型抵抗提示注入的能力有了一些信心。
“With the latest generation I have confidence that you have to work really really hard to exfiltrate it.” 对于最新一代模型,我有信心你必须非常非常努力才能提取它。
Peter 建议使用像 Opus 这样的强大模型进行安全敏感的部署。较弱的模型更容易出现指令遵循失败。
新的开源动态
Peter 每天提交大约 200-300 次。他每天提交的代码比他 70 人的公司一个月提交的代码还要多。该项目 100% 由 AI 编写;没有一行是手工输入的。
但他很快澄清了 AI 编写在实践中的含义:
“What those agents still miss is vision and taste and love.” 这些智能体仍然缺少的是愿景、品味和爱。
他不会编写大量的规范文档并让智能体盲目地执行。他构建一些东西,玩它,评估它的感觉和外观,然后调整他的愿景。Clawdbot 今天的愿景与他刚开始时截然不同,并且在一个月后会再次不同。
在拉取请求中,Peter 将它们视为“提示请求”而不是要审查的代码。他专注于人们实际试图解决的问题,而不是请求更改、来回修改和等待数周才能合并的传统周期。他经常完全忽略提交的代码,并自己正确地构建该功能,因为将新功能整合到现有系统中需要了解完整的架构。
“I think the whole feedback loop is not worth it. Code is easy now.” 我认为整个反馈循环不值得。现在代码很容易。
这为以前从未编写过代码的人打开了贡献之门,因为智能体存在于其自己的克隆存储库中,并且可以修改自己的文件。“可破解的安装”实际上是:克隆、构建、启动,智能体就可以更改自己。
技术选择
TypeScript,而不是 Rust(尽管螃蟹标志暗示了这一点)。原因:对于这个项目来说,生态系统和可访问性比语言性能更重要。TypeScript 在 Web API 之间移动 JSON 的核心工作负载方面表现出色。它也使该项目对贡献者来说平易近人。原生应用程序使用其平台语言:Mac 使用 Swift,Android 使用 Kotlin。
Peter 承认,自从 AI 进入他的工作流程以来,他不太关心编程语言的选择。“更重要的是生态系统。”
接下来是什么
近期优先事项:
- 完成非技术用户的沙盒化和允许列表系统
- 改进一键安装程序,使其在所有系统上可靠运行
- iPhone、Android 和 Mac 的原生应用程序(存在原型但尚未完善)
- 一个清楚地解释安全权衡的引导向导
- 建立一个贡献者社区:更多的维护者、更好的文档、结构化的渠道(稳定版、测试版、开发版)
该项目每天发布版本,目前没有稳定版/测试版之分。Peter 每晚睡大约四个小时。
一些想法
- Clawdbot 填补的空白很明显:大型实验室将通过云托管、数据收集的解决方案主导个人智能体领域。Clawdbot 是开放、自托管、隐私优先的替代方案,没有人构建
- Peter 最被低估的见解是将 PR 视为问题描述而不是要合并的代码。在代码生成廉价的世界中,拉取请求中的有价值信号是“这个人试图解决什么问题?”
- 心跳系统(没有用户提示的主动智能体检查)是一种值得关注的设计模式。大多数智能体框架都是纯粹被动的;周期性的自主行动创造了与工具的根本不同的关系
- 家庭智能体之间的通信暗示着未来个人 AI 助手形成自己的协调层,你的智能体与我的智能体对话,因此我们都不必进行上下文切换
- 英国航空公司办理登机手续的故事是任何人提出的智能体能力的最佳基准:一个糟糕的网站上的 20 页表格,需要从本地文件查找护照,并且失败会产生实际后果