CompressionManager is responsible for compressing tool call results to save context space while preserving critical information.
CompressionManager Attributes
| Parameter | Type | Default | Description |
|---|---|---|---|
model | Optional[Model] | None | Model used for compression |
compress_tool_results | bool | True | Flag to enable tool result compression |
compress_tool_results_limit | Optional[int] | None | Number of uncompressed tool results before compression triggers. |
compress_token_limit | Optional[int] | None | Number of tokens before compression triggers. |
compress_tool_call_instructions | Optional[str] | None | Custom prompt for compression. If not provided, uses the default compression prompt |
stats | Dict[str, Any] | {} | Tracks compression statistics |
CompressionManager Methods
should_compress(messages, tools, model) -> bool
Checks whether compression should be triggered based on configured thresholds.
Parameters:
messages: List of messages to checktools: Optional list of tools for token countingmodel: The Agent/Team model
bool: True if either threshold is met
ashould_compress(messages, tools, model) -> bool
Checks whether compression should be triggered based on configured thresholds asynchronously.
Parameters:
messages: List of messages to checktools: Optional list of tools for token countingmodel: The Agent/Team model
bool: True if either threshold is met
compress(messages: List[Message]) -> None
Compresses all uncompressed tool results.
Parameters:
messages: List of messages containing tool results to compress
None: Modifies messages in place, settingcompressed_contenton each tool message
acompress(messages: List[Message]) -> None
Compresses all uncompressed tool results asynchronously.
Parameters:
messages: List of messages containing tool results to compress
None: Modifies messages in place, settingcompressed_contenton each tool message