☰
OpenClaw(小龙虾)—— 本地优先的Agent框架
2026/10/22 7:34:54 网站建设 项目流程

引子:一只“龙虾”如何成为AI智能体的操作系统

2026年1月29日,创始人彼得·斯坦伯格在官方博客中披露了一组数据:OpenClaw已从“周末作品”发展到“单周200万访问、10万以上GitHub stars”。截至3月11日,其仓库页面已显示30.1万stars、超千位贡献者。中文互联网将红色龙虾图标叙事化为“养龙虾”,腾讯云等平台将部署流程压缩到“3步启用”。

但真正让OpenClaw区别于其他Agent产品的,是英伟达CEO黄仁勋在GTC 2026上给出的定义:“OpenClaw就是AI智能体计算机的操作系统。”他甚至公开宣称,OpenClaw仅用几周时间就超越了Linux在过去30年取得的成就。

这个评价并非空穴来风。OpenClaw的核心采用分层模块化设计,分为Gateway核心层(总调度中心)、Channel交互层(指令入口和结果出口)、LLM决策层(大脑)、Tools执行层(手脚)、Memory记忆层(记忆库)五大模块。这种设计让OpenClaw能够实现“思考—规划—执行—反馈”的完整闭环,而不仅是简单的问答交互。

本文沿着“操作系统级架构 → 文件优先哲学 → Skill系统 → 四条桌面控制路径 → Java视角”的主线,拆解这只“龙虾”的工程内核。

一、操作系统级架构:五大模块的工程实现

OpenClaw的本质是一个运行在用户终端的后台服务。它同时具备消息接入、会话路由、并发队列、短期/长期记忆、工具系统、Agent自主规划,以及一整套故障转移机制。其核心运行逻辑可以概括为:调用大模型API → 解析输出 → 本地执行系统命令 → 循环 → 结果回传。

从源码结构来看,OpenClaw的运行时分为几个核心目录:src/agents/包含嵌入式的Agent运行循环(run.ts)、模型选择与Provider归一化、Compaction与transcript连接。src/agents/sessions/负责会话持久化、资源加载、Skills和prompt模板。packages/agent-core/是可复用的Agent核心——包含Agent循环、harness类型、消息类型、Compaction辅助函数、prompt模板、Skills以及会话存储契约。

