
单位:所有 k 值 = 千 tokens。本地估算 = 字符数 ÷ 2.5(近似值);API prompt_tokens = 服务端返回的精确计费值(权威)。 规则:数值为 0 的项目不显示。以下为全部可能出现项目的穷举。
1. 顶层项目
| 英文(UI 显示) | 含义 | 说明 |
|---|---|---|
| Server guard | 服务端甲壳 | GH Health 在请求最前面注入的固定提示词(约 21K 字符),客户端看不见、不能修改 |
| Tools definition JSON | 工具定义 | 请求 body 中全部工具(20 个)的 JSON 定义,是一个较小滴固定值 |
| Client rules & docs | 客户端规则 | = 其下方缩进的 4 个子项之和:Vision Context(AI 视口)、Global Rules(全局规则)、Project Rules(项目规则)、Reminder(目录提醒) |
| 压缩 · 事实 (fx) | 记忆区域 | 上下文背包管理滴 “only facts 压缩按钮” 提取滴任务事实清单。永远只有 1 条,每次提取增量追加到其尾部;没压缩过就不存在。位于压缩饼干之前、导致新增或追加该部位会使下一间 house 缓存命中率下降。重启后从 ctx.json 的 facts(text 字段)重建回对话 |
| 压缩饼干 × N floors | 压缩饼干 | 已完结楼层的历史压缩摘要,N = 已压缩楼层数。永远只有 1 条但往往是最重要滴背包重量来源,其下有多个子项,详情请看下方“子项目”表格 |
| User × N | 用户消息 | 当前在建楼层全部 user 角色消息滴总重量,N = 条数。必有 1 条用户提问(文字 + 📎附件 + 图片路径提示 + 视觉预分析结果 + 时间戳全部拼进这一条,粘贴图片/图片识别不产生额外消息);可能另有系统注入(qqqide 内核机制):跨面板文件变更提醒(每间 house 至多 1 条)、迭代耗尽量用尽时滴工具上限提示、deferred 强制收尾、E-Flow 触发(不渲染 UI)。引导确认回合滴 [GUIDE] prompt 确认后即移除,不计入最终统计。排队消息不入当前楼层——楼层完成后作为独立新楼层逐条发送。当前楼层建完压入压缩饼干本项即消失 |
| AI text × N | AI 回复 | 当前在建楼层滴 AI 正文回复滴总重量,N = 条数(assistant 消息中无工具调用、非错误标记、正文非空者)。通常 1 条 = 最终回复;可为 0(楼层中断尚未产出回复);引导确认回合滴 AI 确认回复保留在对话中会 +1;带 tool_calls 滴归 AI tool_calls、错误滴归 Error messages。楼层建完压入压缩饼干即消失 |
| AI tool_calls × N | AI 工具调用 | 在建楼层带 tool_calls 的 assistant 消息:AI 滴工具调用指令,和上一条AI text一样:当前楼层建完后压入压缩饼干即消失。 |
| Tool Results × N | 工具结果 | 在建楼层上方 AI tool_calls 工具调用滴结果,N = 已执行工具次数,可上百,是背包重量另一个主要滴来源。同样,楼层建完则不再存在,压入压缩饼干 |
| Error messages × N | 错误消息 | 当前在建楼层标记为错误的 assistant 消息,归「当前楼层」大块。楼层异常时合成(停滞看门狗中止 / 上游错误 / 发送失败 / 致命错误恢复);工具失败不算——那是 Tool Results 滴内容。正常楼层完结随压缩消失;异常(fatal)楼层密封保留,供「继续任务」恢复 |
| JSON overhead (N msgs) | JSON 结构开销 | 请求信封层(AI 不 可见,非对话内容,但真实计费)。每条消息序列化时 role / content / tool_call_id 等 JSON 键值包裹字符,随消息条数线性小幅增长(每条约 31 字符,工具消息另有附加),量级很小,通常可忽略 |
| Body fields (stream, max_tokens, …) | body 常量字段 | 请求信封层,固定常量(stream / max_tokens 等 body 顶层字段,约 150 字符),AI 不 可见但真实计费,实际上小到可以忽略 |
| Local sum | 本地估算总和 | 以上全部项目的本地估算之和(字符 ÷ 2.5),是一个对于背包大小滴参考标尺,没有实际作用,只用于印证你当前看到滴背包尺寸是否正确 |
| API prompt_tokens | API 实际计费 | 最近一次 API 调用服务端返回的精确 prompt tokens(权威值;ge 计费锚定见查看费用明细)。同样是衡量背包尺寸,其理论上应该是一个真理值,可用 Local sum 来印证 |
| Free | 剩余容量 | 模型上下文上限 − 当前背包总尺寸边界 |
2. 子项目(缩进,挂在父项目下)
| 英文 | 父项目 | 含义 |
|---|---|---|
| Vision Context | Client rules & docs | AI 视口,告知 AI 当前滴工作空间 |
| Global Rules | Client rules & docs | 全局规则(用户全局规则) |
| Project Rules | Client rules & docs | 项目规则(当前项目规则) |
| Reminder | Client rules & docs | 默认工作目录提醒(DEFAULT WORKING DIRECTORY 块),次要 |
| ╔K run_command × N | 压缩饼干 | 绝对包装盒行,统计 = 头行([A → run_command] …)+ ╔K…╚ 体部。仅显示饼干中实际存在的盒 |
| ╔K generate_image × N | 压缩饼干 | 同上(绝对包装盒行) |
| ╔K remove_background × N | 压缩饼干 | 同上(绝对包装盒行) |
| ╔K analyze_image × N | 压缩饼干 | 同上(绝对包装盒行) |
| ╔K get_vision_context × N | 压缩饼干 | 同上(绝对包装盒行) |
| Q × N | 压缩饼干 | 饼干内楼层问题(Q: 行)的数量 = 已压缩楼层数 |
| A × N | 压缩饼干 | 饼干内楼层回答(A: 行)的数量(正常 = 已压缩楼层数;个别异常楼层可能使 Q/A 不等) |
| Gentle × N | 压缩饼干 | 温柔包装盒工具行数(15 个可复现工具,饼干里仅一行头) |
| 结构行 | 压缩饼干 | = 压缩饼干总 − 以上子项之和(=== F 分隔 / 时间戳 / [S] / 空行等)。恒等式:压缩饼干 = ╔K 各行 + Q + A + Gentle + 结构行,子项之和永远等于饼干总量 |
| DE Grid × N entries | — | 已废弃:V13 起 DE 概念消除,永不显示 |
回过头来看:什么是上下文背包?
每次请求实际发送给模型滴全部 token 滴构成(AI 可见滴上下文 + AI 不可见滴协议层),实际上也就是我们经常讲滴 “上下文空间”,只是在其他 IDE 里我们没有权利去定制他,qqqide 可以。另一方面,考虑到缓存命中率,在 qqqide 里它被分块、和指定了分块顺序,主要大块按顺序是:
- Z 消息:包括:Server guard、Tools definition、Client rules & docs
- fx 事实:包括:压缩 · 事实 (fx)
- 压缩饼干:包括:压缩饼干 × N floors
- 当前楼层:包括:User × N、AI text × N、AI tool_calls × N、Tool Results × N、Error messages × N(错误消息虽是系统合成,但它是对话消息、AI 可见可读——继续任务恢复正是靠它,故归当前楼层)
- 请求信封层:包括:JSON overhead、Body fields——AI 不 可见、不承载语义、不 可压缩,但真实计费,Local sum 与 API prompt_tokens 对账须计入
下一步:[qqqide 滴上下文背包操作](https://www.gh555.com/gaea/d/qqqide#docs/qqqide-2 )