Expand description
Context Management Module
This module provides comprehensive context management functionality aligned with
- Token estimation for different content types
- Dynamic context window management
- Intelligent message summarization
- Message compression
- Prompt caching support
- Message priority sorting
- File mention resolution
- AGENTS.md parsing
§Architecture
The module is organized into the following components:
types: Core type definitions (TokenUsage, ContextConfig, ConversationTurn, etc.)token_estimator: Token estimation for different content typeswindow_manager: Dynamic context window managementsummarizer: Intelligent message summarizationcompressor: Message compressioncache_controller: Prompt caching supportpriority_sorter: Message priority sortingfile_mention: File mention resolutionagents_md_parser: AGENTS.md parsingmanager: Enhanced context manager
§Quick Start
ⓘ
use aster::context::{EnhancedContextManager, ContextConfig, TokenEstimator};
// Create a context manager with default configuration
let mut manager = EnhancedContextManager::new(ContextConfig::default());
manager.set_system_prompt("You are a helpful assistant.");
// Add conversation turns
manager.add_turn(user_message, assistant_message, Some(usage));
// Get messages for API call
let messages = manager.get_messages();
// Check context usage
let usage = manager.get_context_usage();
println!("Context usage: {:.1}%", usage.percentage);§Token Estimation
ⓘ
use aster::context::TokenEstimator;
let tokens = TokenEstimator::estimate_tokens("Hello, world!");
let message_tokens = TokenEstimator::estimate_message_tokens(&message);§Message Compression
ⓘ
use aster::context::{MessageCompressor, CompressionConfig};
let compressed = MessageCompressor::compress_code_block(&code, 50);
let compressed_msg = MessageCompressor::compress_message(&message, &config);Re-exports§
pub use token_estimator::TokenEstimator;pub use window_manager::ContextWindowManager;pub use window_manager::MODEL_CONTEXT_WINDOWS;pub use compressor::MessageCompressor;pub use compressor::DEFAULT_CODE_BLOCK_MAX_LINES;pub use compressor::DEFAULT_FILE_CONTENT_MAX_CHARS;pub use compressor::DEFAULT_TOOL_OUTPUT_MAX_CHARS;pub use pruner::ProgressivePruner;pub use summarizer::Summarizer;pub use summarizer::SummarizerClient;pub use summarizer::SummarizerResponse;pub use summarizer::DEFAULT_SUMMARY_BUDGET;pub use summarizer::MAX_SUMMARY_LENGTH;pub use summarizer::SUMMARY_SYSTEM_PROMPT;pub use cache_controller::CacheController;pub use cache_controller::CacheEligibility;pub use priority_sorter::PrioritySorter;pub use file_mention::FileMentionResolver;pub use file_mention::COMMON_EXTENSIONS;pub use agents_md_parser::AgentsMdParser;pub use manager::EnhancedContextManager;pub use types::AgentsMdConfig;pub use types::CacheConfig;pub use types::CacheControl;pub use types::CacheSavings;pub use types::CacheStats;pub use types::CacheType;pub use types::CodeBlock;pub use types::CompressionConfig;pub use types::CompressionDetails;pub use types::CompressionResult;pub use types::ContextConfig;pub use types::ContextError;pub use types::ContextExport;pub use types::ContextStats;pub use types::ContextUsage;pub use types::ContextWindowStats;pub use types::ConversationTurn;pub use types::FileMentionResult;pub use types::MessagePriority;pub use types::PrioritizedMessage;pub use types::PruningConfig;pub use types::PruningLevel;pub use types::ResolvedFile;pub use types::TokenUsage;pub use types::CHARS_PER_TOKEN_ASIAN;pub use types::CHARS_PER_TOKEN_CODE;pub use types::CHARS_PER_TOKEN_DEFAULT;pub use types::CODE_BLOCK_MAX_LINES;pub use types::FILE_CONTENT_MAX_CHARS;pub use types::TOOL_OUTPUT_MAX_CHARS;
Modules§
- agents_
md_ parser - AGENTS.md Parser
- cache_
controller - Prompt Caching Controller Module
- compressor
- Message Compressor Module
- file_
mention - File Mention Resolver
- manager
- Enhanced Context Manager Module
- priority_
sorter - Message Priority Sorter Module
- pruner
- Progressive Pruner Module
- summarizer
- Summarizer Module
- token_
estimator - Token Estimator Module
- types
- Core type definitions for the context management module.
- window_
manager - Context Window Manager Module
Type Aliases§
- Context
Result - Result type for context operations