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_limitint3Number of uncompressed tool results 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 (messages_compressed, original_size, compressed_size)

CompressionManager Methods

should_compress(messages: List[Message]) -> bool

Checks whether compression should be triggered based on the number of uncompressed tool results. Parameters:
  • messages: List of messages to check
Returns:
  • bool: True if the number of uncompressed tool results meets or exceeds compress_tool_results_limit

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