[Feature Request] Streaming per-subagent token usage events during execution

Author: ArielSmoliarCreated May 23, 2026Updated Sep 19, 2026
Labelsenhancement

Problem

  • The SDK provides token usage in two places: RateLimitEvent.utilization (session-level, lagging) and model_usage in ResultMessage (per-agent, but only after completion). During execution, there's no way to observe how many tokens a specific subagent has consumed so far.

  • This makes it impossible to build real-time resource management on top of the SDK. You can set a static max_budget_usd kill switch, but you can't dynamically adjust agent behavior based on actual consumption mid-execution.

Proposal

Emit a TokenUsageEvent (or extend the existing RateLimitEvent) per subagent during execution:

{ "type": "token_usage", "agent_id": "researcher-agent", "input_tokens": 14200, "output_tokens": 3800, "cache_read_input_tokens": 600, "cumulative_cost_usd": 0.042, "turn": 3 }

This could be emitted after each LLM call within a subagent, similar to how RateLimitEvent is already streamed.

Use case

  • I'm building an open-source agent scheduler that sits above agent frameworks and manages resource allocation across concurrent agents.
  • The Anthropic SDK's hook architecture (PreToolUse/PostToolUse at zero token cost) is already the most scheduler-friendly integration point across all the major agent platforms I analyzed.
  • Streaming per-agent token usage would complete the picture by providing hooks for admission control and usage events for real-time accounting.

Concrete scenarios:

  • Throttle a subagent that's consuming disproportionate tokens before it hits max_budget_usd.
  • Downgrade a subagent to a cheaper model mid-execution if utilization patterns suggest the task is simpler than expected.
  • Rebalance max_turns across concurrent subagents based on actual vs. projected consumption.

Source: anthropics/claude-agent-sdk-python