乐于分享
好东西不私藏

OpenClaw-架构原理与工程实践

OpenClaw-架构原理与工程实践

OpenClaw(龙虾)技术解析 · 原理、架构与实战

这篇文章讲什么:OpenClaw 是什么、它内部怎么工作、一条消息从你按下发送到 Agent 执行完任务经历了什么、你能用它干什么、它的设计有哪些值得借鉴的工程思路。读完你能向别人讲清楚 OpenClaw 的原理,并判断它适不适合你的场景。

命名说明(外部读者必读)

  • OpenClaw
    (🦞)= 本文主角,MIT 开源的个人 AI 助理 Gateway,社区俗称「龙虾」。
  • LobsterAI / 有道龙虾
     = 网易有道在 OpenClaw 之上做的桌面壳(Electron UI)+ Skill Store,是产品层,不替代 OpenClaw,通过 WebSocket RPC 调 Gateway。
  • 本文「龙虾」一律指 OpenClaw 本体。

阅读约定LC = Life Cycle(生命周期),LC0–LC5 为六个阶段。

时效性声明:AI 工具迭代极快,本文反映 2026-07 写作时点 的产品状态,仅供参考。文末「示意」标记的数字(Stars 数、73%、CVE 计数等)为举例口径,非官方常量;机制描述以文末 L1/L2 官方来源为准,使用前请务必核对官方最新文档。

TL;DR · 30 秒速览

  • 是什么
    :跑在你自己机器上的个人 AI 助理 Gateway(Node.js / MIT),把 IM 渠道的消息接给内嵌 Agent 运行时执行工具调用,数据不出本地。
  • 核心原理
    :Gateway 常驻进程当唯一中控 → 收 IM 消息 → 加载工作区 + Skills → 跑 ReAct 循环(LLM 推理 ↔ 工具调用)→ 结果回 IM。全程会话以 JSONL 落盘。
  • 不是什么
    :不是模型、不是 SaaS、不是企业级平台。
  • 能干啥
    :IM 个人助理、异步任务监控、多 Agent 协作、跨渠道统一入口、浏览器自动化、个人知识库 等(见 LC3)。
  • 能上生产吗
    :原样不可;但 8 个设计思路可被企业借鉴(见「架构设计思路」)。

LC0 · 认知 —— 是什么、优劣势、生态位

0.1 一句话定义

OpenClaw(🦞)是一个 自托管的个人 AI 助手 Gateway 网关,MIT 许可,社区驱动。它在你自己的机器(或 VPS)上运行一个常驻进程,把你常用的 IM 聊天应用接上 AI Agent,让你在任何地方发消息就能遥控 AI 干活。

维度
OpenClaw
本质
自托管 Gateway 进程

(不是模型、不是 chatbot、不是 SaaS)
安装
npm install -g openclaw@latest
运行时
Node 24(推荐)/ Node 22 LTS
协议
WebSocket + JSON 帧
许可证
MIT
代码仓库
github.com/openclaw/openclaw
官方文档
docs.openclaw.ai/zh-CN
GitHub Stars
约 30 万 ⭐(社区口径·示意)

一句话口播:「OpenClaw 是跑在你机器上的 Gateway,把 IM 消息交给 AI Agent 执行工具调用,数据不出你的硬盘。」

0.2 优劣势总结

维度
优势 ✅
劣势 ❌
数据主权
自托管,数据不出本地硬盘
用户自负安全(API Key 泄露风险)
渠道
多 IM 原生支持 + 插件扩展
配置繁琐,每个渠道需独立设置
Skills
AgentSkills 开放规范 + ClawHub 生态
第三方 Skills 不受信;Token 开销(每个 ~24 token)
安装
一条 npm 命令即可
约 73% 新用户首次安装遇阻塞报错

(社区调研·示意)
卸载
npm uninstall 删包
5 处残留

(配置/守护进程/SHELL PATH/旧版遗留/Homebrew)
环境
Node 22+ 强制;Windows 必须 WSL2;需 C++ 编译工具链
上生产
架构思路可借鉴
原样不可

——缺 Registry、Eval Gate、审计、SLA、多租户
成本
用户自带 API Key,无服务费
无预算控制,可爆 token;超长循环无硬上限
安全
设备配对 + Challenge 签名 + 沙箱
Skill 自建议非自进化(Workshop 需人工审批)
生态
MIT 开源 + LobsterAI 国内壳
Windows 原生不支持;国内网络访问 npm 慢

0.3 生态位对照

产品
主场景
运行位置
Cursor / Claude Code
仓库内编码
IDE / CLI
OpenClaw / Hermes
生活+办公自动化、IM 遥控
本机 / VPS / 容器
企业 Buy/客服 Agent
交易/合规域
集群 + 审计

关键区别:Cursor/Claude Code 解决「改代码」;OpenClaw 解决「在 IM 里派活、AI 在我离开时异步做」;企业 Agent 解决「可审计、可回滚、多租户的业务域」。


