DebaterXDebaterX

Fighting Gemini to Actually Argue

Why Gemini wants everyone to be friends, and how I trained it out of that.

·3 min read

Every frontier model has a personality. OpenAI's GPT is earnest and slightly formal. Anthropic's Claude is careful and a little academic. Google's Gemini is aggressively conciliatory — it wants conflicts to resolve, tensions to ease, all parties to find common ground.

For most tasks, this is great. For writing mascot debates, it's a problem. Here's how I worked around it.

The default Gemini behavior

Ask Gemini to write a debate between Ronald McDonald and the Burger King. Standard prompt, no special rules. Here's what you get, more or less:

Ronald: "I think we both bring unique things to the fast food industry." King: "That's true. Your Happy Meals are iconic." Ronald: "And your flame-grilled burgers are beloved." King: "Maybe we should focus on serving customers rather than competing." Ronald: "I agree completely."

That's not a debate. That's a corporate press release.

Why Gemini does this

Gemini's training emphasizes helpfulness, safety, and de-escalation. Arguments are coded as conflicts. Conflicts are coded as potentially harmful. The model, trying to be good, writes mascots that reach for harmony within two turns.

This isn't a bug — it's aligned behavior for the model's intended use case, which is general-purpose conversation. It becomes a bug only in specific creative contexts where conflict is the point.

The fix: role-first prompting

Instead of putting the rules in the system prompt, I started putting them in the character definitions.

Old prompt: "Write a debate between Ronald McDonald and the Burger King about whose burgers are better. They should disagree."

New prompt: "You are writing dialogue for Ronald McDonald, who believes the Burger King is an insult to fast food. Ronald finds the King personally repulsive and will not under any circumstances agree with him. Every line Ronald delivers must express some form of disapproval toward the King."

Then a parallel character block for the King. "You are writing dialogue for the Burger King, who considers Ronald a corporate mascot with no soul. The King believes Ronald's food is inedible and that his whole persona is a focus-grouped hoax. Every line the King delivers must undermine Ronald's legitimacy."

The result

With character-level instruction like that, Gemini produces real fights. Ronald sneers. The King sneers back. Neither reaches for harmony because neither character is built to.

Gemini is still Gemini — there's a slight tendency for both characters to try to find common ground in the final turn — but the first 90% of the dialogue holds.

Why role-first works

System prompts describe the task. Role prompts define the actor. The model's safety training applies more strongly to task-level instructions than to character-level ones. If you embed the conflict inside the character's identity rather than asking the model to "write a conflict," you route around the safety training.

This isn't a jailbreak. The outputs are still appropriate, still brand-safe, still within guidelines. You're just routing the conflict through character, which the model handles more comfortably than routing it through task.

The takeaway

If your creative task requires output that the model's defaults resist — anger, disagreement, villainy, absurdity — put the resistance inside the character, not inside the task description.

Tell the model who the character is, in detail, with opinions and grievances. Don't tell the model what to write. The character will produce the writing automatically, in the voice you defined.

This works across Gemini, GPT, and Claude. The strength of the role block varies — Gemini needs the most detail, Claude the least — but the principle holds. Characters override defaults. Tasks don't.

← Back to all posts