跳转到内容
Crystal CodeDocs
简简体中文

压缩

Crystal 不缩减上下文。Crystal Code 分两步做这件事。

每次模型调用之前,旧的成功工具结果可以替换为 Tool result omitted after compaction.。除非设置了 microCompaction,否则它关闭。它不调用模型,也不改变屏幕或已保存的存档。

字段 保留什么
protectTurns 最新的用户回合
protectTokens 这些回合之后,更早成功结果中最新的部分
minimumTokens 更早的结果只有在被移除文本大于此值时才替换

/compact micro 切换它,或设置 on 或 off。它写入 config.json,且不总结。回合或压缩进行中时被拒绝。/status 只在它打开时显示 Microcompaction 行。

估计的记录大小,或上一轮模型用量,超过模型窗口的 compactionThreshold 与可用窗口(上下文减去保留输出)中的较小者时,宿主压缩。

  1. 在受保护的最近区间之外清除旧工具结果,当这样能释放足够 token 时。
  2. 请模型对较早回合做结构化摘要,折叠任何先前摘要,并逐字保留最近尾部。
  3. 无法生成摘要且没有其他内容可缩减时停止。压缩不会循环。

因达到输出上限而停止的摘要不被存储。摘要请求保留 16384 个 token,或会话模型更小的 maxTokens,且从不超过摘要窗口的一半。逐字尾部最多 32000 个 token。

CTX 百分比是上一轮模型,不是一个回合中各轮的总和。记录打印 compacting context...,进度行显示 Compacting。画面继续绘制。

/compact(别名 /summarize)立即运行,不等待阈值。保留的尾部已经包含每个回合时,它仍然总结最新用户回合之前的一切。该回合之前没有任何内容时,打印 Nothing earlier to compact。回合进行中时被拒绝。

命令 效果
/compact model 显示 Compaction model Off 或 On <provider> <model>。打开或关闭开关,或选择 <model> 或 <provider> <model> 并打开它
/compact thinking 循环或设置该模型的档位
/compact summary 切换 showCompactionSummary。打印 Compaction summary On 或 Off。on 或 off 设置它
/compact auto 对 showAutomaticCompactionSummary 做同样的事。打印 Automatic compaction summary。automatic 是同一条命令
/compact micro 切换移除旧工具结果

model 和 thinking 在回合或压缩期间被拒绝。这些显示命令写入 config.json,且不总结。任何其他参数被拒绝。Tab 先补全 model、thinking、summary、auto 和 micro,然后是 on 和 off。

开关关闭或省略了 compactionModel 时,摘要使用会话模型,请求不带推理。开关打开时,摘要请求使用单独的客户端,包括 /compact,以及附带问题在回答前可能做的摘要。附带回答仍使用会话模型。更改会话模型不会重定向已打开的压缩客户端。

触发条件、保留尾部和 CTX 百分比留在会话窗口上。摘要必须适合会话窗口与压缩模型声明窗口中的较小者。放不下时,宿主保持现有的不写摘要的路径。/status 只在开关打开时增加 Compaction model 行。

成功的压缩写入会话文件。屏幕保留较早的行。showCompactionSummary 打开时(默认如此),手动 /compact 在标题为 Earlier context 的圆角面板中打印摘要。自动压缩打印 Compacted context,并在 showAutomaticCompactionSummary 打开时显示同一面板。该开关默认关闭。/resume 恢复完整对话。模型从摘要和尾部继续,只刷新活动系统提示。