LC1 · 安装 —— 上手、配置、常见坑

1.1 最小可运行安装

# 1. 安装(需 Node 24 或 22 LTS 22.19+)npm install -g openclaw@latest# 2. 新手引导 + 安装守护进程openclaw onboard --install-daemon# 3. 启动 Web 控制台(http://127.0.0.1:18789)openclaw dashboard# 4. 添加 Telegram 渠道(最快上手)openclaw channels add telegram# 按提示输入 Bot Token

1.2 配置最小生产安全

// ~/.openclaw/openclaw.json{  channels: {    whatsapp: { allowFrom: ["+8613800138000"] },    telegram: { allowFrom: ["@myusername"] },  },  messages: {    groupChat: { mentionPatterns: ["@openclaw""@龙虾"] },  },  gateway: {    auth: { mode: "token" },  // 不要用 "none"  },  security: {    installPolicy: "~/.openclaw/security/audit-skill.sh",  },  skills: {    load: { watch: true },  },}

1.3 为什么难安装(6 大根因)

社区调研口径(示意):约 73% 的 OpenClaw 新用户首次安装遇到阻塞性报错,其中 Node.js 版本不匹配一项占约 60%。

#
根因
说明
典型后果
1 三次改名
Moltbot → Clawdbot → OpenClaw(2025.11 至今)
网上教程命令/路径过期
2 版本迭代极快
几乎每周发版;配置键名频繁重命名
升级后旧配置静默失效
3 环境要求高
Node 22+ 强制;Windows 必须 WSL2;需 C++ 编译工具链
Node < 22 语法错误;缺 build-essential → node-gyp rebuild failed
4 npm 生态摩擦
全局安装权限(EACCES)、国内网络慢(ETIMEDOUT)、缓存损坏
三条老问题叠加
5 Gateway 前置条件复杂
必须设 gateway.mode=local;绑非本机 IP 强制认证;初始化 ~40s
“Gateway start blocked” / 提前访问以为挂了
6 CVE 驱动强制升级
示意:2026.2-3 月 8 个 CVE(最严重 CVSS 8.8:跨站 WebSocket 劫持)
不升级有风险,升级可能坏配置

1.4 部署模式

模式
命令
适用
本地开发 npm install -g openclaw@latest

 + openclaw onboard --install-daemon
个人桌面
VPS/服务器
同上 + Tailscale / SSH 隧道远程访问
24/7 在线
Docker docker-compose.yml

 提供
容器化部署
WSL
社区探索
Windows 用户

OpenClaw 默认绑定 127.0.0.1:18789,远程访问需 TLS + 认证。gateway.auth.mode: "none" 只在受信任入口使用,绝不在公开网络启用


LC2 · 架构与原理 —— 它内部怎么工作

这是全文的核心。按「一条消息的完整旅程」组织:先看端到端工作流(宏观),再拆 Gateway 内部组件(中观),再钻进 Agent 循环、Skills 加载、MCP、通信信任(微观)。

2.1 端到端工作流:一条消息如何变成一次 Agent 执行

这是理解 OpenClaw 最重要的一张图。假设你在 WhatsApp 发了一句「帮我查今天 HN 头条并总结」:

逐步解释

  1. 消息接入
    :你在 WhatsApp 发的消息,由对应的渠道适配器(如 Baileys 库)接收。每个 IM 平台一个适配器,把各家协议差异屏蔽掉,输出统一的标准化消息。
  2. 路由
    :消息路由器根据目标 Agent ID + 发送者身份,决定这条消息归哪个 Agent 处理。
  3. 会话定位
    :会话管理器找到(或新建)SessionId。直接聊天合并到 main 会话;群聊各隔离。会话历史以 JSONL 存在 ~/.openclaw/agents/<agentId>/sessions/<SessionId>.jsonl
  4. 历史加载
    :Agent Runtime 读出该会话的历史帧,作为上下文。
  5. 工作区加载
    :加载该 Agent 的工作区目录,把 AGENTS.md/SOUL.md/USER.md 等引导文件读出来——这些就是 Agent 的”人格配置”。
  6. Skills 过滤
    :Skills 加载器扫描 6 级目录,按门控字段(os/requires.bins/requires.env/requires.config)过滤出当前可用的 Skills,生成快照。
  7. 提示词组装
    :把引导文件 + Skills 描述 + 工具 schema 拼成系统提示词。
  8. 模型调用
    :Provider 适配器按配置(如 anthropic/claude-sonnet-4)调用 LLM。
  9. LLM 返回
    :返回工具调用请求,或直接返回最终文本回复。
  10. 工具判定
    :如果 LLM 请求调用工具,进工具执行器;否则跳到投递。
  11. 工具执行
    :执行 read/exec/edit/MCP 工具/浏览器等,结果回 Agent Runtime。
  12. 循环
    :工具结果作为新的上下文,再次调 LLM,直到 LLM 不再请求工具——这就是 ReAct 循环(见 §2.3)。
  13. 投递
    :最终回复经渠道投递器发回 WhatsApp。

