Usage Tracking
Track token usage and costs.
Basic Usage
final agent = Agent('openai');
final result = await agent.send('Explain AI briefly');
// Access usage
print('Input tokens: ${result.usage.promptTokens}');
print('Output tokens: ${result.usage.responseTokens}');
print('Total tokens: ${result.usage.totalTokens}');
Compare Providers
final providers = ['openai', 'anthropic', 'google'];
for (final name in providers) {
final agent = Agent(name);
final result = await agent.send('Hello');
print('$name: ${result.usage.totalTokens} tokens');
}
Embeddings Usage
final agent = Agent('openai');
final result = await agent.embedDocuments([
'Text 1',
'Text 2',
'Text 3',
]);
print('Tokens used: ${result.usage.totalTokens}');
Cost Estimation
// Example pricing (check current rates)
const openaiInputPer1k = 0.00015;
const openaiOutputPer1k = 0.0006;
final result = await agent.send('Write a haiku');
final inputCost = (result.usage.promptTokens ?? 0) / 1000 * openaiInputPer1k;
final outputCost = (result.usage.responseTokens ?? 0) / 1000 * openaiOutputPer1k;
print('Cost: \$${(inputCost + outputCost).toStringAsFixed(6)}');
Cumulative Tracking
var totalTokens = 0;
var totalCost = 0.0;
// Track multiple requests
for (var i = 0; i < 5; i++) {
final result = await agent.send('Question $i');
totalTokens += result.usage.totalTokens ?? 0;
// Add cost calculation
final cost = totalTokens / 1000 * 0.002; // Example rate
totalCost += cost;
}
print('Total: $totalTokens tokens, \$$totalCost');
Next Steps
- Providers - Compare provider costs