永久记忆
用 /remember 把零碎的偏好、约定、命令记下来,AtomCode 会在每一轮对话的系统提示里把它们带给模型。和 .atomcode.md 项目指令文件 互补:指令文件适合写整篇规范,记忆适合积累那些"突然想起来该告诉它"的零散事实。
命令总览
| 命令 | 作用 |
|---|---|
/remember <内容> | 记一条到 项目级 记忆(默认作用域,绑定当前工作目录) |
/remember --global <内容> | 记一条到 全局 记忆(所有项目共享) |
/forget <关键词> | 删除全局 + 项目记忆中含该关键词的所有条目(大小写不敏感),输出会列出删了哪些条目 |
/memory | 查看当前生效的所有记忆,按 [Global] / [Project] 分组并显示磁盘路径 |
存储位置
| 作用域 | 路径 |
|---|---|
| 全局 | ~/.atomcode/memory.md(或 $ATOMCODE_HOME/memory.md) |
| 项目 | <project_root>/.atomcode/memory.md |
格式是普通 Markdown,每行一条 - 开头的列表项。可以用 /remember 也可以直接手编辑——AtomCode 在下一轮会重新读取。非 - 开头的行会被忽略,所以可以加注释、空行、标题分组,记忆条目本身不受影响。
模型怎么"用"这些记忆
每次发请求时,AtomCode 会把全局 + 项目记忆合并注入到系统提示里(crates/atomcode-core/src/agent/prompt.rs:64),格式如下:
=== MEMORY ===
The user has asked you to remember these facts and preferences:
[Global]
- 用户偏好简洁回答,避免冗长解释
- 中文回复,但 commit message 用英文
[Project: atomcode]
- 测试命令是 cargo test --workspace --no-fail-fast
- CI 失败时先看 .github/workflows/ci.yml 第 78-92 行
模型每个 turn 都能看到这块。没有"语义检索"或"按需召回"——是无条件全量注入,所以记忆条目越多,每个 turn 消耗的 token 越多。务必删除过时的条目,保持精简。
容量限制
| 限制 | 数值 | 触发后行为 |
|---|---|---|
| 单个记忆文件大小 | 64 KB | 只读末尾 64KB(按行边界对齐,不会切坏 UTF-8 字符) |
| 注入提示的总字符 | 4000 字符 | 截断并附 [...truncated, run /memory to review] 提示 |
到上限就用 /forget 清理,把最近不再相关的条目删掉。
使用建议
1. 项目特定的命令、约定、坑(项目级)
> /remember 用 npm run check 跑类型检查(不是 npm run typecheck)
> /remember CI 失败时先看 .github/workflows/ci.yml 第 78-92 行
> /remember 这个 repo 严禁用 sed -i 改文件(macOS/Linux 行为不一致)
> /remember 数据库迁移 SQL 必须先在 staging 跑过才能上 main
2. 全局编码偏好、工作流(全局)
> /remember --global 改完代码先跑测试再 commit
> /remember --global 不要主动 git push,让我手动确认
> /remember --global 中文回复,但 commit message 用英文
> /remember --global 优先编辑现有文件,不要擅自创建文档(*.md)
3. 个人或团队信息(全局)
> /remember --global 我的 GitHub 用户名是 alice
> /remember --global 默认时区 Asia/Shanghai
> /remember --global 团队 standup 是周一周三周五 9:30
4. 清理过时记忆
> /forget npm run check
[project] - 用 npm run check 跑类型检查(不是 npm run typecheck)
(removed 1 matching entry)
> /memory
[Global] (/Users/alice/.atomcode/memory.md)
- 改完代码先跑测试再 commit
- 不要主动 git push,让我手动确认
[Project] (/Users/alice/code/myrepo/.atomcode/memory.md)
- CI 失败时先看 .github/workflows/ci.yml 第 78-92 行
记忆 vs 项目指令文件 vs 会话历史
AtomCode 提供了三种持久化"上下文"的方式,各自定位不同:
.atomcode.md | 记忆(memory.md) | 会话(/resume) | |
|---|---|---|---|
| 适合内容 | 整篇规范、技术栈、详细约定 | 零散事实、个人偏好、命令速查 | 过去的对话和工具调用 |
| 作用范围 | 项目 | 项目 + 全局 | 具体某次会话 |
| 添加方式 | 手动编辑 | /remember 或手动编辑 | 每次对话自动保存 |
| 注入机制 | 启动时注入系统提示 | 每轮注入系统提示 | /resume 时整段恢复 |
| token 预算 | 较大(整篇文档) | 受 4000 字符上限 | 受上下文窗口限制 |
典型组合:
- 团队规范 写在
.atomcode.md里(进 git,所有人共享) - 个人偏好 用
/remember --global(只在你本机) - 项目特定坑 用
/remember(留在项目本地的.atomcode/memory.md,可以选择是否进 git)
关于 .atomcode/memory.md 是否提交进 git:如果团队都用 AtomCode 且记忆是项目知识(如踩过的坑、约定),可以提交;如果是个人开发笔记,可以加进 .gitignore。