pub struct PreserveConfig {
pub recent_turns: u32,
pub recent_tokens: Option<u64>,
}Expand description
消息保留策略 — 压缩时保留哪些近期内容不总结。
保留的消息保持原始内容,不被 LLM 重新摘要。 这对保留最近的工具调用上下文、用户指令尤其重要。
§两种维度
- turns — 按 user turn 数量保留(opencode tail_turns=2)
- tokens — 按 token 预算保留(oh-my-pi keepRecentTokens=20K)
两者取 交集:先按 turns 选出候选,再按 tokens 预算裁剪。
§Examples
use katu_core::compaction::PreserveConfig;
// 保留最近 2 个 user turn,最多 8K tokens
let config = PreserveConfig::new(2, 8_000);Fields§
§recent_turns: u32保留最近 N 个 user turn(含其后续的 assistant/tool 回复)。
0 = 不按 turn 保留。 来源: opencode DEFAULT_TAIL_TURNS = 2。
recent_tokens: Option<u64>保留最近内容的 token 预算上限。
None = 自动计算(usable_tokens * 0.25,clamp 到 2K~8K)。 来源: oh-my-pi keepRecentTokens=20K, opencode preserve_recent_tokens。
Implementations§
Source§impl PreserveConfig
impl PreserveConfig
Sourcepub fn with_recent_turns(self, turns: u32) -> Self
pub fn with_recent_turns(self, turns: u32) -> Self
设置 turn 数量。
Sourcepub fn with_recent_tokens(self, tokens: u64) -> Self
pub fn with_recent_tokens(self, tokens: u64) -> Self
设置 token 预算。
Trait Implementations§
Source§impl Clone for PreserveConfig
impl Clone for PreserveConfig
Source§fn clone(&self) -> PreserveConfig
fn clone(&self) -> PreserveConfig
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for PreserveConfig
impl Debug for PreserveConfig
Source§impl Default for PreserveConfig
impl Default for PreserveConfig
Source§impl<'de> Deserialize<'de> for PreserveConfig
impl<'de> Deserialize<'de> for PreserveConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for PreserveConfig
impl PartialEq for PreserveConfig
Source§fn eq(&self, other: &PreserveConfig) -> bool
fn eq(&self, other: &PreserveConfig) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl Serialize for PreserveConfig
impl Serialize for PreserveConfig
impl Copy for PreserveConfig
impl Eq for PreserveConfig
impl StructuralPartialEq for PreserveConfig
Auto Trait Implementations§
impl Freeze for PreserveConfig
impl RefUnwindSafe for PreserveConfig
impl Send for PreserveConfig
impl Sync for PreserveConfig
impl Unpin for PreserveConfig
impl UnsafeUnpin for PreserveConfig
impl UnwindSafe for PreserveConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more