fit_messages
Reduce a chat message array to fit within a token budget by dropping least important messages, preserving system messages and specified first/last messages. Choose from drop-oldest, drop-middle, or priority strategies.
Instructions
Drop messages from the input array until the total is under maxTokens. Three strategies: drop-oldest (default), drop-middle, priority (uses each message's priority field). Always returns a structured result with token counts before and after; never throws across the wire.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Optional model name for estimator selection. | |
| messages | Yes | Chat messages to fit. | |
| overhead | No | Per-message overhead in tokens. | |
| strategy | No | Drop strategy. Default drop-oldest. | |
| maxTokens | Yes | Token budget the result must come in under. | |
| preserveLastN | No | Never drop the last N messages of the input array. Default 0. | |
| preserveFirstN | No | Never drop the first N messages of the input array. Default 0. | |
| preserveSystem | No | Default true: never drop messages with role === "system". |