AxAgentContextEvent type AxAgentContextEvent =
| {
actionLogEntryCount : number ;
checkpointActive : boolean ;
effectiveBudgetChars : number ;
fixedPromptChars : number ;
guidanceLogEntryCount : number ;
kind : "budget_check" ;
mutablePromptChars : number ;
pressure : AxAgentContextPressure ;
stage : AxAgentContextStage ;
targetPromptChars : number ;
turn : number ;
}
| {
coveredTurns : number [];
kind : "checkpoint_created" | "checkpoint_cleared" ;
reason : "over_budget" | "under_budget" | "disabled" ;
stage : AxAgentContextStage ;
summaryChars? : number ;
turn : number ;
}
| {
kind : "tombstone_created" ;
resolvedByTurn : number ;
source : "deterministic" | "model" ;
stage : AxAgentContextStage ;
summaryChars : number ;
turn : number ;
}
| {
kind : "action_compacted" ;
mode : "distill" | "compact" ;
originalChars : number ;
reason : "structured_output" | "superseded" | "pressure" | "proactive" | "lean" ;
renderedChars : number ;
stage : AxAgentContextStage ;
turn : number ;
}
| {
domain : "modules" | "skills" | "memories" ;
kind : "relevance_ranking" ;
shortlist : object [];
stage : AxAgentContextStage ;
suppressed : boolean ;
taskChars : number ;
}; Defined in: https://github.com/ax-llm/ax/blob/3306475085414d36aee4411ad2466e08e53bef8a/src/ax/agent/contextEvents.ts#L5
Type declaration {
actionLogEntryCount : number ;
checkpointActive : boolean ;
effectiveBudgetChars : number ;
fixedPromptChars : number ;
guidanceLogEntryCount : number ;
kind : "budget_check" ;
mutablePromptChars : number ;
pressure : AxAgentContextPressure ;
stage : AxAgentContextStage ;
targetPromptChars : number ;
turn : number ;
} Name Type actionLogEntryCountnumbercheckpointActivebooleaneffectiveBudgetCharsnumberfixedPromptCharsnumberguidanceLogEntryCountnumberkind"budget_check"mutablePromptCharsnumberpressureAxAgentContextPressurestageAxAgentContextStagetargetPromptCharsnumberturnnumber
{
coveredTurns : number [];
kind : "checkpoint_created" | "checkpoint_cleared" ;
reason : "over_budget" | "under_budget" | "disabled" ;
stage : AxAgentContextStage ;
summaryChars? : number ;
turn : number ;
} Name Type coveredTurnsnumber[]kind"checkpoint_created" | "checkpoint_cleared"reason"over_budget" | "under_budget" | "disabled"stageAxAgentContextStagesummaryChars?numberturnnumber
{
kind : "tombstone_created" ;
resolvedByTurn : number ;
source : "deterministic" | "model" ;
stage : AxAgentContextStage ;
summaryChars : number ;
turn : number ;
} Name Type kind"tombstone_created"resolvedByTurnnumbersource"deterministic" | "model"stageAxAgentContextStagesummaryCharsnumberturnnumber
{
kind : "action_compacted" ;
mode : "distill" | "compact" ;
originalChars : number ;
reason : "structured_output" | "superseded" | "pressure" | "proactive" | "lean" ;
renderedChars : number ;
stage : AxAgentContextStage ;
turn : number ;
} Name Type kind"action_compacted"mode"distill" | "compact"originalCharsnumberreason"structured_output" | "superseded" | "pressure" | "proactive" | "lean"renderedCharsnumberstageAxAgentContextStageturnnumber
{
domain : "modules" | "skills" | "memories" ;
kind : "relevance_ranking" ;
shortlist : object [];
stage : AxAgentContextStage ;
suppressed : boolean ;
taskChars : number ;
} Name Type Description domain"modules" | "skills" | "memories"- kind"relevance_ranking"- shortlistobject[]Items surfaced to the model, most relevant first ([] if suppressed). stageAxAgentContextStage- suppressedbooleanTrue when the low-confidence guard emitted nothing. taskCharsnumberLength of the ranked task string (not the text — avoids log bloat).
Emitted once per ranked domain per forward when the advisory relevance
ranker runs (relevanceRanking plus the domain’s prerequisite: modules
need functionDiscovery; skills/memories need their catalogs). Records
the shortlist actually surfaced to the model.
To measure whether the hint helps, an observer joins per forward:
shortlist.map((s) => s.id) against what the model then loaded — for
modules the internal discover calls (onFunctionCall with
kind:'internal', name:'discover', args.request) and the module part
of external qualifiedNames; for skills onLoadedSkills/used(id); for
memories onLoadedMemories/used(id).