一句话总结:OpenClaw = IM 消息接入 → 会话定位 → Skills/工具装载 → ReAct 循环(LLM ↔ 工具)→ 结果回 IM。Gateway 是全程唯一中控。

2.2 Gateway 内部架构:单中控的组件分解

Gateway 是一个常驻 Node.js 进程(默认监听 127.0.0.1:18789),它是每台主机上唯一打开 IM 会话、管理 Agent 会话、路由消息的地方——即”唯一可信源”。

组件
职责
关键点
WS Hub
所有 WebSocket 连接的入口(客户端、节点、渠道)
渠道适配器也走 WS 接入,统一收口
消息路由器
决定消息归哪个 Agent、哪个会话
按 Agent ID + 发送者分流
会话管理器
会话的创建、读取、追加(JSONL)
每会话一个 .jsonl 文件,每行一帧,追加写、可重放
Skills 加载器
扫描 + 门控 + 快照 Skills
6 级优先级,会话级快照避免运行中漂移
Agent Runtime
嵌入式 Agent 循环(核心)
不委托

外部 harness,自己跑 ReAct
Provider 适配器
调用各家 LLM API
35+ Provider,支持自托管(vLLM/Ollama)
工具执行器
执行工具调用
沙箱隔离不受信代码;密钥不注入沙箱
Cron/Heartbeat
定时任务、心跳保活
Cron 触发 Agent;Heartbeat 维持 IM 会话
MCP 事件处理器
管理 MCP Server 通信
MCP Server 独立进程,JSON-RPC over stdio/SSE

为什么是单中控:IM 会话(如 WhatsApp 的 Baileys 会话)有状态——同一账号不能在两个进程同时登录,否则互相踢下线。所以 Gateway 必须是单点持有 IM 会话。所有客户端(Web/CLI/App)和远端节点都通过 WS 连到这个唯一 Gateway,而不是各自直连 IM。

2.3 Agent 循环原理:ReAct 在 OpenClaw 里怎么转

OpenClaw 不把 Agent 调用委托给外部 harness(如 Claude Code CLI),而是内嵌自己的 Agent 循环:模型发现、工具接线、提示词组装、会话管理、渠道投递全部在一个集成的运行时完成。

这是 ReAct(Reason + Act)循环的实现

  • Reason(推理)
    :LLM 基于系统提示词 + 历史 + 用户消息,决定下一步是调工具还是直接回复。
  • Act(行动)
    :如果要调工具,工具执行器执行,结果追加到会话 JSONL 作为新的 tool 帧。
  • 循环
    :工具结果作为新上下文,再次调 LLM,直到 LLM 不再请求工具调用——此时它返回最终文本回复。
  • 终止条件
    :LLM 主动放弃工具调用,或达到内置迭代上限。

为什么用 JSONL 存会话:追加写性能好(不重写整个文件)、可重放(调试时逐帧回放 Agent 决策)、易截断(超长上下文时裁剪早期帧)。每帧是一个 JSON 对象,包含 role(user/assistant/tool)、contenttool_calls 等。

会话隔离规则:直接聊天合并到共享的 main 会话;群聊各自隔离(一个群一个 SessionId)。这让 Agent 在不同群里有独立记忆。

2.4 Skills 系统:能力如何被声明、加载、门控

Skill = SKILL.md 文件(YAML frontmatter + Markdown 正文),教 Agent 何时如何用工具。遵循 AgentSkills 开放规范。OpenClaw 的 Skills 不是硬编码在代码里,而是用文档声明——这是它最值得借鉴的设计之一。

加载流程

6 级加载优先级(高 → 低):工作区 Skills → 项目 Agent Skills → 个人 Agent Skills → 托管 Skills → 内置 Skills → 额外目录 + 插件 Skills。同名时高优先级胜出——这让用户能用工作区 Skills 覆盖默认行为。

门控字段metadata.openclaw 下)——决定一个 Skill 在当前环境是否可见:

字段
行为
例子
always true

 时跳过所有门控
强制加载
os
平台过滤
[darwin, linux]
requires.bins
每个二进制必须存在
[uv, ffmpeg]
requires.anyBins
至少一个存在
[python3, python]
requires.env
每个环境变量必须存在
[GEMINI_API_KEY]
requires.config
每个 openclaw.json 路径为真值
[browser.enabled]

门控的意义:一个需要 ffmpeg 的视频处理 Skill,在没装 ffmpeg 的机器上自动隐藏,避免 Agent 误调用导致失败。这是”声明式能力管理”——Skill 自描述它的依赖,运行时自动过滤。

快照机制:会话开始时对符合条件的 Skills 做快照,会话期间用这份快照。文件变更或新远端节点连接时刷新。为什么快照:避免长会话中途 Skills 集合变化导致 Agent 行为漂移。

