每开一个新会话,你都要重复同样的话:“用 pnpm,别用 npm”“测试用 make test 跑”“别碰 legacy/ 目录”。Verboo Code 的 /memory 命令可以解决这个问题:把这些规则写进一个 Markdown 文件,CLI 会在每个会话开始时自动加载它。本文介绍有哪些指令文件、各自放在哪里,以及如何编写只对部分代码生效的规则。
Verboo Code 的 /memory 是做什么的?
它会打开一个选择器,列出你的指令文件,并在文本编辑器中编辑你选中的那个。如果文件还不存在,CLI 会先创建一个空文件再打开。
/memory
选择之后,CLI 会回复 Opened memory file at,后面跟着文件的真实路径。使用的编辑器来自 $VISUAL 变量,未设置时使用 $EDITOR。修改方法:
export EDITOR="code --wait"
Verboo Code 会读取哪些指令文件?
共四个层级,按以下顺序加载。越晚加载的权重越高,所以项目规则优先于全局规则,个人规则又优先于项目规则。
| 层级 | 文件 | 用途 |
|---|---|---|
| Managed | 系统托管目录中的 CLAUDE.md | 公司策略,对这台机器上所有人相同 |
| User memory | ~/.verboo/CLAUDE.md 和 ~/.verboo/rules/*.md | 你在所有项目中的个人偏好 |
| Project memory | AGENTS.md(没有 AGENTS.md 时用 CLAUDE.md)、.claude/CLAUDE.md 和 .claude/rules/*.md | 仓库规则,纳入 git 版本管理 |
| Local | CLAUDE.local.md | 仅对本项目生效的个人规则,不进 git |
如果设置了 VERBOO_CONFIG_DIR,User memory 文件会放在该目录下,而不是 ~/.verboo/。
用 AGENTS.md 还是 CLAUDE.md?
优先用 AGENTS.md。在每个目录中,Verboo Code 先找 AGENTS.md,只有不存在时才使用 CLAUDE.md。两者不会叠加:如果同一目录下两个都有,只加载 AGENTS.md。在 /memory 中选择 Project memory 时,创建的是当前目录下的 AGENTS.md。
CLI 如何找到项目文件?
它从你打开会话的目录开始,一直向上走到磁盘根目录,读取每一层的指令文件。在 monorepo 中,你可以在根目录放通用规则,在 packages/api/ 放更具体的规则:在 packages/api/ 打开会话时两者都会加载,离得越近的权重越高。
my-monorepo/
├── AGENTS.md # general rules
└── packages/
└── api/
├── AGENTS.md # API rules, weigh more
└── CLAUDE.local.md # your notes, out of git
把 CLAUDE.local.md 加进 .gitignore。它正是为不该同步给团队的内容准备的:你本机的路径、本地测试凭据、个人偏好。
AGENTS.md 里应该写什么?
只写智能体不读就会出错的内容:不显而易见的构建和测试命令、团队约定、禁止改动的目录。代码中把每个文件的推荐最大长度定为 40,000 个字符,而且这些内容会进入每个会话的上下文,所以越短越好。
# Project
- Package manager: pnpm. Never run npm install.
- Tests: make test. Run before saying you're done.
- Don't edit anything in legacy/, the team is migrating it.
@docs/architecture.md
想从代码生成初稿,可以运行 /init:它会分析仓库并提出指令文件的草案。之后再审阅一遍,删掉显而易见的内容。
如何用 @ 导入其他文件?
在指令文件的文本行中写 @ 加路径。被导入的文件会先于导入它的文件进入上下文。这样就能直接复用已有文档,而不必复制粘贴。
| 写法 | 解析为 |
|---|---|
@docs/stack.md | 相对路径(等同于 @./docs/stack.md) |
@~/notes/standards.md | 从你的 home 目录开始的路径 |
@/etc/team/rules.md | 绝对路径 |
代码里有三个细节值得注意:@ 在代码块内不生效;不存在的文件会被静默忽略;只加载文本文件(.md、.txt、.json、.yaml、源代码等),图片和 PDF 不会加载。循环导入也不会卡住:每个文件只加载一次。
如何创建只对某个目录生效的规则?
在 .claude/rules/ 中创建一个 .md 文件,并在 frontmatter 中写 paths:。这种规则不会在会话开始时加载,只有当智能体读取到匹配该模式的文件时才会加载。
mkdir -p .claude/rules
---
paths: src/api/**/*.ts, src/api/**/*.test.ts
---
- Every new endpoint needs a contract test.
- Errors return { code, message }, never a bare string.
该字段支持用逗号分隔的多个模式,也支持 YAML 列表,并能展开花括号:src/*.{ts,tsx} 会变成 src/*.ts 和 src/*.tsx。.claude/rules/ 中没有 paths: 的文件始终生效,相当于 AGENTS.md 的一部分。rules/ 的子目录也会被读取,可以按主题组织。
自动记忆又是什么?
那是另一回事。除了你自己写的文件,Verboo Code 还有默认开启的自动记忆,由智能体自己保存它对你和项目的了解。/memory 选择器中有一行 Auto-memory: on 用于开关,还有 Open auto-memory folder 选项可查看已保存的内容。用环境变量关闭:
export CLAUDE_CODE_DISABLE_AUTO_MEMORY=1
团队规则应写在可在 git 中审阅的 AGENTS.md 里。自动记忆用于智能体在工作中发现的东西,不能替代书面指令。
它和其他命令如何配合?
- /plan 在制定计划时会遵循
AGENTS.md中的规则,写在那里的约定会直接体现在计划里。 - /compact 会压缩对话,但指令文件仍保留在磁盘上。
- 指令只是请求,不是硬性限制。要真正阻止某个命令,请使用 /permissions 或 hook。
- 要固定回复语言,请参阅如何锁定固定语言。
带导入的 AGENTS.md 会进入每个会话的上下文,而上下文就是 token。在 Verboo Code 中 token 不限量,你可以完整记录整个项目,不必为了省 token 删减规则:在 verboo.ai 注册账号,在你的仓库中打开 CLI,运行 /memory。



