> ## Documentation Index
> Fetch the complete documentation index at: https://agno-v2-codex-docs-audit-20260719-0149.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 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 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