Skill Workshop:Agent 不能直接写 SKILL.md——它起草提案,用户审查批准后才写入(openclaw skills workshop list/inspect/apply)。比 Hermes 的”任务后自动写”多一道人工审批,更接近企业的 PR 流程。

最小 Skill 示例

---name: image-labdescription: Generate or edit images via a provider-backed image workflowmetadata:  {    "openclaw":      {        "requires": { "bins": ["uv"], "env": ["GEMINI_API_KEY"], "config": ["browser.enabled"] },        "primaryEnv": "GEMINI_API_KEY",      },  }---When the user asks to generate an imageuse the `image_generate` tool...

ClawHub:clawhub.ai——公共 Skills 注册表,openclaw skills install @owner/<slug> 安装。官方明确警告:“将第三方 Skills 视为不受信任的代码”——所以有 security.installPolicy 在安装前跑本地策略检查。

Token 影响:每个 Skill ~24 token 基础开销(描述进系统提示词)。Skills 太多会吃掉上下文预算,所以门控不只是功能过滤,也是 token 成本控制。

2.5 MCP 集成:外部工具如何接入

MCP(Model Context Protocol)让工具实现与 Agent 解耦——工具可以是任何语言写的独立进程,只要实现 MCP 协议。

关键设计

  • MCP Server 是独立进程
    ,不是 Gateway 的插件。Gateway 通过标准 JSON-RPC(stdio 或 SSE)与之通信。
  • 解耦收益
    :工具可用 Python/Go/任何语言写;工具崩溃不影响 Gateway;工具可独立版本化。
  • 与 Skills 的分工
    :Skills 是流程知识(Markdown 指令,告诉 Agent 何时用某个工具);MCP 是工具实现(实际执行代码)。一个 Skill 可以引导 Agent 调用某个 MCP 工具。
  • LobsterAI 增强
    :在 LobsterAI 中,Skill Store 的 Skills 可通过 MCP 一键对接外部工具——把”MCP 配置”产品化成图形操作。

口播:「Skills 告诉 Agent『什么时候、怎么用』;MCP 提供『工具本身』。前者是知识,后者是能力。」

2.6 通信与信任:WS 协议 + 设备配对

所有客户端、节点、渠道都通过 WebSocket 连 Gateway。连接不是匿名的——OpenClaw 有一套设备配对 + Challenge 签名的信任机制。

WS 协议摘要

阶段
行为
连接
第一帧 必须 是 connect(含设备身份 + challenge 签名)
请求
{type:"req", id, method, params}

 → {type:"res", id, ok, payload|error}
事件
{type:"event", event, payload, seq?, stateVersion?}
幂等
副作用方法(sendagent)必须带幂等键;服务器保留短周期去重缓存

信任分级

  • 本地 loopback
    (同主机):自动审批新设备,UX 顺畅。
  • 远程连接
    :始终需显式人工审批——防止陌生设备劫持。
  • Challenge 签名
    :所有连接必须对 connect.challenge nonce 签名;v3 绑定 platform + deviceFamily,防止令牌跨设备复用。

远程访问首选:Tailscale 或 SSH 隧道 ssh -N -L 18789:127.0.0.1:18789 user@gateway-host,而非直接暴露端口。

2.7 渠道(Channels)清单

按分发方式分组:

分发
渠道
内置
iMessage · Telegram · WebChat
官方插件
Discord · WhatsApp · Signal · Slack · 飞书 · QQ Bot · Zalo · Google Chat · MS Teams · LINE · Matrix · Mattermost · IRC · Nostr · Twitch · SMS · Nextcloud Talk · Synology Chat · Tlon · Voice Call
外部插件
微信 · 腾讯元宝
LobsterAI 增强
企微 · 钉钉

渠道数量不是重点——重点是 OpenClaw 通过渠道适配器模式统一了各家 IM 协议差异,让 Agent 不用关心消息来自 WhatsApp 还是 Telegram。

2.8 Agent Runtime 与工作区

每个 Agent 有独立工作区(cwd)+ 引导文件。引导文件注入系统提示词,构成 Agent 的”人格”。

文件
用途
类比
AGENTS.md
操作指令 + “记忆”
规则手册
SOUL.md
人设、边界、语气
性格
TOOLS.md
工具使用约定
工具说明书
IDENTITY.md
Agent 名称/氛围/emoji
身份证
USER.md
用户资料 + 称呼
用户档案
BOOTSTRAP.md 一次性

首次运行仪式(完成后删除)
新手引导
MEMORY.md
长期记忆(可选)
长期记忆

工作区布局

<workspace>/├── AGENTS.md          # 操作规则├── SOUL.md            # 人设├── TOOLS.md           # 工具约定├── IDENTITY.md        # 身份├── USER.md            # 用户资料├── MEMORY.md          # 长期记忆(可选)├── skills/            # 工作区 Skills(优先级最高)└── .agents/skills/    # 项目级 Agent Skills

