乐于分享
好东西不私藏

OpenClaw 技术 Track 分析

OpenClaw 技术 Track 分析

2026/3/12 基于openclaw整理

https://github.com/openclaw/openclaw

OpenClaw 技术 Track 分析

底层能力、工具、技能、架构增强


一、项目概览

OpenClaw 是一个 TypeScript ESM 编写的 AI 助手平台,核心理念是"能真正做事的 AI"——在用户设备上运行,接入各种消息频道,遵循用户设定的规则。

维度
数据
语言
TypeScript (ESM), Node 22+, Bun 兼容
源码目录
src/
 (52 个子目录, ~75 个顶层文件)
扩展插件
extensions/
 (40 个)
内置技能
skills/
 (52 个)
构建
tsdown, pnpm workspace
测试
Vitest, 70% 覆盖率阈值

二、核心架构


三、底层能力详解

3.1 Agent 引擎 (Pi SDK 嵌入式集成)

OpenClaw 的 AI 核心基于 Pi SDK 的嵌入式集成,而非 CLI/RPC 方式调用。

关键架构决策:

  • 嵌入式实例化:直接 import { createAgentSession } 创建 Agent Session
  • 完全接管工具集:不使用 Pi 内置工具,全部替换为 OpenClaw 自定义工具
  • 自定义系统 Prompt:根据频道/上下文动态生成
  • JSONL 会话持久化:树状结构(id/parentId 链接),支持分支和压缩

核心文件:

文件
职责
[pi-embedded-runner/run.ts]
Agent 运行入口
[pi-embedded-subscribe.ts]
事件订阅/流式输出
[system-prompt.ts]
系统提示词构建(~33KB)
[model-selection.ts]
模型选择(~21KB)
[model-fallback.ts]
模型故障转移(~26KB)
[subagent-registry.ts]
子 Agent 注册/生命周期(~44KB)

模型支持: Anthropic, OpenAI, Google Gemini, Ollama, HuggingFace, MiniMax, Moonshot, Venice, Bedrock, BytePlus/火山引擎, 通义千问, Chutes, vLLM, GitHub Copilot, Cloudflare AI Gateway, Vercel AI Gateway 等。

3.2 工具系统

工具管线流程:

Pi 基础工具 → OpenClaw 替换(exec/read/write) → OpenClaw 扩展工具 → 频道专属工具 → 策略过滤 → Schema 标准化 → AbortSignal 包装

内置工具分类:

类别
工具
文件
代码执行
exec
process
[bash-tools.exec.ts] [bash-tools.process.ts]
文件操作
read
writeeditapply_patch
[pi-tools.read.ts]
[apply-patch.ts]
浏览器
browser_*
 (navigate, click, snapshot 等)
