pub struct AutoCompactConfig {
pub token_threshold: usize,
pub tool_output_max_chars: usize,
pub keep_last: usize,
pub compact_strategy: CompactStrategy,
pub hard_limit_tokens: Option<usize>,
pub hard_limit_strategy: CompactStrategy,
pub custom_compactor: Option<VmValue>,
pub mask_callback: Option<VmValue>,
pub compress_callback: Option<VmValue>,
}Expand description
Configuration for automatic transcript compaction in agent loops.
Two-tier compaction:
Tier 1 (token_threshold / compact_strategy): lightweight, deterministic
observation masking that fires early. Masks verbose tool results while
preserving assistant prose and error output.
Tier 2 (hard_limit_tokens / hard_limit_strategy): aggressive LLM-powered
summarization that fires when tier-1 alone isn’t enough, typically as the
transcript approaches the model’s actual context window.
Fields§
§token_threshold: usizeTier-1 threshold: estimated tokens before lightweight compaction.
tool_output_max_chars: usizeMaximum character length for a single tool result before microcompaction.
keep_last: usizeNumber of recent messages to keep during compaction.
compact_strategy: CompactStrategyTier-1 strategy (default: ObservationMask).
hard_limit_tokens: Option<usize>Tier-2 threshold: fires when tier-1 result still exceeds this.
Typically set to ~75% of the model’s actual context window.
When None, tier-2 is disabled.
hard_limit_strategy: CompactStrategyTier-2 strategy (default: Llm).
custom_compactor: Option<VmValue>Optional Harn callback used when a strategy is custom.
mask_callback: Option<VmValue>Optional callback for domain-specific per-message masking during
observation mask compaction. Called with a list of archived messages,
returns a list of Option<String> — Some(masked) to override the
default mask for that message, None to use the default.
This lets the host (e.g. burin-code) inject AST outlines, file
summaries, etc. without putting language-specific logic in Harn.
compress_callback: Option<VmValue>Optional callback for per-tool-result compression. Called with
{tool_name, output, max_chars} and returns compressed output string.
When set, used INSTEAD of the built-in microcompact_tool_output.
This allows the pipeline to use LLM-based compression rather than
keyword heuristics.
Trait Implementations§
Source§impl Clone for AutoCompactConfig
impl Clone for AutoCompactConfig
Source§fn clone(&self) -> AutoCompactConfig
fn clone(&self) -> AutoCompactConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more