pub struct CompactionResult {
pub summary: String,
pub short_summary: Option<String>,
pub trigger: CompactTrigger,
pub tokens_before: u64,
pub tokens_after: Option<u64>,
pub messages_compacted: usize,
pub messages_kept: usize,
pub success: bool,
}Expand description
压缩执行结果 — 一次压缩操作完成后的数据。
由 katu-agent 层的压缩逻辑产出,用于:
AgentEvent::CompactionEnded事件- 持久化到 session 历史
- UI 展示压缩效果
§Examples
use katu_core::compaction::{CompactionResult, CompactTrigger};
let result = CompactionResult {
summary: "User asked about Rust ownership...".into(),
short_summary: Some("Discussed Rust ownership".into()),
trigger: CompactTrigger::Auto,
tokens_before: 150_000,
tokens_after: Some(5_000),
messages_compacted: 42,
messages_kept: 8,
success: true,
};
assert!(result.success);Fields§
§summary: String压缩生成的完整摘要文本。
short_summary: Option<String>短摘要(用于 UI 显示,类似 PR title)。
来源: oh-my-pi shortSummary。
trigger: CompactTrigger触发原因。
tokens_before: u64压缩前的 prompt token 数。
tokens_after: Option<u64>压缩后的估计 token 数。
None = 未测量。
messages_compacted: usize被压缩掉的消息数。
messages_kept: usize保留不变的消息数(recent turns)。
success: bool是否成功。
false 时 summary 可能包含错误信息。
Implementations§
Source§impl CompactionResult
impl CompactionResult
Sourcepub fn tokens_saved(&self) -> Option<u64>
pub fn tokens_saved(&self) -> Option<u64>
计算节省的 token 数。
Sourcepub fn compression_ratio(&self) -> Option<f64>
pub fn compression_ratio(&self) -> Option<f64>
计算压缩比 (0.0 ~ 1.0)。
0.0 = 完全没减少,1.0 = 全部压缩掉。
Trait Implementations§
Source§impl Clone for CompactionResult
impl Clone for CompactionResult
Source§fn clone(&self) -> CompactionResult
fn clone(&self) -> CompactionResult
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 CompactionResult
impl Debug for CompactionResult
Source§impl<'de> Deserialize<'de> for CompactionResult
impl<'de> Deserialize<'de> for CompactionResult
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 CompactionResult
impl PartialEq for CompactionResult
Source§fn eq(&self, other: &CompactionResult) -> bool
fn eq(&self, other: &CompactionResult) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl Serialize for CompactionResult
impl Serialize for CompactionResult
impl StructuralPartialEq for CompactionResult
Auto Trait Implementations§
impl Freeze for CompactionResult
impl RefUnwindSafe for CompactionResult
impl Send for CompactionResult
impl Sync for CompactionResult
impl Unpin for CompactionResult
impl UnsafeUnpin for CompactionResult
impl UnwindSafe for CompactionResult
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