news 2026/5/30 17:47:04

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/5/25 11:20:07

YOLO X Layout文档分析模型5分钟快速部署教程:小白也能轻松上手

YOLO X Layout文档分析模型5分钟快速部署教程:小白也能轻松上手 你是不是也遇到过这样的问题:手头有一堆PDF合同、扫描报表、学术论文,想快速提取其中的表格、标题、图片和正文,却要一张张手动框选、复制粘贴?或者开发…

作者头像 李华
网站建设 2026/5/20 21:37:18

Qwen3-Reranker-4B应用场景:短视频脚本生成中的关键词-片段关联重排

Qwen3-Reranker-4B应用场景:短视频脚本生成中的关键词-片段关联重排 1. 为什么短视频脚本生成需要“重排”这一步? 你有没有试过让大模型一口气生成10个短视频脚本?看起来挺多,但真正能用的可能就1–2个——不是逻辑断层&#x…

作者头像 李华
网站建设 2026/5/29 12:48:04

《QGIS快速入门与应用基础》136:样式选项卡:图层符号化

作者:翰墨之道,毕业于国际知名大学空间信息与计算机专业,获硕士学位,现任国内时空智能领域资深专家、CSDN知名技术博主。多年来深耕地理信息与时空智能核心技术研发,精通 QGIS、GrassGIS、OSG、OsgEarth、UE、Cesium、OpenLayers、Leaflet、MapBox 等主流工具与框架,兼具…

作者头像 李华
网站建设 2026/5/30 12:35:34

DeerFlow Python执行沙箱:安全运行代码片段的机制解析

DeerFlow Python执行沙箱:安全运行代码片段的机制解析 1. DeerFlow是什么:不只是一个研究助手 你有没有遇到过这样的场景:想快速验证一个数据处理思路,但又不想打开本地IDE、新建工程、配置环境;或者需要从网页抓取实…

作者头像 李华
网站建设 2026/5/22 1:45:24

Qwen3-Embedding-4B开箱即用:小白也能玩转智能搜索

Qwen3-Embedding-4B开箱即用:小白也能玩转智能搜索 1. 开箱即用:不用装、不配环境,点开就能懂的语义搜索 你有没有试过在文档里搜“怎么退款”,结果只找到写了“退款流程”四个字的那一页,而真正讲清楚步骤的三段话却…

作者头像 李华
网站建设 2026/5/26 7:53:12

Ollama部署translategemma-4b-it:图文翻译模型在跨境电商客服中的应用

Ollama部署translategemma-4b-it:图文翻译模型在跨境电商客服中的应用 1. 为什么跨境电商客服急需一款真正懂图的翻译工具 你有没有遇到过这样的场景:一位海外客户发来一张商品标签的截图,上面全是英文技术参数,但客服既看不懂专…

作者头像 李华