多数用户使用 OpenClaw 仍处于“黑箱操作”状态:盲目安装技能、调试提示词、调整参数,却对其底层机制一无所知。即便框架完全开源透明,缺乏系统认知仍导致效能严重受限。
OpenClaw 内置双重记忆机制——Bootstrap 引导记忆与语义搜索记忆。忽视这一设计,Agent 性能将折损近半;而通过纯文本编辑器精细配置,即可实现远超常规用户的执行效果。
若长期依赖“开箱即用”的默认配置,Token 消耗可能高达合理水平的 3 倍。本文将系统解析 OpenClaw 五大核心组件及关键运行逻辑,助你真正掌握这一 Agent 框架。
OpenClaw 架构
OpenClaw 由五个协同工作的独立模块构成,共同支撑智能 Agent 的完整生命周期。
1. Gateway —— 系统核心枢纽
Gateway 是消息调度中枢,统一管理 Telegram、WhatsApp、飞书、钉钉等平台的持久连接。它负责路由消息至对应 Agent、拉取历史会话、组装上下文并转发至 LLM;响应沿原路径返回,并提供 WebSocket API 支持自定义前端或外部系统集成。
2. Agent —— 决策大脑
Agent 接收 Gateway 组装的上下文(含聊天记录、记忆文件、可用工具),进行推理决策:调用工具、生成响应,或启动多步调用链(如工具调用→结果分析→再调用),直至输出最终答案。
3. Tools —— 执行手脚
Tools 赋予 Agent 对外交互能力,使其从对话模型升级为行动主体。各工具可独立启用或禁用:
exec:在服务器执行 Shell 命令
browser:控制浏览器打开页面、点击元素、截图、保存 PDF
file:读写本地文件
message:向指定频道发送消息
memory:基于向量检索长期记忆
4. Workspace —— 长期记忆载体
Workspace 是一个结构化文件夹,存储 Agent 跨会话需持续记忆的关键信息:身份设定、沟通风格、用户偏好、协作历史、重要决策等。缺失 Workspace,Agent 每次重启均为“失忆状态”,重复消耗 Token 重建上下文。
5. Sessions —— 单次对话容器
Sessions 以 .jsonl 格式独立记录每次对话的完整轨迹:用户输入、Agent 输出、工具调用过程。各会话物理隔离,互不干扰。
6. Nodes —— 物理能力扩展节点
Nodes 是接入 Gateway 的终端设备(Mac、手机、远程服务器),用于扩展感知与执行能力:拍照、截屏、定位等。Gateway 作为“大脑”,Nodes 充当“眼手”,形成分布式智能体网络。
Workspace:从基础对话到深度协同的关键跃迁
Workspace 是区分“机械应答”与“可信助手”的分水岭。无 Workspace 时,Agent 每次对话均需重述身份、关系、背景,造成大量冗余 Token 开销。
Workspace 文件详解
双重记忆机制:Bootstrap 与语义搜索
双重记忆是 OpenClaw 最具价值但最常被低估的设计。
Bootstrap —— 引导记忆(第一层)
每次请求前,Gateway 自动加载 AGENTS.md、SOUL.md、USER.md、IDENTITY.md 及当日日志,注入 LLM 上下文。该机制确保 Agent 每次均具备基础身份认知与行为约束,不可跳过。
语义搜索 —— 智能检索(第二层)
启用 memory 插件后,Agent 可对 MEMORY.md 及其他笔记进行向量检索。例如询问“我们在哪个 DEX 交易?”,即使该信息记录于两个月前,也能基于语义而非关键词精准召回。
策略对比与最佳实践
Bootstrap 提供稳定、即时的记忆供给,但直接增加 Token 成本;文件内容越冗长,单次调用成本越高。
语义搜索 按需加载,不占用固定上下文空间,但检索结果存在不确定性。
推荐策略:将高频、强约束信息(语气、角色、核心规则)置于 Bootstrap;将事实性记录、任务上下文、阶段性决策存入 MEMORY.md 与日志,交由语义搜索按需调取。仅配置 Bootstrap 或两者皆无,均将导致性能与成本双重损失。
Gateway 工作流程揭秘
Gateway 为常驻守护进程,启动后持续维持平台连接、接收消息、处理响应,无需人工干预。
消息处理流程
第一步:维持与 Telegram 等平台的持久连接,实时捕获新消息事件。
第二步:依据配置确定目标 Agent(频道与 Agent 映射关系),并识别 SessionId(延续旧会话或新建)。
第三步:组装上下文——读取 .jsonl 会话历史、加载 Workspace 中的 Bootstrap 文件(AGENTS.md、SOUL.md 等)、注入可用工具列表,打包发送至 LLM。
第四步:LLM 返回文本或工具调用指令。Gateway 执行工具(如运行命令、打开网页),将结果反馈至上下文,触发 LLM 迭代推理,直至生成终局响应。
第五步:响应流式返回客户端;全程对话数据(含工具调用)同步写入 .jsonl 文件,sessions.json 实时更新映射关系。
核心工具详解
exec —— 高权限执行工具
exec 支持脚本运行、包管理、文件处理、代码部署等全系统操作,是能力最强亦风险最高的工具。
三种安全模式:
sandbox:运行于 Docker 容器内,与宿主机完全隔离,故障不影响主系统。
gateway:在服务器直接执行,但受白名单限制(如仅允许 git、python),其余命令被拦截。
full:无任何限制,适用于本地测试;生产环境严禁启用。
browser —— 浏览器自动化
支持页面打开、元素点击、表单填写、截图、PDF 导出。提供两种运行模式:openclaw(完全隔离托管环境)与 chrome(通过扩展控制本地 Chrome 浏览器)。
cron 与 heartbeat —— 自动化调度引擎
赋予 Agent 主动执行能力,实现从“响应式聊天机器人”到“自主工作代理”的升级。
cron 是 Gateway 端定时任务调度器,支持标准 Cron 表达式:
openclaw cron add --schedule "0 9 * * *" --agent personal --prompt "检查新邮件,发送摘要到 Telegram" --announce
每日 9:00 自动唤醒 Agent 执行指定任务,结果直送目标频道。
heartbeat 基于 HEARTBEAT.md 清单执行周期性健康检查:监控服务状态、磁盘空间、错误日志等,异常即时告警。
Agent、Session、Subagent:三层隔离模型
理解三者差异,是掌握 OpenClaw 架构设计哲学的核心。
一句话概括
Agent 是目录级隔离单元,Session 是其下的对话记录,Subagent 是临时派生的子任务会话。
详细对比
1) Agent —— 独立大脑
Agent 是最高层级隔离单元,每个实例拥有专属工作区、认证配置与会话存储。
关键特性:
对应
~/.openclaw/agents/<agentId>/独立目录独占 Workspace(AGENTS.md、SOUL.md、MEMORY.md 等)
独占会话存储(
sessions/目录)多 Agent 间完全隔离,零交叉影响
典型场景:
~/.openclaw/agents/
├─ work/ # 工作 Agent
│ ├─ agent/ # 认证配置
│ ├─ sessions/ # 工作会话
│ └─ workspace/ # 工作记忆
└─ personal/ # 个人 Agent
├─ agent/
├─ sessions/ # 个人生活会话
└─ workspace/ # 个人记忆
2) Session —— 对话容器
Session 是特定 Agent 下某段对话的上下文容器,以 .jsonl 格式完整记录交互过程。
关键特性:
隶属于单一 Agent
通过
sessions.json维护 sessionKey 到 sessionId 映射支持多种类型:私聊(main)、群组(group)、线程(thread)、子代理(subagent)
Session 类型标识:
agent:<agentid>:main # 主会话(一对一私聊)
agent:<agentid>:<channel>:group:<id> # 群组会话
agent:<agentid>:thread:<uuid> # 线程会话
agent:<agentid>:subagent:<uuid> # 子代理会话
路由逻辑:
私聊 → main Session
群聊 → group Session
线程回复 → thread Session
3) Subagent —— 临时子任务
Subagent 是由主 Session 通过 sessions_spawn 派生的隔离执行环境,用于并行或敏感任务处理。
关键特性:
运行于与主 Session 隔离的沙箱中
任务完成自动回传结果并归档
生命周期短暂,禁止无限嵌套
工作流程:
主 Session 判断需隔离执行子任务
调用
sessions_spawn创建 SubagentSubagent 在独立环境中运行
结果回传 → 主 Session → Subagent 归档
类比理解:
Agent 是部门:财务部、技术部互不干涉
Session 是项目:财务部下的审计、报销项目
Subagent 是外包团队:审计项目中临时聘请的第三方,任务结束即解散
目录结构全景
~/.openclaw/
├─ openclaw.json # 全局配置(agents/bindings/channels)
├─ agents/
│ ├─ <agentid>/ # 单个 Agent(独立大脑)
│ │ ├─ agent/ # 认证与状态配置
│ │ │ ├─ auth-profiles.json
│ │ │ └─ auth.json
│ │ └─ sessions/ # 所有会话存储
│ │ ├─ sessions.json # sessionKey → sessionId 映射
│ │ ├─ <sessionid>.jsonl # 普通会话(Session)
│ │ └─ subagent-<uuid>.jsonl # 子代理会话(Subagent)
│ └─ main/ # 默认 agentId=main(单 Agent 模式)
└─ workspace/ # 默认工作区(可按 Agent 区分)
多 Agent 架构:一个网关,多个大脑
Gateway 可同时服务任意数量的 Agent,实现业务与生活的严格分离。
例如:工作 Agent 处理项目协作、代码评审;个人 Agent 管理日程、笔记、提醒。二者共用同一 Gateway,但数据、记忆、会话完全隔离。
实现原理:每个 Agent 对应 ~/.openclaw/agents/ 下独立目录,拥有专属 Workspace、会话与记忆文件。
频道路由 通过 config.json 中的绑定规则实现:不同 Telegram 聊天自动分发至对应 Agent。
隔离保障 由 dmScope 参数控制。设为 "per-agent" 后,各 Agent 仅可见自身会话,彻底杜绝信息串扰。
常见错误清单:立即自查
错误 1:dmScope 设为 "main" 但存在多用户
默认配置下,所有私信被合并至单一会话,导致跨用户上下文混淆。应改为 dmScope: "per-channel-peer",确保每位用户拥有独立会话空间。
错误 2:exec 工具启用 full 模式
授予 LLM 无限制 Shell 权限存在极高安全风险。生产环境必须切换至 sandbox 或 gateway 模式,并配置 exec-approvals.json 白名单。
错误 3:未配置 Workspace
缺失 Workspace 的 Agent 无法维持上下文,每次对话均需重复解释身份与规则,造成 Token 浪费。至少应配置 AGENTS.md、SOUL.md、USER.md 三文件。
错误 4:未启用压缩与记忆刷新策略
长会话易致 Token 爆炸。若未在压缩前将关键信息写入 MEMORY.md,历史决策将永久丢失。务必启用 memory flush 机制,确保重要事实自动沉淀至长期记忆。
错误 5:Gateway API 端口(18789)暴露公网
Gateway 默认监听 localhost。若为远程访问开放端口且未加防护,等于将全部会话、数据、Workspace 暴露于互联网。必须使用 Tailscale 或 SSH 隧道,严禁直接暴露。


