news 2026/9/4 15:24:42

Clawdbot (OpenClaw): 架构与实现解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Clawdbot (OpenClaw): 架构与实现解析

我深入了解了Clawdbot(亦称Moltbot)的架构及其处理智能体执行、工具使用、浏览器操作等方式。对于AI工程师而言,这其中有许多值得借鉴之处。
了解Clawd的内部工作机制,能让我们更好地理解这个系统及其能力,最重要的是,明白它擅长什么不擅长什么
这一切始于我个人对Clawd如何处理记忆及其可靠性的好奇。
在本文中,我将浅析Clawd的工作方式。

Clawd的技术实质
众所周知,Clawd是一个个人助理,你可以本地运行或通过模型API使用,并能像在手机上一样轻松访问。但它究竟是什么?
本质上,Clawdbot 是一个 TypeScript CLI 应用程序。
它并非Python、Next.js或网页应用。
它是一个进程,能够:

在你的机器上运行,并暴露一个网关服务器来处理所有通道连接(Telegram、WhatsApp、Slack 等);
调用LLM API(Anthropic、OpenAI、本地模型等);
在本地执行工具;
并在你的计算机上执行你想要的任何操作。

系统架构
为了更简单地解释其架构,这里有一个示例,展示了从你向Clawd发送消息到获得输出的完整过程。

当你通过即时通讯软件向Clawd发送指令时,会发生以下过程:

1. 通道适配器
通道适配器接收并处理你的消息(进行规范化、提取附件)。不同的通讯软件和输入流都有其专用的适配器。

2. 网关服务器
作为任务/会话协调器的网关服务器接收你的消息,并将其传递到正确的会话。这是Clawd的核心。它处理多个重叠的请求。

为了序列化操作,Clawd使用了一个基于通道的命令队列。一个会话拥有其专属的通道,而低风险、可并行化的任务可以在并行通道中运行(例如定时任务)。

这与使用异步/等待的混乱代码形成对比。过度并行化会损害可靠性,并引发一大堆调试问题。

默认采用串行,显式地选择并行

如果你从事过智能体开发,可能已经在某种程度上意识到了这一点。这也是Cognition公司的博文《不要构建多智能体》中的核心见解。
为每个智能体设置简单的异步架构,最终会让你得到一堆交错混乱的垃圾数据。日志将难以阅读,如果它们共享状态,竞态条件将成为你在开发过程中必须时刻警惕的常驻恐惧。
“通道”是对队列的一种抽象,其默认架构就是序列化,而非事后补救。作为开发者,你只需手动编写代码,队列会为你处理竞态条件。
这种思维模式从“我需要锁定什么?”转变为“什么是可以安全并行化的?”

3. 代理运行器
这才是真正的AI发挥作用的地方。它决定使用哪个模型,选择API密钥(如果都无效,则将对应的配置标记为冷却状态并尝试下一个),并在主模型失败时回退到其他模型。

代理运行器动态地组装系统提示,包含可用的工具、技能、记忆,然后添加上下文历史记录(来自一个.jsonl文件)。

接下来,它会将提示传递给上下文窗口守卫,确保有足够的上下文空间。如果上下文几乎已满,它要么压缩会话(总结上下文),要么优雅地失败。

4. LLM API 调用
LLM调用本身会流式传输响应,并对不同的提供商进行抽象封装。如果模型支持,它还可以请求进行扩展思考。

5. 代理循环
如果LLM返回一个工具调用的响应,Clawd会在本地执行它,并将结果添加到对话中。这个过程会不断重复,直到LLM返回最终文本或达到最大轮次限制(默认为约20轮)。

这也是魔法发生的地方:

计算机使用

这一点我稍后会详细说明。

6. 响应路径
这部分相当标准。响应通过原通道返回给你。会话也会通过一个基础的jsonl文件持久化保存,其中每一行都是一个JSON对象,记录了用户消息、工具调用、结果、响应等内容。这就是Clawd记忆的方式(基于会话的记忆)。

以上就是基本架构。现在,让我们深入了解一些更关键的组件。

Clawd如何记忆
没有一个合适的记忆系统,AI助手就跟金鱼没什么两样。Clawd通过两个系统来处理记忆:

  • 如上所述的JSONL格式的会话记录

  • 位于MEMORY[.]md文件或memory/文件夹中的Markdown格式的记忆文件

