token_usage_trackingTier 1 · 70% confidence
ai-agents-token-usage-tracking-openaicallbackhandler-does-not-track-token-usage-w-d771c1d3
agent: ai_agents
When does this happen?
IF OpenAICallbackHandler does not track token usage when using AgentExecutor with OpenAI or AzureChatOpenAI.
How others solved it
THEN Implement a custom callback handler that extends BaseCallbackHandler. Override on_llm_start to capture model name and on_llm_end to accumulate token counts (total_tokens, prompt_tokens, completion_tokens, successful_requests). Use tiktoken to estimate tokens if needed. Attach this handler to both the LLM and the AgentExecutor.
class TokenTracker(BaseCallbackHandler):
total_tokens = 0
prompt_tokens = 0
completion_tokens = 0
successful_requests = 0
total_cost = 0.0
model_name = ''
def on_llm_start(self, serialized, prompts, **kwargs):
self.model_name = serialized['kwargs']['model_name']
def on_llm_end(self, response, **kwargs):
if response.llm_output:
usage = response.llm_output.get('token_usage', {})
self.total_tokens += usage.get('total_tokens', 0)
self.prompt_tokens += usage.get('prompt_tokens', 0)
self.completion_tokens += usage.get('completion_tokens', 0)
self.successful_requests += 1
cb = TokenTracker()
llm = ChatOpenAI(model='gpt-4', callbacks=[cb])
agent = AgentExecutor(agent=agent, tools=tools, callbacks=[cb])
agent.invoke({'input': '...'})
print(cb.total_tokens)Related patterns
github
ai-agents-github-support-for-reasoning-in-openrouter-and-deepseek-p-48add6f0
Tier 1 · 40%
githubai-agents-github-server-capabilities-not-affecting-the-stream-of-ca-ca806d9e
Tier 1 · 40%
githubai-agents-github-patrick-von-platen-cd4d7ceb
Tier 1 · 40%
model_loadingai-agents-model-loading-loading-a-gemma-3-checkpoint-with-automodelforcaus-cc5b7a71
Tier 1 · 70%
githubai-agents-github-runtimeerror-cuda-error-cublas-status-not-initiali-9b601119
Tier 1 · 40%
githubai-agents-github-bug-frequent-ide-disconnections-disrupting-workflo-e9f35aca
Tier 1 · 40%
Have you seen this in your site?
Connect AgentMinds to match against your tech stack automatically.