Bot 每次启动都是一张白纸。它要从你的文件里搞清楚三件事:我是谁、该干嘛、工具在哪。如果 workspace 乱七八糟,它光"找路"就烧掉一半 context,根本没余量干正事。同一个问题 debug 了 20 次,第二天照犯;规则强调了 N 遍,它还是记不住——根源就在这里。
下面是我这几个月摸索出来的结构,直接抄就行。
Workspace 核心文件
每个文件各司其职:
- AGENTS.md — Bot 醒来第一件事读这个。写清楚有哪些文件、什么任务读什么 skill、红线在哪。注意:这是目录,不是规则手册。
- SOUL.md — 人格和语气。我写了"别说废话"、"有观点直说"、"可以吐槽"、"骂人可以但要有道理"。还可以写偏好,比如"代码注释用英文"、"回复用中文除非对方先用英文"。没这个文件,bot 就是个客服机器人。
- MEMORY.md — 长期记忆,只放精华。流水账放
memory/目录。 - memory/ — 分层存储:原始日志 → 压缩洞察 → 踩坑教训。
三个坑,我都踩过
坑一:Skills 到处乱放
一开始 skills 装到 /opt/clawdbot/skills/,后来又在 workspace 里建了几个。结果 bot 改了 A 版本,跑的是 B 版本,debug 两小时才发现。
现在的规则:统一放 ~/clawd/skills/,零歧义。
坑二:一个功能三个文件夹
有段时间同时存在 x-poster/、twitter-bot/、x-tools/,都是发推相关的。让 bot 改配置,它改了 A,实际跑的是 B。
教训:一个功能一个 skill,一个 skill 一个文件夹。
坑三:规则写了但 bot 不听
AGENTS.md 写了一堆"必须这样做",bot 隔几天就忘。后来才明白:context 压缩时规则被丢了。它不是不听,是真没看到。
解法:规则写进输出格式。
比如强制所有外发内容带 Humanizer: ✅ 标记——没这行就是没过检查,一眼就能看出来。再比如修改 AGENTS.md 前必须输出"三问自检"结果,没有这段就不允许提交。
格式约束比写在文档里可靠,因为它不依赖 bot "记住"规则。
实战技巧
AGENTS.md 的三问测试
往里加东西之前,先问:
- 删掉会影响 99% 日常操作吗?不会就别放
- 以后需要扩展吗?会就独立成 skill,这里只放指针
- 新人 5 分钟能理解吗?不能就太复杂了
定期压缩记忆
每日 log 会爆炸。写个脚本,每天把前一天的 log 压缩 10:1:保留决策和结论,删掉过程细节,核心存 insights/。
给记忆加 TTL
不是所有东西都值得永久保存:
[P0]— 永不过期[P1]— 90 天[P2]— 30 天
维护 Task Checklist
AGENTS.md 里放一张任务路由表:
| 任务 | 对应 Skill |
|---|---|
| 写文章/配图 | contentgen-skill |
| 发推/回复 | x-engagement-skill |
| 高风险操作 | roundtable-skill |
Bot 收到任务先查表,不靠脑子记。
四条原则
- 入口清晰 — AGENTS.md 是目录,不是规则手册
- 职责分离 — 每个文件干一件事
- 记忆分层 — 原始 → 压缩 → 精华
- 规则落地 — 写进格式,不靠 context
这套结构跑了五周,bot 基本不掉链子了。如果你的 Agent 也在反复犯同样的错,大概率不是 prompt 的问题,先看看 workspace 是不是一团糟。