{"slug": "do-not-add-an-llm-router-until-you-can-defend-each-downgrade", "title": "Do Not Add an LLM Router Until You Can Defend Each Downgrade", "summary": "A developer released Frugon, an MIT-licensed CLI tool that analyzes OpenAI-compatible request/response logs to help teams decide which LLM calls can be downgraded to cheaper models without sacrificing quality. The tool generates a reviewable hypothesis for cost savings by comparing candidate models and estimating costs, rather than applying blanket downgrades. Frugon also includes a capture mode that logs requests locally for analysis.", "body_md": "When an LLM bill grows, the tempting answer is a blanket model downgrade. That is usually the wrong first move. A support classification, a retrieval rewrite, and a complex planning step do not have the same failure cost.\n\nThe useful question is: **which calls have evidence that they can be cheaper?**\n\n[Frugon](https://github.com/Rodiun/frugon) is an MIT-licensed, Python 3.10+ CLI that analyzes OpenAI-compatible request/response JSONL logs. Its stated purpose is to compare candidate models, estimate costs, and propose a split between calls that might move and calls that should remain on the baseline. See the [README](https://github.com/Rodiun/frugon/blob/main/README.md), [project configuration](https://github.com/Rodiun/frugon/blob/main/pyproject.toml), and [v0.2.4 release](https://github.com/Rodiun/frugon/releases/tag/v0.2.4).\n\nThe interesting part is not a headline saving. It is converting a bill into a reviewable hypothesis:\n\nThat sequence is boring in the best way. It creates an artifact an engineering team can challenge, reproduce, and roll back.\n\nFrugon also includes `frugon capture`\n\n. Its [capture implementation](https://github.com/Rodiun/frugon/blob/main/src/frugon/capture.py) runs a local HTTP server, forwards OpenAI-compatible completion requests to the configured upstream, and stores canonical JSONL records locally.\n\nThis deserves normal production scrutiny. Logs can contain prompts and responses; retention and redaction are still your responsibility. Optional quality measurement uses your own provider keys, so it is a real provider-boundary decision, not a free offline proof. The source also validates upstream schemes and strips sensitive headers on cross-origin redirects—good defensive detail, but not a substitute for your own review.\n\nFrugon looks most useful for teams that already retain compatible call logs and need a defensible downgrade shortlist. It is less useful if you have no representative task set, because a cost estimate cannot prove output quality.\n\nNot tested / not run: this is a public-documentation and source review only. I did not install, execute, benchmark, or validate Frugon in a production workload. The project’s [MIT license](https://github.com/Rodiun/frugon/blob/main/LICENSE) and public repository are linked for further review.", "url": "https://wpnews.pro/news/do-not-add-an-llm-router-until-you-can-defend-each-downgrade", "canonical_source": "https://dev.to/euk_ela_a3e7ed01aa3f7314e/do-not-add-an-llm-router-until-you-can-defend-each-downgrade-5bk1", "published_at": "2026-07-12 00:05:38+00:00", "updated_at": "2026-07-12 00:13:06.587593+00:00", "lang": "en", "topics": ["large-language-models", "developer-tools", "ai-infrastructure"], "entities": ["Frugon", "OpenAI", "Rodiun"], "alternates": {"html": "https://wpnews.pro/news/do-not-add-an-llm-router-until-you-can-defend-each-downgrade", "markdown": "https://wpnews.pro/news/do-not-add-an-llm-router-until-you-can-defend-each-downgrade.md", "text": "https://wpnews.pro/news/do-not-add-an-llm-router-until-you-can-defend-each-downgrade.txt", "jsonld": "https://wpnews.pro/news/do-not-add-an-llm-router-until-you-can-defend-each-downgrade.jsonld"}}