一个值得关注的架构决策是边界隔离:核心通过OpenClaw模块和SDK barrel调用嵌入式运行时,不再依赖任何外部Agent框架包。插件只能使用openclaw/plugin-sdk/*的文档化入口,不允许导入src/**的内部实现。这个约束的工程含义和Java中“模块只暴露公开API,不暴露内部实现”的封装原则完全一致。

Java视角:五大模块的分层设计和你熟悉的Spring Boot分层架构高度对应。Gateway核心层≈DispatcherServlet(总调度),Channel交互层≈@Controller(入口和出口),LLM决策层≈@Service(业务逻辑),Tools执行层≈Repository/DAO(执行操作),Memory记忆层≈Persistence Layer(数据持久化)。你在Spring Boot中积累的分层架构经验,可以直接用于理解OpenClaw的模块划分。

二、文件优先:记忆系统的“无隐藏状态”原则

OpenClaw记忆系统的设计遵循五条核心原则,第一条就是:没有隐藏状态。模型只“记住”写到Agent工作区文件里的内容,每一个记忆表面都可以用文本编辑器检查和编辑。

分层记忆模型

记忆系统是一组纯Markdown文件加上一个SQLite索引,按不同的信任级别、写入规则和注入行为组织为多个层级:

Instructions层(AGENTS.md和工作区指令文件):只能由人类写入,会话开始时始终注入。Curated core层(MEMORY.md、USER.md):由Dreaming consolidation或直接用户请求写入,会话开始时在provenance合格且预算允许的情况下注入。Episodic层(memory/YYYY-MM-DD.md每日笔记、会话transcript):Agent在工作期间写入,或者由memory flush和transcript capture写入,从不自动注入,只能通过显式搜索工具或升级通道访问。Prospective层(Standing intents和cron jobs):只有在触发器触发时才注入。

这个分层设计的关键约束是:没有任何内容可以从Episodic层“自动晋升”到Curated层。必须通过一个显式的promotion gate,也就是下面要讲的Dreaming机制。

Dreaming:后台记忆巩固

OpenClaw实现了一个叫Dreaming的后台巩固机制。日常笔记中反复出现的、有用的材料,通过dreaming sweep被蒸馏进MEMORY.md——类似于人类睡眠中的记忆巩固过程。

这个设计解决了一个核心问题:不是所有写入日常笔记的信息都值得进入长期记忆,但哪些值得、哪些不值得,不能靠人工判断,需要一个自动化的沉淀管道。Dreaming在后台运行,不阻塞主回复路径。OpenClaw的记忆设计原则明确指出:“检索笔记文件的效果与更重的设计方案具有竞争力;真正让记忆系统退化的是不可靠的写入时策展”。

自动记忆刷新:在压缩之前“抢救”关键信息

OpenClaw设计了一个精妙的机制——自动记忆刷新(pre-compaction ping)。当会话接近自动压缩阈值时,OpenClaw触发一个静默的agentic turn,提醒模型在上下文被压缩之前将持久记忆写入磁盘。默认提示明确告知模型可以回复,但通常NO_REPLY才是正确的响应,因此用户永远不会看到这个turn。

Java视角:OpenClaw的文件优先设计和你熟悉的Git工作流有深刻的结构相似性。MEMORY.md相当于主分支上的稳定代码,memory/*.md相当于feature分支上的工作笔记,Dreaming sweep相当于code review——把工作分支中的有价值内容合并到主分支。文件作为事实来源的设计,和基础设施即代码(IaC)的思路一致——状态以声明式文件的形式持久化,运行时系统从文件读取状态,而不是在内存中维护不可见的可变状态。pre-compaction ping≈JVM在GC之前触发finalize——在信息被不可逆地压缩之前,给Agent一个“写下来”的机会。

三、Skill系统:从“会做”到“知道怎么做”的程序性记忆

如果记忆系统解决的是“记住什么”,Skill系统解决的是“知道怎么做”。

Skill的本质

OpenClaw的Skill是一个Markdown指令文件(SKILL.md),包含YAML frontmatter和Markdown正文,注入到系统提示中。Skill“教会Agent何时以及如何使用工具”——它不是代码,而是程序性记忆的载体:告诉Agent在什么场景下、以什么顺序、遵循什么约束来使用工具。

Skill的加载遵循六级优先级:工作区Skills(最高优先级)→项目Agent Skills→个人Agent Skills→管理/本地Skills→包自带的Skills→额外目录和插件Skills(最低优先级)。同一名称的Skill出现在多个位置时,最高优先级的来源生效。

Skill Workshop:完整的创建-验证-安装-调用闭环

2026年8月的2.0版本中,OpenClaw引入了Skill Workshop——一个将提案、检查、决策和应用历史集中到一个工作流中的系统。“你可以创建并验证一个Skill,找到或安装它,直接从对话中调用它,审查提议的变更,并让受支持的编辑在持久会话的下一轮就绪”。

Skill Workshop的一个关键设计是自动学习机制:OpenClaw可以将“大量的工作和持久的修正”转化为可复用的Skill,或者维护通过Workshop创建的Skill。但有一个明确的权限边界:由你或他人拥有的Skill,始终受其所有者的控制——自动学习不能覆盖人工创建的Skill。

ClawHub:Skill的分发生态

截至2026年3月9日,OpenClaw的官方技能市场ClawHub已收录18,140个社区构建的技能。这些技能覆盖了从文件管理、邮件撰写、日历调度到网页浏览、定时任务等多场景的工具链。

一个Skill本质上就是“一个文件夹+一个SKILL.md文件”,不需要复杂的打包和配置。这种低门槛设计让非技术背景的用户也能分享自己的工作流。社区中有一个很火的Skill叫“家庭日程助手”,作者是一位普通的家庭主妇,她不懂编程,却可以将自己的需求写成Skill。

Java视角:Skill≈可复用的Service方法或Spring Boot Starter。当一段业务流程被验证有效后,你把它抽取为一个Service方法或一个Starter,后续调用直接注入即可。OpenClaw的Skill系统做的事情完全一样——把Agent验证过的操作流程固化为可复用的标准件。Skill Workshop≈Spring Initializr + code review流程——创建、验证、审查、应用,每一步都有明确的审计轨迹。ClawHub≈Maven Central——一个社区驱动的构件仓库,只不过构件从JAR包变成了Markdown指令文件。

四、四条桌面控制路径:刻意保持隔离的工程决策

OpenClaw要成为一个真正的“执行者”,必须能操作电脑。但“操作电脑”有不同的风险等级和适用场景——用一个统一的工具集去覆盖所有场景,要么权限过大,要么能力不足。

OpenClaw的解法是:四条刻意保持独立的桌面控制路径。

路径一:PeekabooBridge宿主

OpenClaw.app可以作为PeekabooBridge宿主,托管本地PeekabooBridge通信端。peekaboo命令行界面是客户端,使用OpenClaw.app的macOS权限来执行截图、点按、菜单、对话框、Dock操作及窗口管理。

PeekabooBridge本质上是一个权限感知的UI自动化代理(PeekabooBridgeHostCoordinator,由steipete/PeekabooSwift包支持)。启用桥接后,OpenClaw会在~/Library/Application Support/OpenClaw/<socket-name>启动本地UNIX socket服务器。这个切换开关要求“Allow Computer Control”必须开启——因为两者都会授予本地UI自动化能力。

路径二:Agent驱动的computer.act

网关Agent的内置computer工具通过screen.snapshot捕获截图,并通过computer.act节点命令操控指针和键盘。macOS节点在进程内完成computer.act——使用嵌入式Peekaboo自动化服务和有限的CoreGraphics原语,不经过PeekabooBridge socket或peekaboo CLI。

这个路径和路径一的关键区别在于:路径一通过socket通信,路径二在进程内直接执行。路径二的延迟更低,但权限模型更简单——它依赖的是Gateway Agent自身的权限,而不是OpenClaw.app的TCC权限。

路径三:Codex Computer Use

内置的codex插件检查并可安装Codex的computer-use MCP插件(extensions/codex/src/app-server/computer-use.ts),然后让Codex在Codex模式的回合中拥有原生桌面控制工具调用。OpenClaw不通过PeekabooBridge代理这些操作。

这条路径的意义在于隔离第三方能力。Codex有自己的桌面控制实现,OpenClaw不需要“翻译”它——只需要在Codex模式激活时,把桌面控制的职责交给Codex。

路径四:直接cua-driver MCP

OpenClaw可以将TryCua的上游cua-driver mcp服务器注册为普通的MCP服务器,让Agent能够使用CUA驱动自身的schema和pid/window/element-index工作流,不经过Codex市场或PeekabooBridge socket。

这条路径的设计哲学是协议标准化。任何符合MCP协议的桌面控制驱动都可以接入,不需要为每个驱动写定制化的适配代码。

Java视角:四条桌面控制路径的隔离设计和你用不同通信协议服务于不同场景的思路一致。PeekabooBridge≈gRPC(结构化、高性能、通过socket通信),computer.act≈进程内方法调用(最低延迟,但耦合度高),Codex Computer Use≈第三方SDK集成(隔离外部能力),cua-driver MCP≈REST API(协议标准化,任何实现都可接入)。选择哪条路径取决于你的场景对延迟、隔离性和标准化的优先级排序。

五、安全考量:开放生态的“暗面”

OpenClaw的开源特性和Skill生态的开放性,在降低门槛的同时也带来了安全隐患。安全审计显示,ClawHub上存在大量恶意技能:10.9%的Skill存在硬编码API密钥、凭证等问题,其中32%的恶意样本包含此类风险;17.7%的Skill会获取不可信的第三方内容,可能成为间接提示词注入攻击的载体;2.9%的Skill会在运行时从外部端点动态获取并执行内容,攻击者可随时修改攻击逻辑。

OpenClaw的记忆系统在设计层面就考虑了这个风险。它的“无隐藏状态”原则和provenance机制——每一条记忆索引条目都携带来源类别(owner/agent/untrusted/system)——使得写入路径成为安全边界。内容级别的扫描无法可靠地捕获被投毒的fact,因此OpenClaw在写入时强制provenance,并通过结构化gating来控制晋升,而不是试图在事后检测坏记忆。

另一个值得关注的工程挑战是指数折扣效应。多步骤任务拆解存在“指数折扣效应”——若单步正确率为99%,20步拆解后的最终正确率仅剩81.8%,本地小模型表现更差。这意味着,随着任务复杂度的增加,OpenClaw出错的概率呈指数级增长。

Java视角:OpenClaw的安全模型和你在Java中评估第三方Maven依赖的关注点一致——CVE列表、维护活跃度、来源可信度。provenance机制≈Spring Security的Authentication对象——每个请求都携带“谁发起的”信息,权限决策基于来源而非内容。指数折扣效应≈分布式系统中的错误传播——一个99%可用的服务,在20个服务的调用链上,端到端可用性只有81.8%。你在设计微服务调用链时考虑的超时和熔断策略,在Agent任务拆解中同样适用。

小结:OpenClaw架构的三个关键判断

第一,文件优先是当前最优雅的长期记忆方案,但有明确的适用边界。OpenClaw的Markdown-as-source-of-truth设计解决了可读性、可审计性和用户控制问题。但它在多Agent协作、百万级记忆检索和事实自动演进方面存在结构性局限。PolarDB Agent Memory的“事实演进”机制补上了这些缺口,代价是失去了文件系统的透明性和本地可控性。对于Java开发者,如果你的场景是单机、单Agent、对可审计性有高要求,OpenClaw的文件优先方案是最低摩擦的选择;如果你的场景是多Agent、百万级记忆、需要自动事实更新,需要引入PolarDB等记忆增强层。

第二,四条桌面控制路径的隔离设计,体现了一个成熟的Agent系统对“能力覆盖 vs 安全控制”的工程权衡。用一个统一的桌面控制工具去覆盖所有场景,要么权限过大(安全风险),要么能力不足(覆盖不全)。OpenClaw通过路径隔离解决了这个问题——每条路径有自己的权限模型、适用场景和风险等级。这和Claude Code的40+工具权限隔离、CodeBuddy的Sub Agent权限分级是同一个设计思路:AI的自主性越强,运行时护甲就要越厚。

第三,Skill系统是“程序性记忆”的产品化实现,它的价值不在于“能做什么”,而在于“知道怎么做”。OpenClaw的Skill是一个Markdown文件,它教会Agent“在什么场景下、以什么顺序、遵循什么约束来使用工具”。这和你在Java中把业务逻辑封装为Service方法的思路完全一致——区别在于,Java的Service方法是开发者手写的,OpenClaw的Skill是Agent从经验中提炼的。Skill Workshop的自动学习机制则相当于“让Agent自己写Service方法”——这是一个更大胆的设计,也是Skill生态安全问题的根源。对于Java开发者,建议从人工创建的Skill开始使用,观察自动学习机制的行为后再决定是否启用。

下一篇进入3.3.1 v0 / Lovable / Bolt.new,拆解Vibe Coding三巨头的技术路线差异——v0的复合模型家族、Lovable的“反框架”路线、Bolt.new的WebContainer浏览器内运行时,以及三者在实际应用生成场景中的能力边界。


🍃 系列专栏导航

  • 🔖 专栏导航 大模型学习

其他专栏衔接

  • 🔖 《若依框架全攻略:从入门到项目实战》
  • 🔖 《深入浅出Mybatis》
  • 🔖 全面掌握MySQL工具
  • 🔖 《深入浅出Maven》
  • 🔖 《深入浅出Kafka》
  • 🔖 《全面掌握Swagger:从入门到实战》
  • 🔖 《Lombok:高效Java开发的秘密武器(完全解读)》
  • 🍃 博客概览:《程序员技术成长导航,专栏汇总》

建议按系列顺序阅读,从基础到进阶逐步掌握核心能力,避免遗漏关键知识点~

全景导航博文系列

  • 🔖《一口气学完fastJson》
  • 🔖《一文搞懂PageHelper》
  • 🔖《一文搞懂MyBatis》

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询