35+ Provider:Anthropic、OpenAI、Google 等 + 自托管(vLLM、SGLang、Ollama、llama.cpp、LM Studio、任何 OpenAI/Anthropic 兼容端点)。配置格式:provider/model(如 openrouter/moonshotai/kimi-k2)。

2.9 工具生态

内置核心read / exec / edit / write / apply_patch

搜索 Provider:Brave、DuckDuckGo、Exa、Firecrawl、Gemini、Grok、Kimi、MiniMax Search、Ollama Web Search、Perplexity、SearXNG、Tavily。

其他:浏览器自动化、沙箱隔离、Cron + Heartbeat 调度、图片/音频/视频 I/O、语音转写 + TTS、Canvas(Agent 可编辑 HTML/CSS/JS)、A2UI 管道。

2.10 多 Agent 路由

  • 每个 Agent 有独立工作区、引导文件、会话存储
  • 按 Agent ID / 工作区 / 发送者隔离会话
  • 群聊各隔离;直接聊天合并到共享 main
{  agents: {    defaults: { skills: ["github""weather"] },    list: [      { id: "writer" },                    // 继承 defaults      { id: "docs", skills: ["docs-search"] }, // 替换 defaults      { id: "locked-down", skills: [] },   // 无 Skills(最小权限)    ],  },}

locked-down Agent 是个值得注意的设计——显式给空 Skills 数组,实现最小权限 Agent。企业对标:只读运维 Bot。

2.11 安全模型

机制
说明
设备配对审批
新设备需人工批准;已配对凭令牌重连
Challenge 签名
所有连接必须对 nonce 签名;v3 绑定 platform + deviceFamily
Channel allowFrom
白名单控制允许的设备/号码
群聊提及规则
仅在 @提及 时响应
沙箱隔离
Docker/OS 级沙箱执行不受信代码
第三方 Skills 警告
官方:“将第三方 Skills 视为不受信任的代码”
安装策略命令 security.installPolicy

 在 Skill 安装前运行本地策略检查
密钥作用域
API key 注入主机进程,不注入沙箱和 prompt 日志

核心设计哲学:「本地信任、远程审批、沙箱隔离」——本地 loopback 自动放行保 UX,远程显式审批保安全,不受信代码进沙箱保底线。


LC3 · 使用 —— 我能用它干啥 + 开发实战

3.1 我能用它干啥:8 个典型场景

这一节回答最实际的问题:装完 OpenClaw,我到底能用它做什么?

场景 1 · IM 个人助理

  • 触发
    :在手机 WhatsApp/Telegram 发「帮我总结今天 HN 头条」「查一下明天北京的天气」「把这封邮件草稿改得更客气点」
  • 工作流
    :IM 消息 → Gateway → Agent 用 web 工具抓取 + LLM 总结 → 结果回 IM
  • 价值
    :把 AI 助手嵌进你已有的聊天工具,不用切换 App。出门在外用手机就能派活。

场景 2 · 异步任务监控

  • 触发
    :Cron 定时(如每 5 分钟)
  • 工作流
    :Cron 调度器触发 Agent → exec 检查服务健康 → 异常时 LLM 生成告警摘要 → IM 推送
  • 价值
    :比传统监控多了”AI 总结”——不是甩一堆日志,而是告诉你”数据库连接池打满了,最近 5 分钟 12 次超时,根因可能是 X”。

场景 3 · 多 Agent 协作

  • 触发
    :复杂任务需要不同权限/能力的 Agent
  • 工作流
    writer Agent 写稿 → docs Agent 查文档库验证事实 → locked-down Agent(空 Skills)只读执行不可信操作
  • 价值
    :按风险分级隔离。写操作给全权 Agent,验证给只读 Agent,外部输入给沙箱 Agent。

场景 4 · 跨渠道统一入口

  • 触发
    :同一 Agent 同时接 Telegram(出门)+ WhatsApp(国际)+ Discord(社区)
  • 工作流
    :每个渠道一个适配器,消息归一化后路由到同一 Agent,但会话按渠道隔离
  • 价值
    :一个 Agent 多入口,你在哪个 App 里都能找它,但各渠道记忆独立不串味。

场景 5 · 浏览器自动化

  • 触发
    :「帮我登录 XX 站点抓取订单数据」「监控这个页面价格降到 500 就通知我」
  • 工作流
    :Agent 调 browser 工具(Browserbase/本地 Chromium)→ 操作页面 → read/write 存结果
  • 价值
    :用自然语言驱动浏览器,不用写 Selenium 脚本。适合一次性抓取任务。

场景 6 · 代码/文档生成

  • 触发
    :「给这个项目生成 README」「把这份 API 文档翻译成英文」
  • 工作流
    :Agent 在工作区内 read 现有代码 → edit/write 生成文档
  • 价值
    :Agent 直接操作文件系统,产出落盘成文件,不是只在聊天里给你文本。

场景 7 · 个人知识库

  • 触发
    :跨会话维护长期记忆 + 笔记
  • 工作流
    memory 工具跨会话存取 + read/edit 维护 Markdown 笔记库
  • 价值
    :Agent 记得你上周说过什么。比 ChatGPT 的”记忆”更可控——记忆文件你能直接编辑。

场景 8 · 定时内容聚合

  • 触发
    :Cron 每天早上 7 点
  • 工作流
    :Agent 抓多个 RSS/新闻源 → LLM 总结成晨报 → IM 推送
  • 价值
    :个性化信息流,AI 帮你从 20 个源里提炼 5 条重点。

共性:OpenClaw 的价值不在”它是个更强的 ChatGPT”,而在”它把 AI Agent 嵌进了你已有的 IM 工作流 + 文件系统 + 定时调度”。它让 AI 从”聊天框里”走到”你的日常工具链里”。

3.2 写一个自定义 Skill

mkdir -p ~/my-agent/skills/hacker-newscat > ~/my-agent/skills/hacker-news/SKILL.md << 'EOF'---name: hacker-newsdescription: Fetch top HN stories and summarizemetadata:  {    "openclaw":      {        "emoji""📰",        "requires": { "bins": ["curl"] },      },  }---When the user asks for Hacker News top stories:1. Fetch `https://hacker-news.firebaseio.com/v0/topstories.json`2. Get first 10 story IDs3. Fetch each item from `https://hacker-news.firebaseio.com/v0/item/<id>.json`4. Summarize titles + URLs in a table, sorted by scoreEOFopenclaw skills install ./my-agent/skills/hacker-news --as hacker-news

3.3 写一个插件(最小示例)

// openclaw.plugin.json{  "id": "my-custom-plugin",  "name": "My Custom Plugin",  "version": "1.0.0",  "channels": [],  "skills": ["skills"],  "tools": []}
openclaw plugins install ./path/to/my-pluginopenclaw plugins search

3.4 SKILL.md 双格式对照(面试指认点)

面试官常追问「画一个 Skill 长什么样」。三栈都收敛到 SKILL.md + frontmatter + 正文指令 同构,差异在 frontmatter 字段与加载门控。

Hermes 风格——条件激活靠 metadata.hermes.*

---name: ddg-searchdescription: DuckDuckGo search fallback when web toolset unavailablemetadata:  hermes:    fallback_for_toolsets: [web]   # 仅当 web toolset 不可用时显示    requires_toolsets: [terminal]  # 需要 terminal toolset 才能跑---

企业 Spring AI 风格——条件激活靠租户 flag + OPA:

---name: refund-advisordescription: Refund policy advisor for CS agentstenant_whitelist: [tmall, jd]   # 走 Registry 租户门禁release_id: 2026-07-05-r2       # 绑四维版本audit:  hitl: required---
维度
Hermes
OpenClaw
企业
门控位置
metadata.hermes.* metadata.openclaw.*
Registry + OPA
条件字段
requires_toolsets requires.bins/env/config tenant_whitelist
自治
自动写 SKILL.md
Workshop 提案

 + 人审批
禁止

,走 Git PR

3.5 LobsterAI / 有道龙虾(中国生态)

OpenClaw(开源 Gateway,MIT)    ↓ 社区 fork + 产品化LobsterAI(有道龙虾)    ↓ 通过 WebSocket RPC 调用OpenClaw Gateway(独立进程)
  • LobsterAI
     = 网易有道的桌面壳(Electron UI)+ Skill Store + 中文优化
  • LobsterAI 不替代 OpenClaw——作为 UI 层通过 WS RPC 调 Gateway
  • 解耦设计:UI 升级不碰 Gateway,Gateway 升级不影响 UI
能力
OpenClaw 原生
LobsterAI 增强
桌面 UI
Web Control UI
Electron + macOS 菜单栏/Windows Hub
Skill 发现
ClawHub CLI
图形化 Skill Store

 + MCP 一键接入
安全确认
工具调用弹窗确认 + HTTP 阻断 + 超时
中文 IM
QQ Bot(插件)
企微/钉钉/飞书/QQ 等多渠道

LC4 · 卸载 —— 为什么难 + 一键全清

4.1 为什么难卸载(5 个残留点)

npm uninstall -g openclaw只删除 npm 包本身,以下全部残留:

#
残留位置
内容
清理命令
1
~/.openclaw/
所有配置、API Key、会话记录
rm -rf ~/.openclaw
2
守护进程
launchd

(macOS)/ systemd(Linux)仍在运行
openclaw daemon stop

;卸载 plist
3
旧版遗留目录
~/.clawdbot/~/.moltbot/~/.moldbot/

(三次改名)
rm -rf ~/.clawdbot ~/.moltbot ~/.moldbot
4
Shell 配置注入
~/.bashrc

 / ~/.zshrc 中 export PATH=... 行
手动删行后 source ~/.zshrc
5
Homebrew 软链接
/opt/homebrew/bin/openclaw

 / /usr/local/bin/openclaw
rm -f

 删除

4.2 一键全清

# macOS / Linux(npm 方式安装)openclaw daemon stopnpm uninstall -g openclawrm -rf ~/.openclaw ~/.clawdbot ~/.moltbot ~/.moldbotrm -f /opt/homebrew/bin/openclaw /usr/local/bin/openclaw# 检查 ~/.bashrc / ~/.zshrc 中是否有 openclaw 相关 PATH 行,手动删除

卸载难的根因:OpenClaw 不是单纯 CLI 工具,而是 Gateway 守护进程 + 多渠道插件 + npm 全局包 的三层架构,每层有独立残留点。


架构设计思路(可借鉴)

这一节是给开发者的”取经指南”——OpenClaw 的 8 个设计思路,哪些值得你在自己的系统里借鉴,怎么借鉴。

思路 1 · 单中控 Gateway 模式

OpenClaw 怎么做:每台主机一个 Gateway 进程,是 IM 会话、消息路由、会话状态的唯一可信源。所有客户端/节点通过 WS 连它,而非各自直连 IM。

为何这样设计:IM 会话有状态(如 WhatsApp Baileys 会话不能双进程共存),必须单点持有。

企业借鉴:多副本 Agent 服务别让每个副本直连 IM,用一致性哈希分片 + 共享会话存储,把”单中控”从单机扩展到集群。

思路 2 · Skills 文档化(声明式能力)

OpenClaw 怎么做:能力用 SKILL.md(Markdown + frontmatter)声明,而非硬编码进代码。Skill 自描述依赖与门控,运行时自动过滤。

为何这样设计:能力可热加载、可社区分发(ClawHub)、可版本化,不用改代码重新部署。

企业借鉴:团队 Agent 的能力库走 Git + PR 管理文档化 Skills,而非把 prompt 硬编码在代码里。新增能力 = 加一个 Markdown 文件。

思路 3 · MCP 端口统一(工具解耦)

OpenClaw 怎么做:工具调用走 MCP 标准协议,MCP Server 是独立进程,与 Gateway 解耦。

为何这样设计:工具可用任何语言写、可独立崩溃、可独立版本化。Agent 不关心工具实现,只关心协议契约。

企业借鉴:企业工具网关统一 MCP,而非每个 Agent 各自集成每家 API。新增工具 = 部署一个 MCP Server,所有 Agent 自动可用。

思路 4 · 设备配对信任(分级审批)

OpenClaw 怎么做:本地 loopback 自动审批新设备保 UX,远程连接强制人工审批保安全,配对后签发令牌。

为何这样设计:平衡”自己用方便”和”防陌生人劫持”。

企业借鉴:内部工具 Bot 区分内网/外网请求——内网自动放行,外网走审批队列。比一刀切”全部审批”或”全部放行”更合理。

思路 5 · 工作区引导文件(人格配置文件化)

OpenClaw 怎么做:Agent 的人设、规则、用户档案用 AGENTS.md/SOUL.md/USER.md 等文件管理,注入系统提示词。

为何这样设计:人格配置可版本化、可团队共享、可手工编辑。比散在代码里的 prompt 字符串易维护。

企业借鉴:团队 Agent 规范用文件约定(规则、人设、工具用法),而非把 prompt 散在各处。新人接手 = 读这几个文件。

思路 6 · JSONL 会话存储(可重放)

OpenClaw 怎么做:每个会话一个 .jsonl 文件,每帧一行,追加写。

为何这样设计:追加写性能好、可逐帧重放调试、易截断裁剪上下文。

企业借鉴:调试 Agent 行为时回放 JSONL,而非加满日志。出问题 = 把会话 JSONL 喂给另一个 Agent 让它分析。

思路 7 · 快照式 Skills 加载(防漂移)

OpenClaw 怎么做:会话开始时对 Skills 做快照,会话期间用快照,文件变更才刷新。

为何这样设计:长会话中途 Skills 集合变化会导致 Agent 行为漂移(前半段用 A Skill,后半段 A 消失了)。

企业借鉴:长会话 Agent 锁定 Skills/Prompt 版本,运行中不动态加载新能力。版本变更走新会话。

思路 8 · 沙箱隔离 + 密钥作用域

OpenClaw 怎么做:不受信代码进沙箱执行;API key 注入主机进程,不注入沙箱和 prompt 日志

为何这样设计:第三方 Skills 视为不受信代码——即使它想偷 key,沙箱里也没有 key 可偷。

企业借鉴:Agent 执行外部代码(用户输入、第三方插件)必走沙箱 + 最小权限。密钥与执行环境隔离,是防 prompt 注入泄露 key 的底线。

总结:OpenClaw 的设计哲学是「单中控 + 声明式能力 + 协议解耦 + 分级信任 + 文件化配置 + 可重放存储 + 防漂移快照 + 沙箱隔离」。这套思路不只适用于个人 Agent OS——企业 Agent 平台可以照搬前 6 条,第 7-8 条尤其值得在安全敏感场景落地。


LC5 · 面试速查(附录)

以下为面试备考核心,技术博客读者可跳过本节。

5.1 与 Hermes Agent 对比

维度
OpenClaw
Hermes Agent
源码
openclaw/openclaw
NousResearch/hermes-agent
语言
TypeScript / Node.js
Python
UI 形态
Web Control UI + macOS/Windows 原生
终端 TUI (hermes)
Skills 门控 metadata.openclaw.requires

 (bins/env/config)
metadata.hermes.requires_toolsets

 / fallback_for_toolsets
Skills 自治 提案队列

(Workshop,人工审批)
自动写

 SKILL.md(自进化)
MCP
Gateway 事件模型
~/.hermes/mcp_servers
中国生态
LobsterAI 有道龙虾
无国内定制

5.2 面试高频 Q&A

Q: OpenClaw Gateway 是什么? A: 本地常驻进程(Node.js),通过 WebSocket 接受客户端/节点/渠道的消息,管理 Agent 会话、Skills 加载、模型调用和渠道投递。不是模型本身,是控制平面

Q: OpenClaw 能上生产吗? A: 原样不可。缺多租户 Registry、Eval Gate、合规审计、SLA。但 8 个设计思路可借鉴(见「架构设计思路」节)。

Q: Skills 和 MCP 什么关系? A: Skills = 流程知识(SKILL.md Markdown 指令);MCP = 标准化工具 RPC。Skills 告诉 Agent 何时用某个工具,MCP 提供工具本身。

Q: OpenClaw vs Cursor Agent? A: 改代码 → Cursor;跨 App 自动化/IM 派活 → OpenClaw;支付写操作 → 都不用,上 Spring AI + HITL。

Q: LobsterAI 和 OpenClaw 关系? A: LobsterAI = 有道龙虾桌面壳 + Skill Store,通过 WebSocket RPC 调 OpenClaw Gateway。UI/Gateway 独立升级。

Q: 为什么 OpenClaw 安装和卸载这么困难? A: 三点——(1) 不是单纯 CLI 工具,是 Gateway 守护进程 + 多渠道插件 + npm 包的三层架构;(2) 环境强依赖:Node 22+/WSL2/C++ 工具链;(3) 卸载不干净:npm uninstall 只删包,残留 5 处。

Q: OpenClaw 的 Skill Workshop 和 Hermes 的自进化有什么区别? A: OpenClaw 的 Workshop 是**“自建议 + 人审批”——Agent 起草提案,用户审查通过后才写入。Hermes 是“自进化”**——任务后自动写。企业侧要求 PR + Eval Gate,OpenClaw 的 Workshop 更接近企业审批流程。

Q: OpenClaw 安全模型的核心是什么? A: 三层——(1) 设备层:配对审批 + Challenge 签名 + 令牌管理;(2) 渠道层:allowFrom 白名单 + 群聊提及规则;(3) 执行层:沙箱隔离 + 密钥不注入沙箱 + 第三方 Skills 视为不受信代码。核心哲学是**“本地信任、远程审批、沙箱隔离”**。

5.3 30 秒开场金句

「OpenClaw 是 MIT 开源的个人 Agent Gateway,跑在本机,把 IM 渠道的消息经 WebSocket 交给内嵌 Agent 执行工具调用,数据不出硬盘。核心是 ReAct 循环——LLM 推理 ↔ 工具调用,会话以 JSONL 落盘可重放。企业可借鉴它的单中控、Skills 文档化、MCP 端口统一、沙箱隔离等 8 个设计思路,但原样上不了生产——缺 Registry、Eval Gate、审计。」


延伸阅读

以下为同仓库(Gitee)内的关联资料,已转为绝对链接,可直接访问。

关联
路径
企业对标(面试答辩)
12 OpenClaw/Hermes 对标
速记版(2 分钟)
P3-02 速记
Agent 知识全景
AGENT-KNOWLEDGE-BASE-MAP

官方文档与源码(一级依据)

OpenClaw · 正文机制全部来自下方 官方文档(L1) 与 官方源码仓库(L2) 禁止用教程站/博客充当机制依据。 写作规范:docs/official-sources-registry.md §0

L1 · 官方文档

  • OpenClaw — 官网
  • Gateway 架构
  • Agent Runtime
  • Skills 系统
  • Skill Workshop
  • ClawHub
  • AgentSkills 开放规范

L2 · 官方源码

  • openclaw/openclaw
  • AgentSkills Spec

L3 · 协议 / 规范

  • AgentSkills 规范 — SKILL.md 格式标准