Appearance
很多人给Agent建工作区,第一反应都是先建个文件夹,后面缺什么再补。这样短期能跑,长期一定会乱。问题不在于Agent会不会写,而在于:它有没有一个能长期工作的环境。
一、顶层文件不是装饰,是"工作规则"
AGENTS.md
SOUL.md
USER.md
IDENTITY.md
TOOLS.md
HEARTBEAT.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每天都像在重新开始。
把知识单独沉淀进vault/,本质上是在回答三个问题:
- 出问题了怎么查
- 原理到底是什么
- 以后应该怎么做
这才是长期可复用的部分。
完整目录结构
.
├── AGENTS.md # Agent规则
├── SOUL.md # Agent灵魂
├── USER.md # 用户信息
├── IDENTITY.md # 身份定义
├── TOOLS.md # 工具清单
├── HEARTBEAT.md # 心跳检测
├── context/ # 产出模板
│ ├── BUG_REVIEW_TEMPLATE.md
│ └── KNOWLEDGE_NOTE_TEMPLATE.md
├── modules/ # 任务域(按目标拆)
│ ├── daily-digest/
│ ├── job-market/
│ ├── research/
│ └── dev/
├── media/ # 缓存层(不沉淀)
│ └── inbound/
└── vault/ # 长期知识(Obsidian)
└── 09_AI/Openclaw/
├── 故障排查/
├── 机制解析/
└── 操作指南/结尾
这套workspace设计的核心,不是"好看",而是"可持续"。
它的目标只有一个:让Agent不只是会聊一次,而是能长期稳定地工作、产出、积累。
所以真正重要的,从来不只是prompt,而是你有没有为它设计一个能长期运转的工作现场。
