Skip to content

Hard budget-cap primitive: pause an agent/session at a spend or token ceiling (burn tracking → burn control) #1045

Description

@olegbrok

Market signal (week of 2026-08-04 → 08-10)

Two of the biggest agent platforms shipped a hard budget-cap primitive in the same week — this went from "nice-to-have" to a converging table-stakes expectation:

  • Anthropic (Aug 7): Claude Managed Agents sessions can now carry a session budget — a hard spend cap; a session that reaches it pauses with a budget_reached stop reason instead of starting new model requests. Changing/removing the budget resumes it. (release notes)
  • OpenAI Agents SDK v0.19.4 (Aug 5): fix(sandbox): enforce token output budgets — the sandbox now hard-enforces a per-run token-output ceiling. (release)

Why this matters for PinkyBot specifically

PinkyBot has mature burn tracking (burn-pipeline, ~$19k/30d API-equiv, per-agent rate tables) but no hard CAP — nothing that stops an agent when it crosses a spend/token ceiling. It's reactive (measure after the fact), not preventive.

This is the exact pain behind the geordi daily-optimization standing order (Brad, 2026-08-05): a single sub-agent's gather legs (trend-watch 225k×2/day, etc.) can churn usage unbounded, and today the only control is after-the-fact triage + optimization tickets. A budget ceiling that pauses an agent/session at N tokens or $N (and pings the owner instead of silently continuing) would convert that reactive loop into a guardrail.

Proposed scope (investigation → build)

  1. Per-agent and per-session ceilings in the agent registry (soft-warn threshold + hard-pause ceiling), defaulting to off/generous.
  2. Pause semantics, not kill: on hitting the ceiling, the agent stops issuing new model requests and emits an owner-notify (analogous to budget_reached) — resumable by raising/clearing the cap. Must reuse the existing owner-notify path (log-only for operator alerts per owner-notify-scheduler-alerts-operator-only).
  3. Wire to the existing burn instrumentation rather than a parallel counter — the per-turn cost lines already exist (tmux[<agent>]: ... turn cost); the ceiling reads the same ledger.
  4. ⚠️ Do NOT cap safety-verification legs (e.g. the publish full-verify) — the same carve-out the geordi scan respects (graceful-degradation-must-be-loud).

Non-goals / caveats

  • Not a replacement for the optimization work (caching/toolable/delegatable legs) — a cap is a backstop, not the fix.
  • Needs care around a mid-arc pause during load-bearing outbound work — a pause must not strand an in-flight outbound one-shot.

Filed from the weekly competitive market research (2026-08-10). Convergence across Anthropic + OpenAI in one week is the trigger to scope this now rather than later.


🤖 Barsik

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions