compact_context
Summarizes and replaces the oldest messages to keep requests under the model context window and prevent prompt-too-long errors.
Instructions
Replace the oldest messages with a summary instead of dropping them.
The summary comes from summary when given, otherwise from the local model
via model/base_url (or the CONTEXT_SHRINK_MODEL / CONTEXT_SHRINK_BASE_URL
environment variables). With neither, the tool returns a needs_summary
plan plus the exact prompt, and no message content is echoed back.
Example call::
compact_context({
"messages": [...],
"keep_last": 8,
"threshold": 0.8,
"summary": "…", # omit to summarise with the model
})
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"messages": "<messages>"
},
"name": "compact_context"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | ||
| model | No | ||
| api_key | No | ||
| summary | No | ||
| base_url | No | ||
| messages | Yes | ||
| keep_last | No | ||
| threshold | No | ||
| summary_role | No | system | |
| max_context_tokens | No | ||
| summary_budget_tokens | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |