UsageTracker¶
Track token usage across requests.
Quick Example¶
from mamba_agents.tokens import UsageTracker
tracker = UsageTracker()
# Record usage
tracker.record_usage(
prompt_tokens=100,
completion_tokens=50,
model="gpt-4o",
)
# Get aggregate
usage = tracker.get_total_usage()
print(f"Total: {usage.total_tokens}")
# Get history
for record in tracker.get_usage_history():
print(f"{record.timestamp}: {record.total_tokens}")
# Reset
tracker.reset()
Data Classes¶
TokenUsage¶
Aggregate usage statistics.
UsageRecord¶
Single usage record.
API Reference¶
UsageTracker
¶
Track token usage across requests.
Provides per-request tracking, session aggregates, and cost estimation.
Initialize the usage tracker.
| PARAMETER | DESCRIPTION |
|---|---|
cost_rates
|
Optional cost per 1000 tokens for different models.
TYPE:
|
Source code in src/mamba_agents/tokens/tracker.py
record_usage
¶
Record usage from a pydantic-ai result.
| PARAMETER | DESCRIPTION |
|---|---|
usage
|
Usage object from pydantic-ai.
TYPE:
|
model
|
Optional model name.
TYPE:
|
tool_name
|
Optional tool name for tool calls.
TYPE:
|
Source code in src/mamba_agents/tokens/tracker.py
record_raw
¶
record_raw(
prompt_tokens: int,
completion_tokens: int,
model: str | None = None,
tool_name: str | None = None,
) -> None
Record raw token counts.
| PARAMETER | DESCRIPTION |
|---|---|
prompt_tokens
|
Number of prompt tokens.
TYPE:
|
completion_tokens
|
Number of completion tokens.
TYPE:
|
model
|
Optional model name.
TYPE:
|
tool_name
|
Optional tool name.
TYPE:
|
Source code in src/mamba_agents/tokens/tracker.py
get_total_usage
¶
get_total_usage() -> TokenUsage
Get total usage statistics.
| RETURNS | DESCRIPTION |
|---|---|
TokenUsage
|
TokenUsage with aggregate statistics. |
get_usage_history
¶
get_usage_history() -> list[UsageRecord]
Get usage history.
| RETURNS | DESCRIPTION |
|---|---|
list[UsageRecord]
|
List of all usage records. |
get_cost_estimate
¶
Estimate cost based on usage.
| PARAMETER | DESCRIPTION |
|---|---|
model
|
Model to use for cost calculation. If None, uses default rate.
TYPE:
|
| RETURNS | DESCRIPTION |
|---|---|
float
|
Estimated cost in USD. |
Source code in src/mamba_agents/tokens/tracker.py
get_breakdown_by_tool
¶
get_breakdown_by_tool() -> dict[str, TokenUsage]
Get token usage broken down by tool.
| RETURNS | DESCRIPTION |
|---|---|
dict[str, TokenUsage]
|
Dictionary mapping tool names to usage. |
Source code in src/mamba_agents/tokens/tracker.py
TokenUsage
dataclass
¶
TokenUsage(
prompt_tokens: int = 0,
completion_tokens: int = 0,
total_tokens: int = 0,
request_count: int = 0,
cached_tokens: int = 0,
)
Aggregate token usage statistics.
| ATTRIBUTE | DESCRIPTION |
|---|---|
prompt_tokens |
Total prompt tokens.
TYPE:
|
completion_tokens |
Total completion tokens.
TYPE:
|
total_tokens |
Total tokens.
TYPE:
|
request_count |
Number of requests.
TYPE:
|
cached_tokens |
Tokens served from cache.
TYPE:
|
UsageRecord
dataclass
¶
UsageRecord(
timestamp: datetime,
prompt_tokens: int,
completion_tokens: int,
total_tokens: int,
model: str | None = None,
tool_name: str | None = None,
)
A single usage record.
| ATTRIBUTE | DESCRIPTION |
|---|---|
timestamp |
When the usage was recorded.
TYPE:
|
prompt_tokens |
Tokens in the prompt.
TYPE:
|
completion_tokens |
Tokens in the completion.
TYPE:
|
total_tokens |
Total tokens used.
TYPE:
|
model |
Model used for this request.
TYPE:
|
tool_name |
Optional tool name if tool call.
TYPE:
|