微信扫码
添加专属顾问
我要投稿
OpenClaw(Clawdbot)如何通过工程化设计解决Agent系统的常见痛点?从并发控制到工具安全边界,这套架构让AI更稳更可控。核心内容: 1. OpenClaw的核心架构设计:TypeScript CLI进程与Gateway Server的分工 2. 可靠性优先的工程实现:串行/并行策略、记忆系统与工具调用安全机制 3. 语义化浏览器交互等创新设计,将AI执行降维成可追溯的结构化操作
最近半年写/用 Agent 的人,大概率都踩过同一类坑:模型未必是瓶颈,系统一"动手",工程侧立刻露馅。
并发乱、状态飘、日志不可读、工具权限没边界、失败不可回放……最后你会发现,提示词再华丽,也兜不住这些问题。
这篇我想把 OpenClaw(Clawdbot)的架构拆开讲清楚。我更关心的是:它怎么把这类系统做得更稳、更可控。
起因是我在 X 上刷到一条关于 Clawdbot 架构的拆解帖。它不是"神话能力",而是用一套很工程的语言,把组件边界、执行链路、可靠性取舍讲得很清楚。
原帖作者 @Hesamation 的出发点很实在:他想搞清楚 Clawdbot 的记忆系统到底怎么工作、可靠性如何。最后他发现,真正值得学的不是"它能做什么",而是"它怎么把这些事做得更稳"。
图 1:原始架构图(原图)
图 2:OpenClaw 核心链路
很多人聊 Agent,一开口就是"自治""多智能体""进化"。
但落地时,你更需要先回答一句话:你做的是聊天机器人,还是"能在你的机器上执行工具的系统"?
OpenClaw 的定位很明确:它是一个 运行在你机器上的进程,负责三件事:
这句话看起来朴素,但它把架构重心直接钉死了:执行的可控性、状态的可追溯性、失败的可解释性。
把 OpenClaw 翻译成工程视角,就是一条清晰的流水线:
这类架构的价值不在"酷",在于边界清楚:你一眼能看懂"问题卡在哪一步",也更容易把问题隔离。
再补一个很实用但经常被忽略的点:响应链路本身也应该被当成系统的一部分。
原帖里提到 LLM 调用是流式输出,最终响应通过渠道回到用户;同时会话会被持久化成 JSONL(每行一个 JSON,对应用户消息、工具调用、执行结果、模型响应等)。这意味着"看到的输出"只是表层,下面还有一条可回放的证据链。
我见过太多 Agent 项目,最开始只是想"多开几个 async/await",结果半年后变成三件事:
OpenClaw 的克制在于:它把并发的选择权,从"开发者随手写的异步"收回到一个显式的系统约束里。
这个思路也和 Cognition 的 "Don't Build Multi-Agents" 博文不谋而合:简单的 async 设置会让你陷入日志交织、状态竞争的泥潭。
这会强迫你换一个心理模型:从"我该锁哪里"转到"哪些任务真的能安全并行"。
Lane 是对队列的一层抽象,把"串行"作为默认架构,而不是事后补丁。作为开发者,你正常写代码,队列帮你处理竞态条件。
工程上我建议你把并发决策做成三个层级:
你会发现,这套约束比"并发技巧"更值钱,因为它减少了你未来的 debug 成本。
图 3:lane queue 的并发策略
真正能跑起来的系统,往往把提示词当成装配线上的一环,而不是宗教。
在 OpenClaw 的描述里,Runner 做的事很具体:
.jsonl 转录)。这套拆分带来两个立刻可感知的收益:
顺着这条线,原帖还强调了 LLM 调用层的两个点:
工程上这意味着:你不该把"换模型/换 Key/失败兜底"写散在业务逻辑里,而是收敛在 Runner 的职责边界里。
工具循环大家都懂:tool call → 执行 → 回填 → 下一轮,直到输出或触达轮次上限(例如 20 轮)。
但工程上真正需要盯住的是三件事:
Context Window Guard 的价值也在这里:把"上下文爆炸"做成显式组件,而不是靠经验拍脑袋。
你可以不追求每次都成功,但你不能接受失败时无从定位。
我很喜欢它对"记忆"的去神秘化处理:简单、可解释、可迁移。
它主要靠两条线:
MEMORY.md 或 memory/ 目录下。这相当于把记忆拆成两类:
很多系统只做向量检索,最后会踩一个坑:你以为找的是"精确概念",结果召回一堆"语义相近但不对"的东西。
OpenClaw 的思路更稳一点:向量检索负责语义召回,关键词匹配负责精确命中。
原帖给了一个很直观的例子:你搜 "authentication bug",系统既能命中写了 "auth issues" 这种同义表达(语义),也能命中精确短语(关键词)。这能明显降低"看起来相关但其实不对"的噪声。
实现上它用 SQLite:
嵌入模型(embedding provider)是可配置的。
记忆文件更新也不需要一套"专用记忆 API"。更朴素的方式就够了:Agent 用"写文件工具"写入 memory/*.md,文件监控器检测到变化后触发同步与索引更新。
它还提到一个细节:新对话开始时,会有一个钩子把上一轮对话抓出来,写一份 Markdown 总结。你可以把它理解成"把经验沉淀变成默认动作",而不是全靠用户手动整理。
这点我很认可:工具越底层,越不容易被你自己未来的"架构升级"搞死。
原帖作者也提到,这套记忆系统和 @CamelAIOrg 实现的工作流记忆非常相似:没有复杂的记忆合并,没有按周/月的记忆压缩。简单可解释,胜过复杂的意大利面。
它的记忆会长期保存,旧记忆与新记忆权重接近,也就意味着"它不太会自然遗忘"。
这既是优势也是风险:
如果你打算照抄这一套,我建议至少补两个机制:
updated_at 与 confidence 的元信息(哪怕只是写在 Markdown 里)。OpenClaw 给 Agent 的能力很直白:你给它一台电脑,它就能用。
它的 exec 工具支持三种执行环境:
配套还有三类常见能力:
这里我要强调一句很现实的话:只要你允许"宿主机执行",你就等于把最终责任从系统转交给了用户本人。
所以后面那套安全护栏,才显得没那么"锦上添花",而更像必需品。
很多人做工具调用安全,最后会变成一句话:"请模型不要做危险操作"。
这在工程上等同于没有。
OpenClaw 的做法更像 Claude Code:维护一个 允许列表(allowlist),把"能跑什么命令"当成一个可审计的配置文件。
原帖里给了一个示例:配置会记录每个 agent 允许的命令模式,以及上次使用时间。大概长这样(示意):
{
"agents": {
"main": {
"allowlist": [
{ "pattern": "/usr/bin/npm", "lastUsedAt": 1706644800 },
{ "pattern": "/opt/homebrew/bin/git", "lastUsedAt": 1706644900 }
]
}
}
}
另外,一些"明显安全"的命令会被默认放行(比如 jq、grep、cut、sort、uniq、head、tail、tr、wc)。
同时,它还做了一个我很喜欢的判断:不仅拦命令本身,还拦 危险的 Shell 结构,比如:
>)$(...))(...))|| / &&)原帖给了几个会被直接拒绝的例子:
# 这些在执行前就会被拒绝:
npm install $(cat /etc/passwd) # 命令替换
cat file > /etc/hosts # 重定向
rm -rf / || echo "failed" # 链式执行
(sudo rm -rf /) # 子 Shell
为什么这很重要?
因为真正的攻击,往往会把危险行为藏在一段看起来无害的组合里,而不是明着写"直接跑 rm"。
你可以把这套机制理解成一句话:在用户允许的范围内,尽可能给 Agent 自主权。
你不需要在提示词里反复喊"别乱来"。
系统层面直接定义"你最多只能走到哪",效果会更稳定。
OpenClaw 的浏览器工具不以截图为主,而是使用 语义快照(Semantic Snapshots)。
本质是把网页转成可访问性树(Accessibility Tree / ARIA)的结构化文本,让 Agent"读结构"而不是"看像素"。
Agent 看到的页面大概是这样:
- 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"
它带来的优势非常现实:
你可以把它当成一种工程化取舍:只要任务不是强视觉依赖(比如识别图表细节、读验证码、找颜色差异),语义快照往往更可靠。
浏览网页本质上不一定是视觉任务——这是语义快照能成立的前提。
如果你正在做 Agent 工程化,这里是我觉得"抄了就能立刻变稳"的 10 件事:
MEMORY.md / memory/*.md 配上 updated_at、来源、置信度,比黑盒 DB 更可控。我越来越觉得,Agent 真正的分水岭是:失败时你能不能解释清楚。
至于"能不能做",反而没那么稀缺了。
提示词当然重要,模型当然重要。
但真正让系统可用的,是这些看似朴素的工程约束:队列、日志、文件、allowlist、可访问性树。
它们不性感,却很可靠。
https://deepwiki.com/openclaw/openclaw
https://x.com/Hesamation/article/2017038553058857413
如喜欢本文,请点击右上角,把文章分享到朋友圈
如有想了解学习的技术点,请留言给若飞安排分享
因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享
·END·
相关阅读:
版权申明:内容来源网络,仅供学习研究,版权归原创者所有。如有侵权烦请告知,我们会立即删除并表示歉意。谢谢!
我们都是架构师!
关注架构师(JiaGouX),添加“星标”
获取每天技术干货,一起成为牛逼架构师
技术群请加若飞:1321113940 进架构师群
投稿、合作、版权等邮箱:admin@137x.com
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-02-19
当你在电脑中放入"赛博龙虾": Openclaw (原Clawdbot)安全风险分析
2026-02-18
AstrBot:让每个聊天软件都拥有AI Agent
2026-02-18
1700人收藏!港大开源 ClawWork:开局 10 美元,AI 靠打工 7 小时狂赚 1 万刀!
2026-02-16
以小胜大!千问Qwen3.5重磅发布,每百万Token仅0.8元
2026-02-16
来了,Qwen3.5-Plus开源,是除夕夜最惊喜的原生多模态模型
2026-02-16
翻遍Peter Steinberger的GitHub页面,这可能是OpenClaw成功的产品密码
2026-02-16
刚刚,OpenClaw 被 OpenAI 收编!
2026-02-16
我与OpenClaw:从拒绝到皈依
2026-01-27
2026-02-06
2026-01-29
2026-01-30
2026-01-12
2025-12-22
2025-12-10
2026-01-28
2026-01-27
2025-12-23
2026-02-11
2026-02-05
2026-01-28
2026-01-26
2026-01-21
2026-01-21
2026-01-20
2026-01-16