拆解 OpenClaw:一个能在你电脑上”为所欲为”的 AI 助手是如何炼成的

拆解 OpenClaw:一个能在你电脑上

当所有人都在谈论 AI Agent 有多神奇时,很少有人真正了解它们的内部运作机制。今天,我们来深入看看 OpenClaw(又名 Clawdbot)——这个能在你电脑上执行命令、操作浏览器、管理文件的 AI 助手,到底是如何工作的。

了解 AI 的底层逻辑,不仅能让我们更好地使用它,更重要的是,能清楚地知道它擅长什么、不擅长什么,以及在哪些场景下值得信任。

 

它不是你想象的那样

大多数人可能以为 OpenClaw 是一个 Python 写的 Web 应用,或者是某种复杂的云服务。但事实上,它的核心是一个用 TypeScript 编写的 CLI(命令行)应用程序。

这意味着什么?它是一个直接运行在你本地机器上的进程,能够:

  • 通过网关服务器处理来自 Telegram、WhatsApp、Slack 等各种渠道的消息
  • 调用各种大语言模型的 API(Anthropic、OpenAI、本地模型等)
  • 在本地执行工具和命令
  • 在你的电脑上做几乎任何你想做的事

这种架构设计让它既能保持灵活性,又能获得强大的本地执行能力。

拆解 OpenClaw:一个能在你电脑上

 

从发送消息到得到回复:一次完整的旅程

当你通过即时通讯工具向 OpenClaw 发送一条消息时,会经历以下流程:

第一站:通道适配器 不同的消息平台(Telegram、WhatsApp 等)有不同的消息格式。通道适配器负责接收你的消息,进行标准化处理,提取附件等。

第二站:网关服务器 这是 OpenClaw 的心脏。它作为任务和会话的协调者,将你的消息传递给正确的会话,并处理多个重叠的请求。

这里有一个关键的设计哲学:默认串行,显式并行

OpenClaw 使用基于“车道”(Lane)的命令队列系统。每个会话都有自己的专用车道,确保操作按顺序执行。只有明确标记为低风险的可并行任务(比如定时任务)才会在并行车道中运行。

为什么要这样设计?因为过度并行化会带来灾难性的后果:日志变得难以阅读,竞态条件无处不在,调试变成噩梦。这也是 Cognition 在其《不要构建多智能体》博文中强调的核心洞察。

第三站:AI 推理引擎 这里是真正的 AI 魔法发生的地方。系统会:

  • 决定使用哪个模型
  • 选择可用的 API 密钥(如果主要的失效,会自动切换到备用的)
  • 动态组装系统提示词,包含可用的工具、技能和记忆
  • 添加会话历史记录

在调用大语言模型之前,还有一个“上下文窗口守卫”确保有足够的空间。如果上下文快满了,系统会压缩会话(总结上下文)或优雅地失败,而不是直接崩溃。

第四站:工具执行循环 如果大语言模型返回的是工具调用请求,Clawdbot 会在本地执行这些工具,并将结果添加到对话中。这个过程会重复进行,直到模型返回最终文本,或者达到最大回合数(默认约 20 回合)。

最后一站:返回响应 回复通过原来的通道返回给你。整个会话被持久化保存在一个 JSONL 文件中,每一行都是一个包含用户消息、工具调用、结果和回复的 JSON 对象。

 

记忆系统:比你想象的更简单

没有合适的记忆系统,AI 助手就像金鱼一样健忘。OpenClaw 通过两个系统来处理记忆:

1. 会话记录(JSONL 格式) 每次对话的完整历史都被保存下来,就像一本详细的日记。

2. 记忆文件(Markdown 格式) 存储在 MEMORY.md 或 memory/ 文件夹中。这些文件是由 AI 自己使用标准的“写文件”工具创建的——没有特殊的记忆写入 API,它就是简单地写入 Markdown 文件。

当新对话开始时,系统会抓取之前的对话并生成摘要。

