首页
学习
活动
专区
圈层
工具
发布

拆解Clawdbot:一个AI助手的内部运作逻辑

最近Clawdbot这个项目很火,但大多数人只是在用,很少有人真正搞明白它是怎么运转的。今天我们就来做一次技术解剖,看看这个AI助手的底层架构到底长什么样。

先说一个可能颠覆你认知的事实:Clawdbot本质上是一个TypeScript命令行应用。不是Python,不是网页应用,就是一个跑在你本地机器上的进程。它做的事情很直接:暴露一个网关服务器来处理各种渠道的连接,调用大模型API,在本地执行工具,然后替你完成各种任务。

整个架构可以拆成六个环节。

第一环是渠道适配器,负责接收和标准化你从各个平台发来的消息。第二环是网关服务器,这是整个系统的心脏,负责把消息分发到正确的会话中。这里有个很精妙的设计:它用了一个基于“泳道”的命令队列来串行化操作。每个会话有自己专属的泳道,只有那些低风险、可并行的任务才会被放到并行泳道里跑。

这个设计背后有一条重要的工程哲学:默认串行,显式并行。

如果你做过智能体开发,一定深有体会。那种到处都是异步调用的代码,最后会变成一堆交织在一起的垃圾日志,调试起来简直是噩梦。泳道这个抽象把串行化变成了默认架构,开发者的心智模型从“我需要锁住什么”变成了“什么东西可以安全地并行”。这个思路转变,价值千金。

第三环是智能体运行器,负责选择模型、组装系统提示词、加载工具和记忆,然后把会话历史拼接进去。如果上下文快满了,它会自动压缩会话或者优雅地失败。第四环是大模型API调用,支持流式响应和扩展思考。第五环是智能体循环,如果模型返回工具调用,就在本地执行并把结果加回对话,循环往复直到得到最终答案或者达到最大轮次。第六环是响应路径,把结果送回给你,同时把整个会话持久化到一个JSONL文件里。

再来看记忆系统。Clawdbot的记忆分两层:会话记录存在JSONL文件里,长期记忆存在Markdown文件里。搜索的时候同时用向量检索和关键词匹配,这样既能找到语义相近的内容,也能精确命中特定词汇。

有意思的是,这些Markdown记忆文件是智能体自己用普通的文件写入工具生成的,没有什么特殊的记忆API。每次新对话开始时,系统会自动抓取上一次对话并写入摘要。整个设计出奇地简单,没有记忆合并,没有周期性压缩,旧记忆和新记忆权重相等,永不遗忘。

简单有简单的好处:可解释、可调试、不容易出幺蛾子。

最后说说计算机控制能力。Clawdbot通过exec工具执行shell命令,可以跑在Docker沙箱里,也可以直接跑在宿主机上。它还有文件系统工具、基于Playwright的浏览器工具,以及进程管理工具。

安全方面,它用了一个命令白名单机制,用户可以选择允许一次、始终允许或拒绝。安全命令预先批准,危险的shell结构默认拦截。

浏览器工具有个巧妙的设计:它不依赖截图,而是用语义快照,也就是页面可访问性树的文本表示。一张截图可能有5MB,语义快照只有50KB不到,token成本天差地别。毕竟浏览网页这件事,本质上并不是一个视觉任务。

这套架构给我们的启示是:好的AI工程不在于用了多炫酷的技术,而在于用最朴素的方式解决最核心的问题。

x.com/Hesamation/status/2017038553058857413

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OvwBKWmBMhaWhZzfSVGQkfqQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。
领券