Skip to main content
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.
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) -> 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
Returns:
  • 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 check
  • tools: Optional list of tools for token counting
  • model: The Agent/Team model
Returns:
  • 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
Returns:
  • None: Modifies messages in place, setting compressed_content on each tool message

acompress(messages: List[Message]) -> None

Compresses all uncompressed tool results asynchronously. Parameters:
  • messages: List of messages containing tool results to compress
Returns:
  • None: Modifies messages in place, setting compressed_content on each tool message