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 是不是一团糟。