为什么要这样设计OpenClaw Agent的Workspace
很多人给 Agent 建工作区,第一反应都是:先建个文件夹,后面缺什么再补。这样短期能跑,长期一定会乱。问题不在于 Agent 会不会写,而在于:它有没有一个能长期工作的环境。

一、顶层文件不是装饰,是“工作规则”
AGENTS.mdSOUL.mdUSER.mdIDENTITY.mdTOOLS.mdHEARTBEAT.md
这一层解决的不是存档,而是让 Agent 每次启动都知道:
-
自己是谁 -
为谁工作 -
用什么语气 -
能用什么工具 -
每次执行前该检查什么
如果这些东西全塞进 prompt,最后一定越来越长、越来越乱、越来越难维护。所以要把“身份、规则、工具、用户信息”拆出来,变成稳定环境,而不是临时提示词。
二、context/ 不是资料夹,而是“产出模板库”
context/├── BUG_REVIEW_TEMPLATE.md├── KNOWLEDGE_NOTE_TEMPLATE.md
这一层的意义是统一输出格式。因为 Agent 最大的问题通常不是写不出来,而是每次写法都不一样,最后什么都沉淀不下来。
有了模板,故障复盘、知识笔记、操作指南都能按固定结构生成,内容才会慢慢变成资产。
三、modules/ 必须按任务域拆,不要按文件类型拆
modules/├── daily-digest/├── job-market/├── research/└── dev/
这是整个设计最关键的一层。不要按docs/、data/、output/这种技术分类来拆,因为 Agent 不是按“文件类型”工作的,而是按“任务目标”工作的。按任务域拆的好处很直接:
-
一个目录对应一类稳定任务 -
输入、处理中间态、输出更容易放在一起 -
后面要扩展新任务,不会把旧结构打乱
workspace 从这里开始,才真正变成“任务操作系统”,而不是“文件堆场”。
四、media/ 要独立,因为缓存不是知识
media/└── inbound/
Telegram 图片、附件、临时下载文件,这些都应该放在单独的缓存层。原因很简单:
-
它们噪音大 -
生命周期短 -
很多不值得长期保留
如果把这些东西和正式知识、正式产出混在一起,知识库很快就会被污染。所以 media/ 只负责接收,不负责沉淀。
五、vault/ 才是长期知识层
vault/└── 09_AI/Openclaw/├── 故障排查/├── 机制解析/└── 操作指南/
前面几层负责“工作”,这一层是Obsidian负责的“积累”。如果一次次任务不能变成笔记、文档和方法论,那 Agent 每天都像在重新开始。把知识单独沉淀进Obsidian vault/,本质上是在回答三个问题:
-
出问题了怎么查 -
原理到底是什么 -
以后应该怎么做
这才是长期可复用的部分。
结尾
这套 workspace 设计的核心,不是“好看”,而是“可持续”。它的目标只有一个:
让 Agent 不只是会聊一次,而是能长期稳定地工作、产出、积累。所以真正重要的,从来不只是 prompt,而是你有没有为它设计一个能长期运转的工作现场。
夜雨聆风