Skip to main content

Notes

  • Nested <Aspects> inherit outer budgets wholesale: an inner tokenBudget or latencySlo replaces the parent’s config for that field (no per-field merge), though tracking’s tokens/latency each fall back to the parent independently.
  • Budgets enforce at task-dispatch time, independent of tracking (which only controls metric emission). Before each task, the engine checks accumulated tokens against tokenBudget.max and elapsed wall-clock against latencySlo.maxMs, then applies onExceeded: fail raises ASPECT_BUDGET_EXCEEDED and fails the run, warn logs and continues, skip-remaining skips the task; perTask limits aren’t enforced yet.
  • Accumulated token usage is per run, survives resume, and re-seeds from persisted token-usage events.