搜索时,OpenClaw 使用混合搜索策略:向量搜索(语义理解)+ 关键词匹配(精确查找)。这样,当你搜索“身份验证错误”时,既能找到提及“auth issues”的文档(语义匹配),也能找到精确短语匹配的内容。

有趣的是,OpenClaw 的记忆系统出奇地简单:没有记忆合并,没有每月或每周的记忆压缩,旧记忆和新记忆的权重基本相同——也就是说,没有遗忘曲线

这种简单性是优点还是缺点?取决于你的视角。但在复杂的意大利面条式代码和可解释的简单性之间,简单性往往更可靠。

 

计算机使用:真正的“护城河”

这是 OpenClaw 最强大也最危险的能力:你给它一台电脑,让它自由使用。

Shell 命令执行 OpenClaw 可以在三种模式下运行命令:

  • 沙箱模式(默认):命令在 Docker 容器中运行
  • 主机模式:直接在你的电脑上运行
  • 远程模式:在远程设备上运行

文件系统工具 读取、写入、编辑文件——就像人类用户一样操作文件系统。

浏览器工具 基于 Playwright,但不是简单地截图,而是使用语义快照——一种基于页面可访问性树(ARIA)的文本表示。

AI 看到的不是图片,而是这样的结构化信息:

– button “Sign In” [ref=1]

– textbox “Email” [ref=2]

– textbox “Password” [ref=3]

– link “Forgot password?” [ref=4]

– heading “Welcome back”

 

这种方法有四个显著优势:

  1. 体积小:截图可能有 5MB,语义快照不到 50KB
  2. 成本低: Token 消耗只是图像的一小部分
  3. 更精确:文本表示比视觉识别更可靠
  4. 更快速:处理速度显著提升

进程管理 可以启动后台长期运行的命令,终止进程等。

 

安全机制:自由与控制的平衡

给 AI 这么大的权限,安全性如何保障?OpenClaw 采用了类似 Claude Code 的安全策略:

命令白名单 用户可以设置允许的命令,并选择“允许一次”、“始终允许”或“拒绝”。

预批准的安全命令 像 jqgrepcutsort 等安全命令已经预先批准。

危险构造拦截 以下危险的 Shell 构造会被默认阻止:

npm install $(cat /etc/passwd)  # 命令替换

cat file > /etc/hosts            # 重定向

rm -rf / || echo “failed”        # 链式命令

(sudo rm -rf /)                  # 子 Shell

理念是:在用户允许的范围内,给予尽可能多的自主权

 

给 AI 工程师的启示

从 OpenClaw 的架构中,我们可以学到几个关键原则:

1. 默认串行,显式并行 不要一开始就追求并行化。先让系统可靠运行,再在明确安全的地方引入并行。

2. 简单优于复杂 记忆系统不需要复杂的压缩和合并算法。有时候,直接保存 Markdown 文件就够了。

3. 文本优于图像 在可以用结构化文本表示的场景(比如网页浏览),不要盲目使用视觉模型。

4. 队列是你的朋友 使用队列抽象来处理并发,而不是手动管理锁和竞态条件。

5. 渐进式授权 给 AI 强大能力的同时,通过白名单、审批机制等方式保持控制。

 

写在最后

OpenClaw 的架构揭示了一个重要事实:构建可靠的 AI Agent 系统,核心不在于使用最先进的模型,而在于如何组织工作流、管理状态、处理并发和确保安全

技术的魔法往往不在于复杂性,而在于对简单原则的坚持和对细节的精心打磨。当我们理解了这些底层机制,就能更好地驾驭 AI,而不是被它的“黑盒”特性所困扰。

下次当你使用 AI 助手时,不妨想想:在那个简洁的对话界面背后,有多少精心设计的组件在协同工作,让看似简单的交互成为可能。

查看原文

- Posted in: AI

- Tags:

0 条评论 ,13 次阅读

发表评论

  1. 来都来了,说些什么?

Top