壓縮
Crystal 不縮減上下文。每次模型呼叫之前,微壓縮可以把舊的成功工具結果替換為 Tool result omitted after compaction.。除非設定了 microCompaction,否則它關閉。最新的 protectTurns 個使用者回合會保留,然後保留更早成功結果中最新的 protectTokens。更早的內容只有在被移除文字的估計大小超過 minimumTokens 時才會被替換。它不呼叫模型,也不改變畫面或已儲存的封存。/compact micro 切換它或設定 on 或 off,寫入 config.json,且不總結。回合或壓縮正在執行時它會被拒絕。/status 只在它開啟時顯示 Microcompaction 列。
當估計的記錄大小或上一輪模型用量超過模型上下文視窗的 compactionThreshold 與可用視窗(上下文減去保留輸出)中的較小者時,主機會:
- 在受保護的最近區間之外清除舊工具結果,當這樣能釋放足夠 token 時。因達到輸出上限而停止的摘要不會被儲存。摘要請求保留 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。/compact summary on 或 off 設定它。/compact auto 對 showAutomaticCompactionSummary 做同樣的事,並列印 Automatic compaction summary。automatic 是同一條命令。這些顯示命令寫入 config.json,且不總結。任何其他參數都會被拒絕,且不總結。Tab 先補全 model、thinking、summary、auto 和 micro,然後是 on 和 off。壓縮模型開關關閉或省略了 compactionModel 時,摘要使用工作階段模型,請求省略推理。開關開啟時,摘要請求使用該提供商和模型的單獨用戶端,包括 /compact 以及附帶問題在回答前可能進行的摘要。附帶回答仍使用工作階段模型。更改工作階段模型不會重定向已開啟的壓縮用戶端。觸發條件、保留尾部和 CTX 百分比留在工作階段視窗上。摘要本身必須適合工作階段視窗與壓縮模型宣告視窗中的較小者;如果不適合,主機保持現有的「無摘要」路徑。/status 只在開關開啟時增加 Compaction model 列。成功的壓縮會寫入工作階段檔案。畫面保留較早的列。showCompactionSummary 開啟時(預設如此),手動 /compact 在這些列下方的圓角面板中印出摘要,標題為 Earlier context。自動壓縮印出 Compacted context,並在 showAutomaticCompactionSummary 開啟時顯示同一面板。該開關預設關閉。/resume 恢復該完整對話,而模型從摘要和尾部繼續,並只重新整理活動的系統提示。