geekan/MetaGPT
120 source files scanned · 6 LLM call site(s) · ~7% of LLM spend looks recoverable (static heuristics)

[](https://tokenzero.sh/audit/geekan/MetaGPT)
Models referenced
none detected
Findings
| Severity | Where | Finding | Est. |
|---|---|---|---|
| medium | metagpt/prompts/di/engineer2.py:6 | 20 static prompt template(s), ~13,382 tokens, and no caching directive anywhere in the repo Most call sites use providers with automatic prefix caching, which only pays off when these templates are sent as a byte-identical prefix: static template first, nothing volatile (dates, ids, user data) interpolated into it. Fix: Keep templates first and static; TokenZero adds a stable `prompt_cache_key` so related requests land on the same cache. | 12% |
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