OpenClaw(Clawdbot)架构拆解:把 Agent 系统做得更稳、更可控

原文来源:https://mp.weixin.qq.com/s/tp9H0IR9a4SWBioLMCDehA 架构师(JiaGouX)|我们都是架构师!架构未来,你来不来? 最近半年写/用 Agent 的人,大概率都踩过同一类坑:模型未必是瓶颈,系统一"动手",工程侧立刻露馅。并发乱、状态飘、日志不可读、工具权限没边界、失败不可回放……最后你会发现,提示词再华丽,也兜不住这些问题。 这篇我想把 OpenClaw(Clawdbot)的架构拆开讲清楚。我更关心的是:它怎么把这类系统做得更稳、更可控。 起因是我在 X 上刷到一条关于 Clawdbot 架构的拆解帖。它不是"神话能力",而是用一套很工程的语言,把组件边界、执行链路、可靠性取舍讲得很清楚。 原帖作者 @Hesamation 的出发点很实在:他想搞清楚 Clawdbot 的记忆系统到底怎么工作、可靠性如何。最后他发现,真正值得学的不是"它能做什么",而是"它怎么把这些事做得更稳"。 太长不看版(6 条) OpenClaw 的本体是 TypeScript CLI 进程,外加一个负责多渠道接入的 Gateway Server;它不是 Web App。 它把可靠性放在第一位:默认串行,显式并行(lane queue)。并发不是"性能技巧",先是"可靠性问题"。 Agent Runner 更像一条装配线:模型选择与 Key 冷却、Prompt 组装、历史加载、上下文窗口守护,然后驱动工具循环。 记忆不神秘:JSONL 转录(可回放)+ Markdown 记忆文件(可编辑);检索用 向量 + 关键词 混合,落在 SQLite(FTS5)。 工具调用的安全边界必须系统化:allowlist + 结构化拦截(重定向/命令替换/子 Shell/链式执行等直接拒绝),别把"自觉"当机制。 浏览器不主要靠截图:用 语义快照(Accessibility Tree/ARIA) 把"看网页"降维成"读结构",成本更低、成功率更稳。 图 1:原始架构图(原图) 图 2:OpenClaw 核心链路 先把它放回正确的分类:它到底是什么 很多人聊 Agent,一开口就是"自治"“多智能体"“进化”。但落地时,你更需要先回答一句话:你做的是聊天机器人,还是"能在你的机器上执行工具的系统”? OpenClaw 的定位很明确:它是一个 运行在你机器上的进程,负责三件事: 接收来自不同渠道的消息(Telegram、Discord、Slack 等)。 调用 LLM API(OpenAI、Anthropic、本地模型等)。 在本地或受控环境里执行工具(Shell、文件、浏览器、进程),再把结果回写给你。 这句话看起来朴素,但它把架构重心直接钉死了:执行的可控性、状态的可追溯性、失败的可解释性。 ...

March 2, 2026 · 3 min · 466 words · Robert