提炼模式
把一个漫长的 AI 编程会话提炼成值得保留的部分——一份干净的文档,或一个可复用的提示词——方法是在一个分栏编辑器中挑选消息,并导出结果。
提炼模式(Refine Mode,⌘3)把会话记录当作原材料来对待。你保留携带信号的消息,丢弃噪声,把需要收紧的地方改好,再插入你自己的衔接性注释,然后导出 Markdown 或一个纯提示词。一切都在你的浏览器中、针对已经导入的消息进行;原始会话日志永远不会被触碰,也不会有任何内容被上传。左栏是带有逐条消息控件的完整对话记录;右栏是一个实时的 Compressed Preview,展示实际将会导出的内容。
分栏视图
- 左侧——对话记录。 每条消息都是一行,标注了它的角色以及一个逐条消息的令牌徽章。这里是你进行挑选的地方。
- 右侧——Compressed Preview。 你的导出将确切包含的内容,随你的编辑而更新。三个视图标签控制它显示什么:
- 👁 Full —— 每一条消息,被删除的会带上删除线,让你在上下文中看清自己剪掉了什么。
- ≶ Changes Only —— 只显示你删除、编辑或插入过的消息,便于复查你的改动。
- ⌦ Hide Deleted —— 只显示保留的消息,也就是最终落地时那份干净的导出。
消息标签准确对应角色,来自 src/kinds.js 中唯一的规范映射——与 Playback 使用的是同一套词汇(User、Assistant、Thinking、Tool Call、Tool Result、Inserted)。Refine 会把它们渲染成大写标签,但用词绝不会与应用其余部分发生偏离。
令牌徽章反映的是导出体积,而非上下文窗口。 逐条消息和总计的令牌计数估算的是导出文档的体积(大致为字符数 ÷ 4),其中工具调用会被截断为单行预览。这不是模型的上下文窗口用量——关于那个,请参见 会话洞察。
操作
每一行都有四种操作,既可作为按钮使用,也可在该行被选中时作为单键快捷键使用:
| 按键 | 操作 | 效果 |
|---|---|---|
| K | Keep | 取消删除该消息(标记为包含)。 |
| D | Delete | 将该消息从导出中排除(带删除线,而非移除)。 |
| E | Edit | 在预览栏中打开一个内联文本框;失焦时提交,Esc 取消。你也可以双击任意预览块来编辑它。 |
| I | Insert | 在所选行之后添加一条空的 Inserted 注释,供你输入自己的衔接性文字。 |
用 ↑/↓(或 j/k)移动选中项。按 K 或 D 会前进到下一行,因此你可以单手自上而下地逐条分拣。
噪声一开始就处于已删除状态
工具结果和思考块占据了对话记录体量的大部分,而它们很少属于一份提炼后的成品,因此它们一开始就是删除状态。如果某个特定的工具结果或思考值得保留,选中它并按 K。其余的一切——用户回合、助手回合、工具调用——一开始都是保留状态。
批量控件
- Keep All / Delete All / Insert at start 按钮位于对话记录上方。
- 当会话包含不止一种消息类型时,会出现 By type 切换标签。每个标签显示一种类型及其计数(例如
Tool Result 214);点击它会一次性把整个类型翻入或翻出——这是快速地、比方说,去掉每一个工具调用或找回所有助手回合的办法。
状态栏
底部的状态栏会追踪你的编辑会话并驱动导出:
- Undo / Redo / Reset —— ⌘Z 撤销,⇧⌘Z 重做,重置控件(⟲)恢复到原始的对话记录。在一次编辑内部打字算作单个撤销步骤,而非每次按键一个。
- 令牌统计 ——
Original → Compressed → Saved,外加一条显示你已削减令牌百分比的进度条。它会随你删除而填充。 - 改动计数 —— 已删除 / 已编辑 / 已插入(− / ✎ / +)。
导出
Export 菜单(或用 ⌘S 走 Markdown 默认项)会把文件直接写到你的机器上:
- 📄 Export Markdown —— 一份带标题的文档,配有来源/日期/保留数的表头,随后每条保留的消息都放在一个
### Role标题之下。适合做文档、PR 或会话小结。 - ⌁ Export as Prompt —— 仅包含保留消息的文本,以空行连接,没有表头或标签。适合用来引导一个全新的 AI 会话或作为一个可复用的提示词模板。
两者都只导出对话记录顺序中保留的那些消息,所以你在 ⌦ Hide Deleted 中看到的,正是你会得到的。