Notes
- Nested
<Aspects>inherit outer budget configs wholesale. If an inner<Aspects>setstokenBudgetorlatencySlo, that field’s entire parent config object is replaced (no per-field merge). Thetrackingconfig is the exception:tokensandlatencyeach fall back to the parent value independently. - Budgets enforce at task-dispatch time. Before each descendant task runs, the engine compares the run’s accumulated token total (
tokenBudget.max) and wall-clock since the run started (latencySlo.maxMs) against the budget and appliesonExceeded:failraisesASPECT_BUDGET_EXCEEDEDand fails the run,warnlogs and continues,skip-remainingskips the task. The per-task limits (perTask) are not enforced yet. - Budgets enforce regardless of
tracking;trackingcontrols metric emission only. - Accumulated token usage is per run and survives resume (re-seeded from persisted token-usage events).