src/browser/pw-tools-core.*.ts
画布
canvastools/canvas-tool.ts
消息
messagetools/message-tool.ts
会话
session_*tools/session*.ts
定时任务
crontools/cron-tool.ts
图片
imagetools/image-tool.ts
频道操作
Discord/Telegram/Slack/WhatsApp/iMessage/企业微信/飞书/钉钉/QQ 等
tools/*-actions.ts

3.3 Gateway 服务器

[server.impl.ts]是核心,职责包括:

  • HTTP + WebSocket 双协议:RESTful API + 实时 WS 通信
  • 多层认证:Token、OAuth、设备认证、浏览器硬化、CORS/CSP
  • 频道生命周期管理:启动/停止/健康监控
  • 配置热重载:运行时修改配置无需重启
  • Control UI:内嵌 Web 管理界面
  • OpenAI 兼容 API:[openai-http.ts] + [openresponses-http.ts]

3.4 插件系统

src/plugins/├── loader.ts       # 插件加载器(~26KB)- jiti 动态加载├── registry.ts     # 插件注册表(~18KB)- 生命周期管理├── hooks.ts        # 插件 Hooks(~23KB)- 全生命周期钩子├── discovery.ts    # 插件发现(~21KB)- npm/本地/workspace├── types.ts        # 类型定义(~26KB)- 完整的插件 API 类型└── manifest.ts     # 清单解析 - 声明式能力

插件能力: 提供 Provider、频道、工具、Hooks、内存引擎等扩展点。插件通过 npm install --omit=dev 安装,运行时通过 jiti 动态加载。

3.5 Hooks 系统

生命周期钩子机制,支持:

  • before-agent-start / after-agent-end
  • before-tool-call / after-tool-call
  • before-message / after-message
  • compaction 钩子
  • session / subagent / gateway / llm 钩子

配置方式:YAML frontmatter 的 Hook 文件 + 内置钩子 + 插件钩子。

3.6 浏览器自动化

[src/browser/] 含 133+ 文件:

  • Playwright 集成:[pw-session.ts]管理浏览器会话
  • CDP 直连:[cdp.ts]支持 Chrome DevTools Protocol
  • Chrome 扩展中继:[extension-relay.ts]通过扩展桥接
  • AI 集成:[pw-ai.ts] Playwright AI 模块
  • 多 Profile 支持:[profiles-service.ts] 管理多个浏览器配置

四、技能(Skills)系统

52 个内置技能,覆盖分类:

类别
技能示例
笔记/知识管理
apple-notes
bear-notesobsidiannotion
通信/消息
discord
slackimsghimalaya(email)
开发工具
github
gh-issuescoding-agentcanvas
媒体处理
openai-image-gen
openai-whispervideo-framescamsnapgifgrep
AI/LLM
gemini
oraclesummarize
IoT/硬件
openhue
(智能灯), sonoscli(音箱), peekaboo(摄像头)
生活工具
weather
spotify-playerthings-macapple-remindersgoplaces
语音
sherpa-onnx-tts
voice-call
安全/运维
1password
healthchecksession-logsmodel-usage

技能通过 SKILL.md 声明,支持 clawhub.ai 社区发布。

以xiaohongshu-ops-skill举例

五、扩展生态 (Extensions)

40 个扩展插件,按类别:

类别
扩展
消息频道bluebubbles
discord,feishu,googlechat,irc,line,matrix,mattermost,msteams,nextcloud-talk,nostr,signal,slack,synology-chat,telegram,tlon,twitch,whatsapp,zalozalouser
AI/Agentacpx
 (ACP 协议), llm-taskcopilot-proxylobster (UI 框架)
记忆memory-core
memory-lancedb
认证google-gemini-cli-auth
minimax-portal-authqwen-portal-auth
工具增强diffs
open-prosephone-controltalk-voicevoice-call
设备device-pair
诊断diagnostics-otel
 (OpenTelemetry)
其他shared
test-utilsthread-ownership

六、核心架构增强能力

6.1 ACP 协议 (Agent Communication Protocol)

[src/acp/]实现了 Agent 间通信协议:

  • [translator.ts]:消息协议翻译
  • [session.ts]:ACP 会话管理
  • persistent-bindings:持久化的 Agent 绑定

6.2 子 Agent 体系

完备的子 Agent 生命周期管理:

  • 注册表:[subagent-registry.ts]
  • 生成:[subagent-spawn.ts]
  • 控制:[subagent-control.ts]
  • 通告:[subagent-announce.ts]
  • 深度限制:嵌套深度管控
  • 生命周期重试:优雅的错误恢复

6.3 沙箱化执行

  • Docker 容器隔离执行
  • 工作区路径限制
  • 工具级策略过滤
  • 浏览器桥接 URL

6.4 上下文窗口管理

  • 自动压缩:上下文溢出时自动触发
  • Cache-TTL 上下文裁剪:基于缓存时间戳的智能裁剪
  • 压缩安全守卫:自适应 Token 预算 + 失败操作摘要
  • 历史限制:按频道类型(DM vs 群组)差异化

6.5 认证与故障转移

  • 多 Profile 轮转:同一 Provider 多 API Key,自动轮换
  • 冷却追踪:失败后 Profile 进入冷却期
  • 模型故障转移:主模型失败自动切换备用
  • Provider 兼容层:Anthropic/Gemini/OpenAI 各自的 quirks 处理

6.6 MCP 支持

通过 mcporter 桥接 MCP 协议,解耦方式集成:

  • 无需重启 Gateway 即可增删 MCP Server
  • 保持核心工具/上下文精简

七、数据流总结


八、关键技术指标

指标
数值
src/agents/
 文件数
~551
src/gateway/
 文件数
~243
src/browser/
 文件数
~134
src/plugins/
 文件数
~67
src/commands/
 文件数
~303
扩展插件数
40
内置技能数
52
支持的消息频道
20+
支持的 LLM Provider
15+