用了大半年 OpenClaw,这篇把它在我机器上真实的样子拆开。不是官方文档转述,是我对着自己的目录、会话 key、配置一条条核出来的。

四层结构

聊天渠道(微信/网页/…) ──> Gateway(常驻网关进程) ──> Agent(模型+工具) ──> Workspace(Markdown 文件们)

1. Gateway 网关。 本机常驻的 WebSocket 服务,一切的中枢:渠道消息进它,Agent 调用经它,定时任务、日志都归它管。CLI 里 openclaw gateway 一族负责起停查。我 5 月第一次升级时就是 CLI 升到 2026.5.18 后网关服务没对齐,重装服务才恢复——它是独立于 CLI 的常驻进程,这个认知能解释一大半"明明改了为什么不生效"(配置热改后多数要重启网关加载,我 9/25 那次 thinkingDefault 改完就是 15:56 重启才生效)。

2. Sessions 会话。 每条聊天线都是一个持久会话,key 长这样(我自己的):

agent:main:openclaw-weixin:direct:o9cq…@im.wechat

读法:哪个agent : 哪条渠道 : 私聊还是群聊 : 对方是谁。每个会话有独立的历史与上下文,openclaw sessions list、openclaw transcripts 可以直接翻存储的会话和转录——透明,没有黑盒。

3. Agent 与工具。 模型负责想,工具负责做:exec(shell)、read/write/edit、browser、cron、web_search 这些,按策略过滤后授权给会话。工具清单不是背出来的,是每次运行时注入的元数据——所以"我的工具箱"里我能干啥,取决于配置,不取决于传说。子 agent(sessions_spawn)用来把长任务丢后台,跑完把结果推回来,主会话不陪着卡死。

4. Workspace 工作区。 这是 OpenClaw 最有味道的设计:人格和记忆全是 Markdown 文件。我的 D:\openClaw\workspace 根目录:

文件作用
AGENTS.md工作区守则(记忆规则、红线、执行约定)
SOUL.md性格与说话方式
IDENTITY.md / USER.md它是谁 / 我是谁
TOOLS.md本机工具操作笔记
MEMORY.md长期记忆(精炼画像)
memory/daily/每日原始日志 YYYY-MM-DD.md
memory/projects/专项档案(按需读取,不常驻注入)

每次会话开始,这几个文件被注入进上下文——所以"每次都是全新醒来,文件即记忆"。会话之间它什么都不记得,但读完文件它就知道我是谁、进度到哪、哪些事不能干。

两个值得聊的设计取舍

取舍一:记忆在文件,也在索引。 注入的只有那几份 bootstrap 文件(我 9/25 降本时把这块从 42KB 瘦到 20KB,因为每次会话都背着它们跑 token)。历史日志靠 memory_search 语义检索按需捞回,另有 wiki 知识库目录(~\.openclaw\wiki\)。文件是事实源,索引是加速层——索引坏了数据不丢,这个架构对我这种要长期攒记忆的人很关键,具体故事见系列第五篇。

取舍二:上下文是成本,也是纪律。 大模型按 token 计费,注入越多越贵越慢。所以我把"详细操作手册"都沉到 projects 档案里,常驻的只留高频守则和指针;心跳(heartbeat,每 30 分钟自动唤醒跑一轮模型)直接禁用,用便宜的 cron + 纯脚本接管。这套账算下来是第六篇的主题。

架构层自查命令

openclaw status          # 网关/渠道/模型/最近会话总览
openclaw sessions list   # 存量会话
openclaw agents list     # 隔离 agent(工作区+路由)
openclaw channels list   # 接了哪些聊天渠道
openclaw config get      # 当前配置

一句话总结架构:网关是身体,会话是神经,工具是手,Markdown 文件是记忆。搞清楚这四层,后面装模型、接微信、修记忆、排任务都是按图索骥。


「OpenClaw 实战」系列(随我用随更):① Windows 安装上线篇 · ② 架构扫盲 · ③ 控制台与日常使用 · ④ 模型接入 · ⑤ 记忆系统 · ⑥ 定时任务与降本 · ⑦ 增加依赖