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

ParameterTypeDefaultDescription
modelOptional[Model]NoneModel used for compression
compress_tool_resultsboolTrueFlag to enable tool result compression
compress_tool_results_limitOptional[int]NoneNumber of uncompressed tool results before compression triggers. Set to 3 at init when neither this nor compress_token_limit is provided.
compress_token_limitOptional[int]NoneNumber of tokens before compression triggers.
compress_tool_call_instructionsOptional[str]NoneCustom prompt for compression. If not provided, uses the default compression prompt
statsDict[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 check
  • tools: Optional list of tools for token counting
  • model: The Agent/Team model
  • response_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 check
  • tools: Optional list of tools for token counting
  • model: The Agent/Team model
  • response_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 compress
  • run_metrics: Optional RunMetrics object; the compression model's usage is accumulated onto it

Returns:

  • None: Modifies messages in place, setting compressed_content on each tool message

acompress(messages, run_metrics) -> None

Compresses all uncompressed tool results asynchronously.

Parameters:

  • messages: List of messages containing tool results to compress
  • run_metrics: Optional RunMetrics object; the compression model's usage is accumulated onto it

Returns:

  • None: Modifies messages in place, setting compressed_content on each tool message