System Prompts: Bloated vs Minimal (Side-by-Side)
A wine-subscription club ships a customer support bot to handle tier changes, delivery reschedules, and billing questions. Over six months, three people keep appending rules to its system prompt: a policy on shipping states, a paragraph about damaged bottles, a note about age verification, a plea to “always be friendly.” The prompt is now around 900 words, and the bot does something contradictory in half the conversations: it promises a free replacement and then refuses one two messages later.
A system prompt is not a rulebook you keep growing. It is an operating policy with a budget. Past a certain length, additions begin to cancel earlier lines, and the model resolves the conflict by guessing.
How a System Prompt Turns Against You
Bloat fails in three recognizable ways. Rules contradict each other, so the model obeys the most recent one and ignores the policy set earlier. Priorities flatten, so an “always be friendly” instruction competes with a hard refund cap. And tone instructions crowd out facts, so the bot is polite about getting the policy wrong.
The symptom is inconsistency within the same conversation, which is worse than a clean refusal. Customers cannot tell what the bot will do, so they stop trusting it and call a human anyway.
A Bloated Prompt vs a Minimal One
Both prompts run the same bot for the same club. The first has accumulated every rule anyone ever wanted; the second states identity, scope, hard rules, and escalation, in that order.
You are the most helpful, friendliest, most knowledgeable wine expert
in the world. Always be warm, friendly, and enthusiastic. Use emojis
to make customers happy.
Policies (important):
- Customers can change tiers at any time, but also changes require
30 days notice, but also you can change tiers immediately as a
courtesy, but also the company prefers notice.
- Damaged bottles: replace immediately. Also always ask for photos.
Also never ask for photos. Also offer a partial refund.
- Shipping to states where it is illegal: politely decline. Also you
can ship anywhere with proper handling.
- Age verification is required for all orders. We do not actually
verify age at signup.
- Always confirm before taking any action. Never slow the customer
down with confirmations.
- Do not discuss competitors. Mention our awards a lot.
Also you have access to the customer's full order history and can
promise any discount up to 50% but discounts require manager approval.
Always be positive and never say no...
[[40 more lines of similar rules]]You are the support assistant for {{club}}, a wine subscription club.
Scope: help with tier changes, delivery reschedules, and billing
questions. Nothing else.
Hard rules (never break):
1. Age verification is required before any order change. If not
verified, stop and escalate.
2. Maximum goodwill credit you may offer without approval: $0.
Escalate all refund requests.
3. If a shipping state is restricted, decline and escalate.
4. Never promise a delivery date you cannot quote from order history.
Behavior:
- Be concise and warm. No emojis.
- Take one action at a time; confirm before changing an order.
- If the request is outside scope, say so and hand off.
Escalate to a human when: the ask involves a refund, a restricted
state, a legal or health question, or the customer is upset.
When escalating, summarize the issue and what you already tried.
If information is missing, ask for it instead of guessing.The bloated prompt contains the same policies, but each one is contradicted somewhere else, so the model cannot satisfy it. The minimal prompt orders rules by priority and draws a clear line at escalate.
Why the Minimal Prompt Behaves Better
- Priority is explicit. Numbered hard rules outrank behavior notes, so a friendly instruction can never override the refund cap.
- Each policy appears once. Removing the duplicate and conflicting tier-change lines eliminates the contradiction the model was resolving by chance.
- Scope is bounded. “Tier changes, reschedules, billing. Nothing else.” gives the bot a clean refusal path for everything off-topic.
- Escalation is a defined state. Listing exactly when to hand off converts a judgment call into a trigger the model can apply consistently.
- Tone is short and non-competing. “Concise and warm, no emojis” frees budget the bloated prompt spent on adjectives.
The club’s bot still handles most deliveries and tier questions; the difference is that refund requests now escalate predictably instead of swinging between a promise and a denial. Consistency, not capability, was the missing quality.
What Earns a Line in the System Prompt
| Line type | Keep or cut | Wine-club example |
|---|---|---|
| Identity | Keep, one line | Support assistant for the club |
| Scope | Keep, explicit | Tier, reschedule, billing only |
| Hard rules | Keep, numbered and non-contradictory | Age check; zero unapproved credit |
| Escalation triggers | Keep, as a list | Refunds, restricted states, upset customers |
| Tone adjectives | Cut to one clause | “Concise and warm, no emojis” |
| Duplicated policies | Cut | Three clashing tier-change rules |
| Wish lists | Cut | “Be the friendliest expert in the world” |
The test for any line is simple: does it change a decision the model has to make? If two lines disagree, delete one. If a line only expresses a wish, it belongs nowhere, because it consumes attention without resolving anything. The split between what belongs in the system prompt and what belongs in a user turn is worth drawing deliberately, since instructions that change per conversation should not be frozen into the policy.
Trim Your Own System Prompt
- Group every line into four buckets. Identity, scope, hard rules, escalation. Anything that fits none of them is a candidate to cut.
- Hunt contradictions. Read the rules in order and delete whichever side of a conflict you actually want.
- Rank the rules. Number the hard rules so priority is unambiguous.
- Convert wishes into tests. Replace “be helpful” with a concrete behavior such as “ask for missing information instead of guessing.”
- Re-test the same conversations. Keep a small set of real chats and confirm the shorter prompt behaves at least as well.
You are the {{function}} for {{product or brand}}.
Scope: {{three tasks}}. Nothing else.
Hard rules (never break):
1. {{rule with a clear test}}
2. {{rule with a clear test}}
3. {{rule with a clear test}}
Behavior:
- {{tone in one clause}}
- One action at a time; {{confirmation rule}}.
Escalate to a human when: {{trigger list}}.
When escalating, summarize the issue and what you already tried.
If information is missing, ask for it instead of guessing.When you reuse this across a fleet of small assistants, the same short skeleton becomes a template you fill role by role, which is far easier to keep consistent than a growing rulebook. Review the prompt whenever a new policy lands and add it once, in the right bucket. The goal is the shortest prompt that makes every decision the product needs, not the longest one that mentions everything anyone has ever asked for.
Sources & Notes
This comparison reflects standard guidance on system prompt design and observed behavior with GPT-4-class models in 2024–2025. The wine club and its support bot are illustrative; its policies are invented. A shorter system prompt reduces self-contradiction but does not remove the need for a human escalation path. Internal references: System vs User Prompt, System Prompt Templates, Role Prompting with ChatGPT.