对于搜索,它采用了向量搜索和关键词匹配的混合方式。这结合了两者的优点。
因此,搜索“authentication bug”(认证错误)既能找到提及“auth issues”(权限问题)的文档(语义匹配),也能找到包含完全匹配短语的文档(关键词匹配)。
向量搜索使用SQLite,关键词搜索使用同样是SQLite扩展的FTS5。嵌入的提供者是可配置的。
它还受益于智能同步功能,该功能在文件监视器检测到文件更改时触发。
这些Markdown文件是由智能体自身使用一个标准的“写入”文件工具生成的。并没有特殊的记忆写入API。智能体只是简单地写入memory/*.md文件。
当一个新的对话开始时,一个钩子会抓取之前的对话,并用Markdown格式写一个摘要。

Clawd的记忆系统出奇地简单,与我们在@CamelAIOrg中实现的工作流记忆非常相似。没有记忆合并,没有每月/每周的记忆压缩。
这种简单性可能是一个优势,也可能是一个缺陷,取决于你的视角,但我个人总是更倾向于可解释的简洁,而非复杂的意大利面条式代码。
记忆会永久保存,旧的记忆基本上拥有同等的权重,因此我们可以说它没有遗忘曲线。

Clawd的“爪子”:它如何使用你的计算机
这是Clawd的护城河之一:你给它一台计算机,让它使用。那么它是如何使用的呢?基本上和你想象的一样。
Clawd赋予智能体对计算机的重大访问权限,但这需要你自担风险。它使用一个执行工具来运行shell命令,可以在以下环境:

  • 沙盒:默认选项,命令在Docker容器中运行。

  • 直接在宿主机上运行。

  • 远程设备上运行。

除此之外,Clawd还拥有文件系统工具(读、写、编辑),
基于Playwright的浏览器工具(附带语义快照功能),
以及用于管理后台长期命令、终止进程等的进程管理工具

安全性(或其缺失?)
与Claude Code类似,这里有一个允许列表,用于管理用户希望批准的命令(允许一次、总是允许、向用户发送拒绝提示)。

// ~/.clawdbot/exec-approvals.json { "agents": { "main": { "allowlist": [ { "pattern": "/usr/bin/npm", "lastUsedAt": 1706644800 }, { "pattern": "/opt/homebrew/bin/git", "lastUsedAt": 1706644900 } ] } } }

安全命令(如jqgrepcutsortuniqheadtailtrwc)已预先获得批准。

危险的shell结构默认会被阻止。

# these get rejected before execution: npm install $(cat /etc/passwd) # command substitution cat file > /etc/hosts # redirection rm -rf / || echo "failed" # chained with || (sudo rm -rf /) # subshell

其安全设计与Claude Code非常相似。
核心理念是提供用户所允许的最大限度的自主性

浏览器:语义快照
浏览器工具主要并非使用屏幕截图,而是使用语义快照,即基于文本的页面可访问性树表示。

因此,智能体会看到类似这样的内容:

- button "Sign In" [ref=1] - textbox "Email" [ref=2] - textbox "Password" [ref=3] - link "Forgot password?" [ref=4] - heading "Welcome back" - list - listitem "Dashboard" - listitem "Settings"

这带来了四个显著优势。你可能已经猜到,浏览网站的行为本质上并不一定是视觉任务。

虽然一张屏幕截图可能占用 5 MB 的空间,但一个语义快照却不到 50 KB,其对应的 Token 成本也只是图像的一小部分。

原文:https://x.com/Hesamation/status/2017038553058857413[1]

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/21 16:26:41

Clawdbot汉化版惊艳效果展示:微信内实时代码生成+技术文档总结

Clawdbot汉化版惊艳效果展示:微信内实时代码生成技术文档总结 Clawdbot汉化版不是又一个“能用就行”的AI工具,而是一次真正把大模型能力塞进日常协作场景的实践。它最让人眼前一亮的地方,不是参数有多强、模型有多大,而是——你…

作者头像 李华
网站建设 2026/8/21 16:26:43

文本相似度计算不求人:GTE模型一键部署教程

文本相似度计算不求人:GTE模型一键部署教程 你是否遇到过这些场景: 想快速比对两段用户反馈是否表达同一问题,却卡在“用什么模型算相似度”上?做客服知识库检索时,关键词匹配总漏掉语义相近但措辞不同的答案&#x…

作者头像 李华
网站建设 2026/9/3 6:53:26

android添加水印库java

https://github.com/huangyz0918/AndroidWM/blob/master/README-CN.md

作者头像 李华
网站建设 2026/9/4 0:44:58

动手试了Hunyuan-MT-7B-WEBUI,效果远超预期!

动手试了Hunyuan-MT-7B-WEBUI,效果远超预期! 你有没有过这样的经历:在GitHub上找到一个标着“SOTA翻译模型”的开源项目,点开README,第一行就是pip install -r requirements.txt……然后一路报错、降版本、查CUDA、重…

作者头像 李华
网站建设 2026/8/28 0:06:33

2026别错过!千笔,当红之选的MBA论文工具

你是否正在为MBA论文的选题发愁?是否在撰写过程中遭遇思路混乱、资料匮乏、格式错误频出的困境?更别提查重率和AI检测的高压,让每一篇论文都像一场硬仗。面对这些挑战,许多同学感到力不从心,甚至影响了毕业进度。而如今…

作者头像 李华
网站建设 2026/8/27 8:04:13

ChatGLM-6B开箱体验:生产级稳定的AI对话服务

ChatGLM-6B开箱体验:生产级稳定的AI对话服务 你是否试过部署一个大模型,刚调通就崩溃?刚调好参数,服务又卡死?反复重启、查日志、改配置,最后只换来几分钟的稳定运行?如果你也经历过这些&#…

作者头像 李华