Context Compression
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