乐于分享
好东西不私藏

为什么要这样设计OpenClaw Agent的Workspace

为什么要这样设计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,而是你有没有为它设计一个能长期运转的工作现场。