Skip to content
Get started

Compact an objective

POST/v1/objectives/{objectiveId}/compact

Triggers compaction on a running objective. Optionally override the variation's compaction config.

Path ParametersExpand Collapse
objectiveId: string
Body ParametersJSONExpand Collapse
compactionConfig: optional AgentVariationSpecCompactionConfig { summarization, toolResultClearing, triggerThreshold }

CompactionConfig defines how context window compaction behaves for objectives using this variation.

summarization: optional CompactionConfigSummarizationStrategy { instructions }

SummarizationStrategy configures LLM-powered summarization of older conversation turns.

instructions: optional string

Custom instructions that guide what the summarizer preserves. Replaces the default summarization prompt entirely. Example: "Preserve all code snippets, variable names, and technical decisions."

toolResultClearing: optional CompactionConfigToolResultClearingStrategy { preserveRecentResults }

ToolResultClearingStrategy configures clearing of older tool result content.

preserveRecentResults: optional number

Number of most recent tool call results to keep intact. Older tool results have their content replaced with "[result cleared]" while preserving the assistant tool call message (function name, arguments). Default: 2

formatint32
triggerThreshold: optional number

Trigger threshold as a percentage of the model's context window (0.0 to 1.0). When input tokens reach this percentage of the model's limit, compaction triggers. Default: 0.75 (75%)

formatfloat
ReturnsExpand Collapse
contextWindow: optional ObjectiveContextWindowData { completionTokens, objectiveId, previousWindowContinueInstructions, 2 more }

The new context window created by the compaction

completionTokens: optional number

A calculated value for how many completion tokens (output tokens) have been used in this context window

formatint32
objectiveId: optional string

The objective's ID that this window belongs to

previousWindowContinueInstructions: optional string

The instructions for this window to continue from a previous window's chat history.

promptTokens: optional number

A calculated value for how many prompt tokens (input tokens) have been used in this context window

formatint32
sequence: optional number

sequence is a numeric representation of which context window this is. Sequences are useful to perform a max(sequence) on in order to calculate how many context windows an objective has.

formatint32

Compact an objective

curl https://api.cadenya.com/v1/objectives/$OBJECTIVE_ID/compact \
    -H 'Content-Type: application/json' \
    -H "Authorization: Bearer $CADENYA_API_KEY" \
    -d '{}'
{
  "contextWindow": {
    "completionTokens": 0,
    "objectiveId": "objectiveId",
    "previousWindowContinueInstructions": "previousWindowContinueInstructions",
    "promptTokens": 0,
    "sequence": 0
  }
}
Returns Examples
{
  "contextWindow": {
    "completionTokens": 0,
    "objectiveId": "objectiveId",
    "previousWindowContinueInstructions": "previousWindowContinueInstructions",
    "promptTokens": 0,
    "sequence": 0
  }
}