static audit · 2026-10-25T22:32:11.239Z

agno-agi/agno

120 source files scanned · 22 LLM call site(s) · ~1% of LLM spend looks recoverable (static heuristics)

$70per 10k runs today (claude-sonnet-5-5, ~2000 prompt tokens)
$69.3per 10k runs with fixes applied

badge   ![TokenZero audit](https://tokenzero.sh/v1/badge/audit/aud_T1EjNo2wHv0GAgBXDiylPg.svg)

repo badge   [![LLM spend audited by TokenZero](https://tokenzero.sh/v1/badge/repo/agno-agi/agno.svg)](https://tokenzero.sh/audit/agno-agi/agno)

Models referenced

claude-sonnet-5-5 ×8 (cheaper sibling: claude-haiku-5-5)
gpt-5.4-mini ×4
gemini-3.7-flash ×2

Findings

SeverityWhereFindingEst.
mediumlibs/agno/agno/models/anthropic/claude.py:841LLM call inside a loop
Per-item calls repeat the full prompt prefix for every element. If items are independent and latency-tolerant, the provider Batch API is 50% cheaper, and OpenAI Flex processing (`service_tier: "flex"`) gives the same 50% on ordinary calls without restructuring; if the prefix is shared, caching pays off immediately.
Fix: Batch where possible, or set `service_tier: "flex"` on OpenAI calls that can wait; otherwise keep the shared prefix cache-formatted (TokenZero does this automatically).
25%
infolibs/agno/agno/models/google/gemini.py:567Unrecognised model id "gemini-3.7-flash"
Not in the current pricing table: it may be retired or renamed. Retired models return errors or are silently remapped by some providers.
Fix: Check the provider model list; TokenZero flags unpriced models in `X-TokenZero-Warning`.
0%

Fix all of it with one line

OPENAI_BASE_URL=https://tokenzero.sh/v1
ANTHROPIC_BASE_URL=https://tokenzero.sh

Keys pass through untouched. Cache formatting and exact caching are on by default; cascade routing stays opt-in. How it works