子弹按钮 — 用完即抛的上下文武器
问题
当你和 AI 协作时,有时会需要把一份大文件喂给 AI 分析——比如几十 MB 的日志、崩溃堆栈、API 响应。直接粘贴进编辑框会炸上下文(单次上限 16K chars)。你也不想这些一次性的大文本永久留在对话里,污染之后每一层楼的AI记忆。
qqqide 提供一种方式:这一层楼让 AI 看到这些数据,下一层楼这些数据自动消失,只留下 AI 的结论。
那就是子弹按钮。
比喻
子弹一般只会被发射一次,一个子弹大概不会被发射第二次。
我们用子弹象征 用完即抛。
好比一堆 log 就是那颗子弹。你把它发射给 AI,AI 分析完给你结论。这一层楼完结后,log 原文自动从上下文中剥离——只有结论留在对话里,进入下一层。
编辑框 vs 子弹按钮 — 两种键入,两种命运
这是理解子弹按钮最重要的一节。
编辑框(左边那个打字的地方)
- 上限 16K 字符。编辑框下方有一条红色血条,实时显示剩余编辑容量。
- 编辑框里的每一个字,都会永久留在 AI 的上下文里,跨楼层不消失。 - 这就是为什吗要有“编辑容量” 限制。
- 如果你想把一段信息在本任务(quest)层面永久植入 AI 的大脑,请把它填进编辑框。
子弹按钮(右边那个子弹图标)
- 这一层楼让 AI 看见,下一层楼自动消失,只留结论。 原文不进 AI 的长期记忆。
- 上限 3MB(单文件),远超编辑框的 16K。
- 如果你只想让 AI 看一次然后忘掉,就用子弹。
一句话总结
| 编辑框 | 子弹按钮 | |
|---|---|---|
| 上限 | ~16K 字符 | 3MB / 文件 |
| 生命周期 | 永久留在 AI 上下文 | 一层楼,用完即抛 |
| 用途 | 核心指令、持久记忆 | 一次性分析、大文本 |
| 容量指示 | 红色血条 | 无(自动 FIFO) |
编辑框是你给 AI 的永恒记忆。子弹是你给 AI 的一次性情报。两者互补,缺一不可。
按钮在哪
编辑框右侧有一条 16px 宽的竖条,上面有个子弹图标。那就是子弹按钮。
操作步骤
第 1 步:复制内容到剪贴板
把你想要喂给 AI 的内容复制到系统剪贴板(Ctrl+C)。可以是:
- 日志文件内容
- 崩溃堆栈
- API 响应 JSON
- 任何你想让 AI 看一眼就扔的大文本
第 2 步:点击子弹按钮
点击编辑框右侧的子弹图标。你会看到子弹射出动画 + 音效反馈。
第 3 步:自动完成
点击后,底层自动完成以下操作:
| 步骤 | 做什么 |
|---|---|
| ① 读剪贴板 | 从系统剪贴板读取文本 |
| ② 3MB 硬帽 | 超过 3MB 只保留首尾各 1.5MB |
| ③ 写磁盘 | 写入 {项目}/_qqq/bullet/bullet_时间戳_quest_f楼层.txt(_qqq/ 目录结构见qqqide 滴工作空间) |
| ④ FIFO 轮转 | 目录超过 20MB 自动删最老文件 |
| ⑤ 注入编辑框 | 自动插入 📎"文件路径" 到编辑框光标处 |
第 4 步:发送消息
编辑框里已经有了 📎 附件标记,直接回车发送。AI 会读到子弹文件的完整内容。
第 5 步:自动消失
一层楼完结后,上下文压缩系统会自动剥离 [File: ...] 块——子弹原文不进下一层楼的上下文。AI 的分析结论保留,原文丢弃。
子弹 vs 从视口直接点文件 — 底层完全一样
无论你是点击子弹按钮,还是从 AI 视口文件列表单击文件注入链接——编辑框里出现的都是 📎"路径"。完全同一条管线:
📎"路径" 注入编辑框
│
▼
ContentGateway.gate() — 统一 50K 截断(全文 or 首20K+尾20K)
│
▼
喂给 AI
│
▼
楼层封顶 → _buildCompressedBiscuit → 正则全局剥离 [File: ...] 块
│
▼
原文消失,只留 AI 结论
两者在这一层楼的上下文表现完全一样——都是用完即抛。 区别仅在于文件来源:
| 子弹按钮 | 从视口点文件 | |
|---|---|---|
| 文件来源 | 从剪贴板读取 → 新写入 _qqq/bullet/ | 项目里已有的文件 |
| 磁盘生命周期 | 目录 20MB FIFO 自动淘汰 | 文件一直在项目里 |
| 适合场景 | 剪贴板里有大段 log/JSON,不想手动创建文件 | 文件已经在项目里,点一下就行 |
一句话:文件从哪来不一样,但进 AI 上下文后命运完全一样——楼层封顶即剥离。
底层原理
点击子弹按钮
│
▼
① 读剪贴板 (bridge.clipboard.readText)
│
▼
② 硬帽检查 (3MB,超则首尾各 1.5MB)
│
▼
③ 写磁盘 ({项目}/_qqq/bullet/bullet_时间戳_quest_f楼层.txt)
│
▼
④ FIFO 轮转 (目录 > 20MB → 删最老)
│
▼
⑤ insertChipAtCursor → 📎"路径" 注入编辑框
│
▼
⑥ 用户发送 → AI 读取 (经 ContentGateway 截断至 50K chars)
│
▼
⑦ 楼层封顶 → 上下文压缩 → [File: ...] 块全局剥离
│
▼
⑧ 子弹原文消失,只留 AI 结论
限制
- 单文件 3MB 硬帽:超过取首尾各 1.5MB,中间截断
- 目录 20MB FIFO:子弹目录总大小超 20MB 自动删最老文件
- 文件名格式:
bullet_20260716_003042_q1_f3.txt(时间戳 + quest + 楼层号)
如果没有子弹按钮
你只能:
- 把大段 log 直接粘贴进编辑框 → 污染上下文 → 降低 AI 能力
- 手动创建临时文件 → 手动喂给 AI → 楼层完结后手动去删 → 忘了删占磁盘空间
子弹按钮把多个步骤合并成一次点击,最重要滴是明确滴建立了一条界限,界限以左?还是界限以右?