OpenClaw 的技术本质与架构深度解析
从 TypeScript CLI 到通道队列架构,揭秘 OpenClaw 如何实现持久记忆、计算机使用与浏览器自动化
一、OpenClaw 的技术本质
OpenClaw 本质上是一个 TypeScript 命令行应用程序
它并非 Python 或 Next.js 项目,也不是网页应用。它是一个运行在您设备上的进程,能够启动网关服务器处理所有渠道连接、调用各类大语言模型 API、在本地执行工具命令,并在您的计算机上执行任意操作。
OpenClaw 究竟是什么?
OpenClaw 是一款可在本地或通过模型 API 运行的私人助手,能像手机应用般便捷使用。但与普通聊天机器人不同,它具备真正的计算机操作能力。
- 启动网关服务器以处理所有渠道连接(Telegram、WhatsApp、Slack 等)
- 调用各类大语言模型 API(Anthropic、OpenAI、本地模型等)
- 在本地执行工具命令
- 在您的计算机上执行任意操作
二、架构解析
当你在通讯软件中向 OpenClaw 发送指令时,以下六个组件协同工作:
1渠道适配器
专用适配器接收并预处理消息(标准化处理、提取附件)
不同通讯平台都有独立的适配器
2网关服务器
作为任务/会话协调核心的网关服务器,将消息路由至对应会话
这是 OpenClaw 的心脏,能处理大量并发请求
为实现操作序列化,OpenClaw 采用基于通道的命令队列架构
每个会话拥有独立通道,低风险可并行任务则通过并行通道处理(如定时任务)
默认串行,显式并行 —— 这与混乱的异步/等待模式形成鲜明对比。过度并行化会损害系统可靠性,引发大量调试难题。
3智能体执行器
人工智能在此真正介入。它会动态选择模型、匹配 API 密钥(若均失效则标记配置文件冷却并尝试下一个)
在主模型失败时自动回退
执行器通过整合可用工具、技能、记忆系统以及会话历史记录(来自 .jsonl 文件)动态组装系统提示词
交由上下文窗口守卫检测剩余空间。当上下文将满时,系统会压缩会话(概括上下文)或优雅报错
4大语言模型 API 调用
调用过程支持响应流式传输
对不同供应商进行抽象封装
若模型支持,还可请求扩展思考功能
5智能体循环
当大语言模型返回工具调用响应时,OpenClaw 会在本地执行并将结果加入对话
该循环持续至模型返回最终文本或达到最大轮次(默认约 20 轮)
此处正是魔法发生之地:使用计算机
6响应路径
结果通过原渠道返回用户
会话通过基础 JSONL 格式持久化存储,每行包含用户消息、工具调用、结果、响应等 JSON 对象
这正是 OpenClaw 实现会话记忆的基础
三、记忆系统解析
缺乏记忆系统的 AI 助手如同金鱼,OpenClaw 通过双重机制实现记忆:
JSONL 会话记录
如前所述,每行包含用户消息、工具调用、结果、响应等 JSON 对象
Markdown 记忆文件
存储于 MEMORY.md 或 memory/ 文件夹,由智能体自主生成
搜索机制
融合向量搜索与关键词匹配优势。例如搜索「身份验证错误」时,既能找到提及「认证问题」的文档(语义匹配),也能精确定位包含该短语的内容。
- •向量搜索使用 SQLite 实现
- •关键词搜索采用 SQLite 扩展 FTS5
- •嵌入供应商可配置
- •系统受益于智能同步机制,文件监视器检测到变更时自动触发
简洁性哲学
「这些 Markdown 文件由智能体通过标准「写入」文件工具自主生成,没有专用的记忆写入 API。智能体直接写入 memory/*.md 文件。新会话启动时,钩子程序会抓取历史对话并生成 Markdown 摘要。OpenClaw 的记忆系统异常简洁,没有记忆合并机制,也无需月度/周度记忆压缩。这种简洁性既是优势也可能是隐患,但我始终推崇可解释的简洁性而非复杂的代码。记忆永久保存且历史记忆权重均等,可以说系统不存在遗忘曲线。」
四、使用计算机
这是 OpenClaw 的核心优势:授权它操作您的计算机。其使用方式基本符合您的预期。
执行环境
沙盒环境(默认)
在 Docker 容器内运行命令
宿主机直接运行
在本地机器上直接执行
远程设备执行
通过网络控制其他设备
文件系统工具
读写编辑本地文件
浏览器工具
基于 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 结构(默认拦截)
以下命令执行前会被拒绝:
- npm install $(cat /etc/passwd) # 命令替换
- cat file > /etc/hosts # 重定向
- rm -rf / || echo "failed" # 链式操作
- (sudo rm -rf /) # 子shell
安全策略与 Claude Code 高度相似,核心理念是在用户允许范围内实现最大自主权。
五、浏览器:语义快照技术
浏览器工具主要采用语义快照而非截图。这种基于文本的页面可访问性树(ARIA)呈现方式使智能体获得更清晰的页面视图:
智能体看到的页面视图:
- - 按钮「登录」[ref=1]
- - 文本框「邮箱」[ref=2]
- - 文本框「密码」[ref=3]
- - 链接「忘记密码?」[ref=4]
- - 标题「欢迎回来」
- - 列表
- - 列表项「仪表盘」
- - 列表项「设置」
语义快照的四大优势:
更高效
网页浏览未必是视觉任务。相较于 5MB 的截图,语义快照仅需不到 50KB,且仅消耗图像所需令牌量的零头。
更清晰
基于文本的可访问性树(ARIA)提供结构化的页面信息,避免了视觉噪音
更准确
直接获取页面元素的语义信息,无需从图像中推断
更经济
大幅降低 token 消耗,使复杂浏览器自动化成为可能
来源:https://x.com/Hesamation/status/2017038553058857413 | 翻译整理:OpenClaw 团队