乐于分享
好东西不私藏

扒完 Clawdbot 源码后,我被这 5 个设计亮点圈粉

扒完 Clawdbot 源码后,我被这 5 个设计亮点圈粉

最近我从头到尾撸了一遍 Clawdbot 的源码(clawdbot-2026.1.24),说实话,这玩意儿做得真挺讲究。它不只是一个简单的聊天机器人,更像是一个给 AI 用的“微型操作系统”。

今天咱们不聊虚的,直接上干货,看看它都有哪些接地气又好用的 “骚操作”,如果你也想自己写个 Agent,这些设计绝对值得抄作业。

(图:Clawdbot 的命令行启动界面,不仅能看日志,还能直接在这里和 AI 对话)


亮点 1:搞定内网穿透最好的方式,就是把它做进产品里

❓ 问题是这样的:你想在 Mac mini 上跑个 AI 助手,但你人在外面用手机想连回家。以前我们的做法是:买域名、配 DDNS、搞端口映射,或者用花生壳。不仅麻烦,把端口暴露在公网还很不安全。

✅ Clawdbot 是这么干的:直接内置 TailscaleClawdbot 把 Tailscale(一种很火的内网穿透工具)直接集成在代码里了。

  • • 你可以这么理解:它在代码里(src/gateway/server-tailscale.ts)写好了逻辑,你一启动,它就自动把你这台电脑和手机拉进了一个“虚拟局域网”。
  • • 爽在哪? 完全不需要公网 IP!除了你自己,谁也ping不通你的服务。这比自己折腾路由表安全太多了。

[[IMAGE_PLACEHOLDER_2]](图:Serve 模式下的私有网络示意图,数据直接点对点传输,不经过公网服务器)


亮点 2:所有聊天软件,在它眼里都是“同一个东西”

❓ 问题是这样的:你想让你的 AI 同时支持WeChat、Telegram、Discord 甚至Imessage。新手写代码容易写成这样:

if (是WeChat) { 发WeChat() }else if (是Telegram) { 发TG() }

以后每加一个新平台,你就得把这段代码改一遍,最后乱成一锅粥。

✅ Clawdbot 是这么干的:极其标准的“适配器”模式它在 src/plugin-sdk 里定义了一套死板的标准。不管你是啥聊天软件,要接入 Clawdbot,必须实现这几个标准动作:

  1. 1. sendMessage (怎么发消息)
  2. 2. getContacts (怎么获取联系人)
  3. 3. login (怎么登录)

核心代码根本不关心你是 Telegram 还是 WhatsApp,它只管调 sendMessage。以后要是出了新出的聊天软件(比如飞书),你写个插件适配一下这几个动作就行,不用动核心代码。

[[IMAGE_PLACEHOLDER_3]](图:Gateway 作为统一中枢,连接不同 Channel 的架构图)


亮点 3:喂给 AI 的网页,是“脱脂”过的

❓ 问题是这样的:你想让 AI 帮你去网页上查个东西。如果你直接把网页源代码(HTML)丢给它,那就像是让人在一个垃圾堆里找针——全是无用的 divcssscript,不仅费钱(Token 贵啊),AI 还容易看晕。

✅ Clawdbot 是这么干的:能用就行,要什么自行车在 src/browser/pw-role-snapshot.ts 里,我发现它用了一个很聪明的办法。它利用浏览器的“无障碍功能”(Accessibility Tree)来抓取页面。

  • • 效果:它把花里胡哨的网页,转换成了一个只有“按钮”、“输入框”、“文本”的极简清单。
  • • 这就好比把一张复杂的素描,简化成了火柴人。虽然丑,但 AI 一眼就能看懂哪里能点,哪里能填,操作成功率直线飙升。

亮点 4:记忆力好,是因为它会“做小抄”和“翻旧账”

❓ 问题是这样的:聊久了 AI 就忘了前面说啥了。要是把所有聊天记录都发给它,不仅慢,还因为太长导致它“注意力涣散”。

✅ Clawdbot 是这么干的:混合双打它在这个问题上用了两招:

  1. 1. 自动压缩(Auto-Compaction):检测到对话太长了,它会自动把前面的废话总结成一个摘要(Summary),就像考试前做的小抄。
  2. 2. 本地混合搜索:它把你所有的文件和历史记录都存在本地数据库里。当你问“上个月那个方案怎么说来着?”
    • • 它用 向量搜索 找意思相近的(比如你搜“配置”,它能找到“Settings”)。
    • • 它用 关键词搜索 找一模一样的词。这两招配合起来,既省钱又能把以前的事翻出来。

(图:混合检索流程,同时使用语义向量和关键词匹配)


亮点 5:给“偏科”的大模型擦屁股

❓ 问题是这样的:虽然现在大模型很多,但除了 GPT-4,其他的模型(比如 Gemini、Claude)多多少少都有点“怪癖”。有的不支持某种 JSON 格式,有的会输出奇怪的调试代码。

✅ Clawdbot 是这么干的:脏活累活我来干我在 src/agents/pi-embedded-runner/google.ts 看到一段专门针对 Google Gemini 的代码。

  • • 它发现 Gemini 有时候会在回复里夹带私货(一些奇怪的内部签名),Clawdbot 就在存入数据库前把这些脏东西清洗掉。
  • • 为了防止报错,它甚至会在发请求前,把一些 Gemini 看不懂的高级指令偷偷删掉。

这种在底层默默把坑填了的设计,才是让上层用起来“丝般顺滑”的关键。


总结

Clawdbot 的好用,不是因为它用了多牛逼的算法,而是因为它在工程细节上做得非常扎实。不管是网络连接、多平台适配,还是数据清洗,都体现了一个原则:把复杂留给自己,把简单留给模型。

这 5 点,绝对是咱们做 Agent 时可以直接拿来用的好思路。

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 扒完 Clawdbot 源码后,我被这 5 个设计亮点圈粉

评论 抢沙发

2 + 3 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