96SEO 2026-08-09 08:52 1
代码入口与调用位置:

主循环在 query.ts:L369-L426 :
messagesForQuery = await applyToolResultBudget
snipCompactIfNeeded
const microcompactResult = await deps.microcompact(
messagesForQuery。toolUseContext,querySource,)
messagesForQuery = microcompactResult.messages
大结果落盘预览>> History Snip>> microCompact>> Collapse>> AutoCompact>> API
microCompact 是一次 API 请求前的轻量清理,并先于重型摘要压缩。
在 microCompact.ts:L40-L50 :候选工具包括 Read、Bash、Grep、Glob、网络搜索/抓取、Edit、Write。
接下来在 microCompact.ts:L226-L240 扫 Assistant 消息。按出现顺序收集这些工具的 tool_use.id
// Walk messages and collect tool_use IDs whose tool name is in COMPACTABLE_TOOLS
function collectCompactableToolIds: string {
const ids: string =
for {
if ) {
for {
if ) {
ids.push
}
}
}
}
return ids
}
"年龄" 即候选工具调用在历史中的顺序,非内容语义或时间戳。
入口为 microCompact.ts:L253-L292. 它必须同时满足:
mod.isCachedMicrocompactEnabled
mod.isModelSupportedForCacheEditing
isMainThreadSource
User Pain Point: "我无法确定哪些条件会触发 Cached Microcompact,我担心错误配置会导致关键信息被意外删除!"
进入后 会扫描 user message 中的 tag_result :
`microCompact.ts:L446-L529` 是 time‑based 微压缩。触发条件为 `gapMinutes>= config.gapThresholdMinutes`。说到默认配置,
.
enabled: false,gapThresholdMinutes:
keepRecent:
启用且空闲超过阈值后:
text
const keepSet = new Set)
const clearSet = new Set))
即保留最近 N 个候选。旧的全部替换为:
text
''
因为超过一小时服务端 cache 大概率已过期。此时直接改本地内容不会额外损失一个本来可复用的热缓存。说起来,这条方法最接近你图里“缓存已失效,直接清理历史”的解释。
.
user : "帮我看下 config.ts 有没有硬编码端口"
assistant : tool_use Read id=toolu_A
user : tool_result tool_use_id=toolu_A "export const PORT = ..."
assistant : tool_use Grep id=toolu_B
user : tool_result tool_use_id=toolu_B "config.ts:: PORT = ..."
assistant : tool_use Bash id=toolu_C
user : tool_result tool_use_id=toolu_C "...一大堆匹配"
assistant : tool_use Read id=toolu_D
user : tool_result tool_use_id=toolu_D "app.listen ..."
assistant : "端口在 config.ts 硬编码为 …被 server.ts 引用"
user : "把它改成从环境变量读"
.
`collectCompactableToolIds` 扫 Assistant 消息,按出现顺序拿到白名单工具的 ID:
.
compactableToolIds =
↑最老 ↑最新
这就是“年龄”:列表里越靠前越老。
`microCompact.ts:L313-L332` 再扫 User 消息,把能对上白名单 `tool_use` 的 `tool_result` 登记进 `state`。至于随后,
. getToolResultsToDelete: keepRecent = -> 保留toolu_C,toolu_Dcandidates 中较老且“已发送过 API”的 ->toolu_A。toolu_BtoolsToDelete =
注意 使用者痛点:- 当某个 result 尚未成功返回一次时它不会被纳入删除资格,从而避免意外丢失数据。但这也代表着你必须确认每个步骤都成功完成。否则可能出现 “看似没有变化,却消失了某些结果”。
.
return {
messages,compactionInfo:{
pendingCacheEdits:{
trigger:'auto'。deletedToolIds:,baselineCacheDeletedTokens:
},},}
UI 和磁盘里 userPainPoint:- 开发者看到完整内容,但实际 token 用量却减少。如果你想快速验证是否真的节省了 token。需要查看 API wire 或日志,而不是仅凭 UI。
This is where real compression happens—deletion instructions are injected into last User message and each retained result gets a ``cache_reference`. Example wire payloads follow: .
Cache reference attachment:{ "type"这方面,"user","content":}]}Deletion instruction injection:{ 至于"type"。"user","content":}}
The deletion edits ensure server only stores recent results while preserving prefix context for model.
对比两种方法
方法 本地存储 删除方式 前缀是否受影响 Cached Microcompact 保持原样 插入 ✅ 保持 Time‑Based 为 无 ❌ 前缀被
- Cached 方法更适合需要保持完整上下文但又想减少 token 的场景。
- Time‑Based 更适合长时间不活动后彻底刷新历史。
Demo Summary
在示例中,模型实际看到的是:
- ToolA 与 ToolB 被隐藏。
- ToolC 与 ToolD 保持可见并计费。
该轮向服务端省掉约 0.7 KB 的缓存 token,而前缀不被打断——这正是你截图中所说 “移除点之后缓存失效” 与实际情况之间的区别所在。
了解微压缩的细节能帮助你:
- 精准控制 Token 使用 – 避免因冗余工具输出浪费预算。
- 稳定缓存行为 – 防止无预警的 Cache Breaks。怎么说呢,
- 提高调试效率 – 清晰知道哪些 ID 已经安全删除或仍然保留。
如果还有问题或想进一步调整。你可以检查配置文件里的阈值,并结合日志观察实际效果——这一步往往能让整个程序更稳健、更易维护。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback