CompressionManager
CompressionManager attributes and methods for compressing tool call results.
The 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. Set to 3 at init when neither this nor compress_token_limit is provided. |
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, response_format) -> 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 modelresponse_format: Optional output schema, used for accurate token counting
Returns:
bool: True if either threshold is met
ashould_compress(messages, tools, model, response_format) -> 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 modelresponse_format: Optional output schema, used for accurate token counting
Returns:
bool: True if either threshold is met
compress(messages, run_metrics) -> None
Compresses all uncompressed tool results.
Parameters:
messages: List of messages containing tool results to compressrun_metrics: OptionalRunMetricsobject; the compression model's usage is accumulated onto it
Returns:
None: Modifies messages in place, settingcompressed_contenton each tool message
acompress(messages, run_metrics) -> None
Compresses all uncompressed tool results asynchronously.
Parameters:
messages: List of messages containing tool results to compressrun_metrics: OptionalRunMetricsobject; the compression model's usage is accumulated onto it
Returns:
None: Modifies messages in place, settingcompressed_contenton each tool message