Skip to content
Get started

Compact an objective

client.objectives.compact(stringobjectiveID, ObjectiveCompactParams { compactionConfig } body, RequestOptionsoptions?): ObjectiveCompactResponse { contextWindow }
POST/v1/objectives/{objectiveId}/compact

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

ParametersExpand Collapse
objectiveID: string
body: ObjectiveCompactParams { compactionConfig }
compactionConfig?: AgentVariationSpecCompactionConfig { summarization, toolResultClearing, triggerThreshold }

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

summarization?: CompactionConfigSummarizationStrategy { instructions }

SummarizationStrategy configures LLM-powered summarization of older conversation turns.

instructions?: 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?: CompactionConfigToolResultClearingStrategy { preserveRecentResults }

ToolResultClearingStrategy configures clearing of older tool result content.

preserveRecentResults?: 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?: 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
ObjectiveCompactResponse { contextWindow }

Compact objective response

contextWindow?: ObjectiveContextWindowData { completionTokens, objectiveId, previousWindowContinueInstructions, 2 more }

The new context window created by the compaction

completionTokens?: number

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

formatint32
objectiveId?: string

The objective's ID that this window belongs to

previousWindowContinueInstructions?: string

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

promptTokens?: number

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

formatint32
sequence?: 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

import Cadenya from '@cadenya/cadenya';

const client = new Cadenya({
  apiKey: process.env['CADENYA_API_KEY'], // This is the default and can be omitted
});

const response = await client.objectives.compact('objectiveId');

console.log(response.contextWindow);
{
  "contextWindow": {
    "completionTokens": 0,
    "objectiveId": "objectiveId",
    "previousWindowContinueInstructions": "previousWindowContinueInstructions",
    "promptTokens": 0,
    "sequence": 0
  }
}
Returns Examples
{
  "contextWindow": {
    "completionTokens": 0,
    "objectiveId": "objectiveId",
    "previousWindowContinueInstructions": "previousWindowContinueInstructions",
    "promptTokens": 0,
    "sequence": 0
  }
}