Services Process Blog Demo

Get in touch

hello@sovont.com
Back to blog
· Sovont · 3 min read

The System Prompt That Grew Without Anyone Noticing

System prompt bloat is one of the slowest ways to degrade your LLM system — and one of the easiest to miss until performance tanks and costs spike.

AI Production

It starts with four lines. A role definition. A tone instruction. Two constraints.

Six months later it’s 2,400 tokens of accumulated decisions, edge case patches, and “just add a rule for that” fixes. Nobody planned it. Nobody owns it. And your p95 latency is 40% higher than it was at launch.

This is system prompt bloat — and it’s more common than anyone admits.


How it happens.

A user finds an edge case. Instead of fixing the underlying logic or adding a validation layer, someone adds a rule to the system prompt: “Do not respond to questions about X.” Problem handled. PR merged.

The next sprint, another edge case. Another instruction. Over time, the prompt becomes a palimpsest — layer after layer of fixes written in plain English, some contradicting each other, all of them consuming tokens every single request.

Nobody rewrites it because nobody wants to break something that’s mostly working. So it grows.


What bloat costs you.

Every token in your system prompt is paid on every call. If your system prompt is 2,000 tokens and you’re running 100,000 requests a day, that’s 200 million tokens of overhead — before the user sends a single character. At current pricing, that’s not a rounding error.

Beyond cost: attention is finite. Research is consistent on this — longer contexts mean the model pays less attention to any given part of them. Your carefully-written constraints at the bottom of a bloated prompt? The model might be half-asleep by the time it gets there.

And debugging gets brutal. When behavior drifts, where do you look? The 47th instruction in a 2,400-token wall of text? Good luck running a systematic eval across that search space.


What to do instead.

Audit it quarterly. Read every instruction. Ask: is this still true? Is this still needed? Is there a better place to enforce this — input validation, output parsing, business logic — that doesn’t burn tokens?

Version it. A system prompt is code. Treat it like code. It should be in version control, it should have a changelog, and changes should go through review. “I just tweaked the prompt” is not acceptable when it affects every user in production.

Separate concerns. Static context (role, format, persona) belongs in the system prompt. Dynamic context (user preferences, session state, retrieved knowledge) does not. If you’re injecting runtime data into your system prompt, that’s a design smell. It makes the prompt harder to cache, harder to audit, and harder to reason about.

Set a token budget. Pick a number — say, 800 tokens — and treat it as a constraint. When you’re at the limit, the next instruction you want to add means an existing one has to go. That forcing function keeps the prompt honest.


The prompt is not a dumping ground.

Every instruction you add is a bet that the model will follow it, every time, at scale, under distribution shift. That bet gets shakier as the prompt grows. The cleaner the prompt, the more load you can put on actual application logic — where you have real control.

Your system prompt should be short enough to memorize. If it isn’t, something has gone wrong.


Prune it before it prunes your margins.