记忆 (Memory)
让 CrabCode 在新会话里记住你的偏好、项目上下文、长期跨会话经验。
是什么
CrabCode 的"记忆"由两套互补机制组成:
CRABCODE.md系列说明文件(你写、你管、提交到 git 与否你定)—— 启动时合并加载到系统提示- 自动记忆 (auto-memory)(CrabCode 自动维护)—— 跨会话沉淀长期经验,按需注入
两套都默认开启,互不依赖。
CRABCODE.md 说明文件
这是 CrabCode 启动时按以下顺序合并的 markdown 文件(靠后的优先级更高):
| 作用域 | 文件位置 | 用途 |
|---|---|---|
| 用户 | ~/.crabcode/CRABCODE.md | 跨项目个人偏好(你是谁、怎么协作) |
| 项目 | <repo>/CRABCODE.md 或 <repo>/.crabcode/CRABCODE.md | 项目级团队共识(架构、规范),提交到 git |
| 项目(细分规则) | <repo>/.crabcode/rules/*.md | 按主题拆分的规则文件,逐个加载 |
| 本地 | <repo>/CRABCODE.local.md | 个人项目笔记,gitignored |
从 cwd 向上逐级查找;目录越靠近 cwd 优先级越高。Markdown 文件里可以用 @./path、@/abs/path、@~/home/path 把其它文件包含进来。
查看 / 编辑
/memory/memory会列出当前所有作用域的记忆文件,选中后调起 $EDITOR 或 $VISUAL 打开。
/init 帮你起草
仓库根没有 CRABCODE.md 时,运行 /init 让 CrabCode 自动扫描代码、生成一份初稿,你 review 后提交即可。
自动记忆 (auto-memory)
CrabCode 会自动维护一套结构化跨会话记忆,存在:
~/.crabcode/projects/<sanitized-git-root>/memory/~/.crabcode/projects/<sanitized-git-root>/memory/包含:
MEMORY.md— 索引入口(启动时注入,最多 200 行 / 25 KB,超出会截断)- 按主题分的单条 markdown 文件,frontmatter 标
type:—— 取值为user/feedback/project/reference四类之一
智能体会根据对话内容自动读写这套目录,你不需要手动维护。如果想关掉:
{ "autoMemoryEnabled": false }{ "autoMemoryEnabled": false }或临时启动时:
CRABCODE_DISABLE_AUTO_MEMORY=1 crabcodeCRABCODE_DISABLE_AUTO_MEMORY=1 crabcode把自动记忆挪到其它路径(仅用户/本地/托管层有效):
{ "autoMemoryDirectory": "~/notes/crabcode-memory" }{ "autoMemoryDirectory": "~/notes/crabcode-memory" }让模型自动写入
直接用自然语言:
记住:这个项目用 pnpm 不用 npm记住:这个项目用 pnpm 不用 npm模型会自行决定是写到 CRABCODE.md 还是自动记忆。
限制与注意
- 单文件 40 KB 上限:每个
CRABCODE.md/ 记忆文件超出 40 000 字符不再加载 MEMORY.md索引 200 行 / 25 KB 上限:超出截断,保持简短- 不要写密钥/口令:记忆会进入每次模型请求,避免泄露
projectSettings不能改autoMemoryDirectory:仓库根.crabcode/settings.json里设此字段会被忽略(防恶意仓库把记忆指到~/.ssh拿到写入权)--bare/CRABCODE_SIMPLE=1会同时跳过CRABCODE.md自动发现与自动记忆