会话与撤销
AtomCode 默认持久化每一次对话,允许你随时恢复、继续、清空或压缩。一条 /undo 就能把对话记忆回退到此前任意一轮。
会话的生命周期
每次启动 atomcode 都会自动创建一个会话,会话包含:
- 完整消息历史(用户 prompt、AI 回复、工具调用)
- 关联的工作目录
- 关联的 provider / 模型
- Token 消耗统计
- 该会话中所有文件编辑的 file-history 快照
会话数据落盘在 ~/.atomcode/sessions/ 下,按项目(工作目录 hash)分组存储。
恢复会话
命令行继续上次
atomcode -c # 或 atomcode --continue
最常见的需求:接着昨天停下来的地方继续。
TUI 内切换会话
/resume
弹出会话选择器,按时间倒序显示当前项目的历史会话,可以快速跳到任一会话。每一条都带有最近的用户提问作为标题,便于识别。
新开一个干净会话
/session
在不切换工作目录的前提下开启全新的上下文。适合"刚刚那个任务已经收尾,我要开始完全不相关的另一件事"。
后台会话(/bg)
需要同时跟进多条任务、又不想丢失当前对话上下文?/bg 把当前会话挪到后台、打开一个全新前台,随时可以切回去。最多 16 个并行后台槽位。
| 命令 | 作用 |
|---|---|
/bg | 把当前会话送到后台,打开新的前台 |
/bg list(别名 /bg ls) | 列出所有后台会话:编号、ID、状态、创建时间、摘要 |
/bg <N> | 恢复第 N 号后台为前台(当前前台会被换下到后台) |
/bg drop <N> | 丢弃第 N 号后台会话 |
/bg help(别名 -h、--help) | 显示内置帮助 |
会话状态
/bg list 的"状态"列对应会话在后台时的运行情况:
- 运行中 —— 模型还在执行,工具调用 / 输出在后台继续推进
- 空闲 —— 模型轮次跑完,等你的下一条 prompt
- 已完成 —— 会话已经显式结束
- 已取消 / 错误 —— 被中断或后台运行时出错
所以 /bg 后台并不只是"挂起"——模型真的会在后台继续干活,切回来时直接拿到结果。
/background <任务> —— 一次性后台派发
如果你不想专门切换前后台、只是"顺手让它跑一下查个东西",用 /background 兼容入口:
/background 列出 src 下未使用的依赖
会在一个 /bg 槽位里启动一次性任务(默认配置为只读工具子集,不污染主对话上下文)。跑完后用 /bg list 看状态,/bg <N> 切过去读结果,/bg drop <N> 丢弃。
主前台正在调试 A 模块,模型一边改一边跑 cargo check(耗时)。这时想到要顺便重构 B 模块——直接 /bg 切到新前台开始 B;A 那边的 build 在后台跑完状态切到"已完成",/bg 1 切回去拿结果。
清空 vs 压缩 vs 新建
| 命令 | 保留历史 | 保留会话 ID | 何时使用 |
|---|---|---|---|
/clear | 否 | 是 | 想在同一会话里"重置对话",保留会话条目便于以后 /resume |
/compact | 部分(摘要) | 是 | 上下文快撑爆,但不想丢失之前的脉络 |
/session | 另起一段 | 否(新 ID) | 开始完全不相关的新任务 |
对话记忆回退 /undo
/undo 把对话记忆回退到某一轮之前,删除那一轮及其后的全部消息,并把那一轮你输入的 prompt 还原回输入框,方便你修改后重发。
/undo # 回退最后一轮
/undo N # 回退到第 N 轮(N 从 1 开始,只计你真实输入的轮次)
回退后,scrollback 里被删轮次的分隔线会一并清掉,会话也会立即落盘——下次 /resume 看到的就是回退后的状态。
/undo 只回滚对话记忆,不会恢复磁盘上的文件。如果那几轮里 AI 改过代码,这些改动仍保留在工作区——需要还原请用 /diff 查看后手动处理,或借助 git。当前回合进行中时无法 /undo,请先按 Esc 取消。
查看和清理成本
/cost
显示当前会话累计输入 / 输出 tokens。当数字逼近 provider 的 context_window 时:
- 用
/compact压缩历史,让早期消息变成摘要 - 或者直接
/session开新会话 - 不想用上下文窗口中的工具调用结果,可以让模型在 prompt 里明确"别再读那些大文件"
多项目工作流
AtomCode 的会话是按工作目录分组的。切换目录的推荐方式:
- 从命令行启动时用
-C指定 - 运行中用
/cd切换,default_workdir会自动落盘
下一步
- 项目指令文件 —— 用
.atomcode.md为每个项目固化上下文