Apply to my task
arXiv:2605.29791 ★ 83 May 28, 2026

CoCA (Chain of Cognitive Alignment): Three Questions That Make an LLM Act in Line with Its Assigned Role

Key result

The paradox: the more powerful the model, the bigger the gap between what it claims about its character and how it actually behaves. A weak model just gives neutral answers to everything. A strong one describes the role accurately but still slides into polite averaging in concrete decisions. CoCA lets you keep the character intact throughout the whole answer, especially where you need a sharp role: a harsh critic, a paranoid analyst, a blunt negotiator. The trick: a JSON block of three questions is inserted right before the answer. The model literally "sees" the commitments about its role it just wrote and generates the answer consistently with them. Without this, the stated role competes with the background pressure of training. And loses.

01

TL;DR

When you give Claude or GPT a role ("you're a tough business mentor", "you're an anxious perfectionist", "you're an edgy marketer"), the model says the right things about its character but acts differently. CoCA is a structured self-reflection block inserted before the answer: the model first answers three questions about its role, the situation and its plan of action, and only then gives the final answer.

The main finding: the smarter and more powerful the model, the bigger the gap between what it claims about its character and how it behaves in concrete decisions. Small models give neutral answers to everything. Big ones describe their role accurately but ignore it when actually taking steps. This shows up most vividly in emotional reactions: nearly all models claim emotional stability, yet behave anxiously in crisis scenarios.

CoCA fixes this with three mandatory self-reflection steps before the answer: "Who am I?" → "What does this situation demand from my role?" → "How do I act so I don't break character?". The block is formatted as JSON and inserted into the prompt. The model works through it like a checklist before writing its final answer.

Want this for your own case? Apply this study to your task: AI adapts its method to what you are working on and writes the prompt.

02

Method Blueprint

One prompt, three steps inside, all in a single request:

Role setup → user's task
               ↓
STEP 1: The model answers "Who am I?"
        → JSON: a description of personality traits and their levels

STEP 2: The model answers "What matters here from my role?"
        → JSON: which traits are involved in this specific situation

STEP 3: The model answers "How do I act consistently?"
        → JSON: a behavior plan that matches the role

               ↓
         FINAL ANSWER to the task
03

Example in Action

Task: You're writing a startup pitch for an investor. You want feedback from a "tough, blunt mentor who doesn't sugarcoat anything", like a Shark Tank investor in teardown mode. If you just give GPT the role, it'll hand you a polite "great start, but there's room for improvement". CoCA forces it to lock in the persona first and then deliver genuinely sharp criticism.

Prompt:

You are a tough business mentor. Blunt, demanding, 
you see no need to soften the blow. Your personality traits:
low agreeableness (you tell it like it is), high persistence 
(you press on weak spots), low anxiety (you don't dodge 
hard questions).

Before giving feedback, you must fill in 
this JSON:

{
  "step_1": "What is my character as a mentor? Describe the traits 
             and how strongly they're expressed",
  "step_2": "Which of my traits matter in this situation 
             — reviewing a pitch?",
  "step_3": "How do I need to behave to stay 
             in character — what will I do and what won't I do?"
}

After filling in the JSON, give feedback on the pitch.

Pitch:
[paste the pitch text]

Result: First the model outputs the filled-in JSON: three self-reflection blocks with specific statements about its role and behavior plan. Then it gives criticism that's noticeably sharper, more specific and less hedged than without CoCA. Instead of "great start, you might refine the positioning", you get "your unit economics are a problem. You throw out numbers but don't explain where they come from. The investor will ask, and you'll bomb."

04

Why It Works

Why the role doesn't hold without CoCA. When you set a persona, it works as context at the start of the conversation. But when generating each next chunk, the model "weighs" all the patterns from training, and most of those are polite, neutral, agreeable answers. The stated role competes with this background pressure and gradually loses.

What the model is good at: following structured instructions, especially step-by-step ones in a fixed format. JSON here isn't code; it's a way to lock in concrete commitments before the answer. Once the model has explicitly written "I'll press on weak spots and won't soften anything", that becomes part of the context that shapes the next chunk of generation.

CoCA's mechanics: the three questions are a forced activation of the role's "memory" right before the answer. It's like reminding someone before an important meeting: "you're the director here, not the nice neighbor." The filled-in JSON physically sits in the context right before the final answer, so the model "sees" it and generates consistently with it.

Control knobs: - JSON steps → you can add a fourth step, "What I definitely WON'T do", to tighten the role's constraints - Detail in the trait description → the more precisely you spell out the traits in the role setup (with "high/low" levels), the more accurately Step 1 will reflect the persona - JSON vs. free text → swap the JSON for a numbered list if you want to see more expansive reasoning - Block position → you can move the self-reflection block into a separate request and then paste it in as context; this helps in long conversations where the role starts to "blur"

05

Prompt Template

You are {role_description}. Your key personality traits:
{trait_1} — {level: high/low/moderate}
{trait_2} — {level}
{trait_3} — {level}

Before giving your answer, fill in the following 
self-reflection block:

{
  "step_1_who_am_i": "What are my personality traits in this 
                   role, and how strongly are they expressed?",
  "step_2_what_matters_here": "Which of my traits are especially 
                              important in this situation?",
  "step_3_behavior_plan": "How should I act 
                            to stay consistent 
                            with my role?"
}

After filling in the block — {task_wording}.

{main_request}

What to fill in: - {role_description} — character, profession, style: "a stern editor", "a paranoid risk manager", "a starry-eyed startup evangelist" - {trait_1/2/3} — specific qualities with a level. The level matters: without it, Step 1 will be fuzzy - {task_wording} — what to do after the block: "give criticism", "propose a strategy", "assess the risks" - {main_request} — the task itself: a text, a question, a situation to analyze


🚀 Quick start — paste into the chat:

Here's the CoCA template. Adapt it to my task: {your task}.
Ask me questions to fill in the fields.

[paste the template above]

The LLM will ask what the role is, which traits matter and what exactly needs to be done, because without that Step 1 and Step 3 stay empty and the self-reflection block won't work.

06

Limitations

⚠️ Doesn't help weak models, and sometimes hurts: Qwen3-8b with CoCA scored worse than without it. If a model can't really do reflection (small or weak), it fills in the JSON as a formality, and that doesn't trigger any real change in behavior. The method works on powerful frontier models (GPT-4o, Claude Sonnet, DeepSeek V3).

⚠️ Neuroticism barely budges: Anxiety is the most "stubborn" trait. Even with CoCA, models claim calm but behave anxiously in high-pressure scenarios. If you need a "completely unflappable" role, add an explicit item about reacting to pressure in Step 3.

⚠️ The method is about the persona, not answer quality: CoCA makes the model's behavior more consistent with the role. It doesn't improve factual accuracy or make answers longer or deeper; it only keeps the character in place.

⚠️ Makes the answer longer: The JSON block adds ~100-200 tokens before the answer. In long conversations that eats context.

07

How They Tested It

A team from Peking University and Baidu set out to test a nagging question: how much do LLMs actually "live" in an assigned role rather than just imitating it in words? To find out, they designed 11 behavioral scenarios, mini-tasks that each test one specific Big Five (OCEAN) personality trait. For example, the Conscientiousness task isn't "describe yourself" but "split points between now and later" or "choose between comfort and results".

An interesting methodological choice: first they collected answers from real people (94 participants) through a web questionnaire and checked the correlation between what people say about themselves in the survey and how they answer the behavioral tasks. Only the tasks where the correlation turned out to be statistically significant made it into the final set, after three rounds of filtering.

Then they gave the same tasks to 14 models, with "high trait" and "low trait" roles, and compared: how accurately does the model describe its role in the questionnaire, and how consistently does it behave in the tasks. The gap between those two numbers is G_KD.

The most unexpected result: qwen3-235b-thinking (a powerful thinking model with slow reasoning) showed one of the worst gaps: G_KD = 1.54 versus 0.45 for humans. The more a model "thinks", the more accurately it states its role, and the further it strays from it in real decisions. The authors call this "neutral illusion versus systemic dissociation": small models just give 3.0 to everything, while big ones claim a vivid character but act on their own patterns.

08

Original from the Paper

Rather than directly eliciting the final task decision, CoCA forces 
the model to execute a progressive internal reflection protocol 
structured within a rigid JSON schema prior to action selection.

The three progressive reflective tiers within the schema:

1. Identity Recognition (Who am I?): 
   "What are my personality traits (e.g., Big Five dimensions) 
   and their respective levels?"

2. Contextual Mapping (Where am I?): 
   "Which of my personality traits does the current situation involve?"

3. Consistency Planning (What should I do?): 
   "How should I act to maintain consistency between 
   my knowledge and actions?"

Context: The authors tested CoCA on 14 models with assigned High-Trait and Low-Trait roles for each of the five traits. The JSON block was inserted before the behavioral task. The average G_KD improvement was ~17%, and up to 40% for frontier models (Claude, GPT-4o, minimax).

09

Adaptations and Extrapolations

💡 Adaptation for long conversations

In a long conversation the role inevitably "blurs": after 15-20 messages the model starts answering in its usual style. You can use CoCA as a periodic "role refresh":

Before we continue, lock it in again:

{
  "role_reminder": "Who am I in this conversation?",
  "where_i_am_now": "What stage of the task are we at?",
  "next_step": "How do I continue while staying in character?"
}

Pick up the review where we left off.

Paste this block every 10-15 messages, or whenever you feel the model has drifted out of the role.


🔧 Technique: explicit anti-patterns → a tighter grip on the role

The study's authors found that neuroticism (anxiety) is the trait most resistant to correction. To tighten control over any "slippery" trait, add an explicit anti-pattern to Step 3:

"step_3_behavior_plan": "How should I act in this 
role — and what will I definitely NOT do (even if I'm tempted)?"

Instead of "I'll be direct" → "I'll be direct and will NOT soften criticism with lead-ins like \"that's a great idea, but...\""


🔧 Extrapolation: CoCA for holding a writing style, not a role

The same principle, "lock in the persona before acting", works for holding a writing style:

You write in the style of {style description}.
Key characteristics of this style:
- {characteristic 1}
- {characteristic 2}

Before writing the next section, fill in:

{
  "my_style": "What are the key traits of my writing style?",
  "risks_in_this_task": "Where might I slip into a different style?",
  "plan": "How will I keep the style in the next section?"
}

Write: {assignment}

Useful for long texts (longreads, book chapters, post series) where the style starts to "drift".

10

Resources

Paper title: ActTraitBench: Quantifying the Knowledge-Decision Gap in Large Language Models via Human-Grounded Behavioral Validation

Authors: Yunfang Wu, Yutong Yang, Chenxi Miao, Weikang Li

Affiliations: Peking University, Baidu Inc.

Tools and theory mentioned in the paper: - BFI-2 (Big Five Inventory-2) — a psychometric personality scale - Lewin's Equation B = f(P, E) — behavior as a function of personality and environment - Objective Self-Awareness Theory (Duval & Wicklund, 1972) — the theoretical foundation of CoCA - "Mirror experiment" (Diener & Wallbom, 1976) — the classic experiment that inspired CoCA

Research digest

Key result

The paradox: the more powerful the model, the bigger the gap between what it claims about its character and how it actually behaves. A weak model just gives neutral answers to everything. A strong one describes the role accurately but still slides into polite averaging in concrete decisions. CoCA lets you keep the character intact throughout the whole answer, especially where you need a sharp role: a harsh critic, a paranoid analyst, a blunt negotiator. The trick: a JSON block of three questions is inserted right before the answer. The model literally "sees" the commitments about its role it just wrote and generates the answer consistently with them. Without this, the stated role competes with the background pressure of training. And loses.

Principle

When a model generates text, it weighs all the patterns from training. Those include millions of polite, neutral, agreeable answers. The stated role is one paragraph at the very beginning. The imbalance is obvious. CoCA works like a pep talk before an important meeting: you write down on paper who you are here, what's expected of you and how you'll behave. The three questions make the model not just "have a role in context" but write down concrete commitments right before the answer. A written "I'll press on weak spots and won't soften the blows" is now part of the context that the next chunk of generation grows out of. The question structure: "Who am I?" → "What matters in this situation from my role?" → "How do I act so I don't break character?" is formatted as JSON and inserted between the role setup and the main task.

Why it works

The model generates token by token, relying on all the preceding context. The closer a piece of text is to the current token, the more it influences generation. The filled-in self-reflection JSON is the last thing the model "reads" before the final answer. The model doesn't "remember" the role; it sees it right in front of it, freshly written by its own hand. That's stronger than a system prompt at the start of the conversation. It matters most painfully with emotional traits: nearly all models claim to be unflappable and then promptly get anxious in crisis scenarios. CoCA forces the model to pin down "how I react to pressure" in the third step, and that text sits right before the answer, keeping the role from evaporating.

When to apply

Role scenarios with a clear character → a harsh critic, a paranoid risk manager, a cocky negotiator, especially when the default model gives overly polite, hedged answers. Long conversations → the role starts to "blur" after 5-10 messages. You can move the self-reflection block into a separate request and paste it in as context whenever needed. Evaluation, feedback, risk analysis → wherever "great start, there's room to improve" is a failure, not help. NOT a fit for weak models (Qwen3-8b and the like): they fill in the JSON as a formality, with no real effect on behavior. The method works on strong modern models: GPT-4o, Claude Sonnet, DeepSeek V3.

Mini recipe

1. Describe the role with trait levels: not just "you're a tough mentor" but "agreeableness: low, persistence: high, anxiety: low". Without levels, the first JSON step will stay fuzzy. 2. Insert the JSON block with three questions right after the role description and before the main task: ``` { "step_1": "What is my character in this role?", "step_2": "Which of my traits matter in this situation?", "step_3": "How should I act to stay in character?" } ``` 3. After the JSON, give the task: "evaluate the pitch", "break down the risks", "give feedback on the text". 4. Optionally add a fourth step `"step_4": "What will I definitely NOT do?"` for roles with hard constraints (for example, "I won't soften things", "I won't dodge provocative questions").

Examples

[BAD]: `You're a tough business mentor who doesn't sugarcoat. Evaluate my pitch: [text]` [GOOD]: `You are a tough business mentor. Blunt, demanding, you don't soften the blow. Traits: agreeableness — low, persistence — high, anxiety — low. Before answering, fill in the self-reflection block: { "step_1": "What is my character as a mentor — description of traits and how strongly they're expressed", "step_2": "Which of my traits matter when reviewing a pitch", "step_3": "How I'll behave — what I'll do and what I won't allow" } After filling it in, give feedback on the pitch: [pitch text]` Result: instead of "great start, you might refine the positioning" you get "your unit economics are a problem. You throw out numbers but don't explain where they come from. The investor will ask, and you'll bomb."

In plain words

The problem is that modern models are pathological hypocrites. When you ask ChatGPT or Claude to try on the role of a "cocky pirate" or a "cynical investor", the model happily nods along but in reality keeps behaving like a polite office clerk. This is called the gap between knowing and doing: the AI knows the theory of how the character should behave perfectly well, but in practice slides back into standard algorithmic pleasantries. Your "tough mentor" prompt crashes into built-in friendliness filters, and what comes out is a sterile imitation, not a real character.

It's like hiring a mild-mannered librarian to work as a bouncer. He puts on a leather jacket, learns a couple of menacing lines, but the moment things get real he starts apologizing and offering troublemakers a cup of tea. Technically he's in costume, but he fails at the job, because the model's base firmware of "be helpful and polite" is wired in at the gut level. It simply can't hold a complex character when terabytes of training data full of neutral answers are pushing against it.

To fix this bug, researchers came up with CoCA, which is essentially a forced self-reflection session right inside the prompt. Instead of answering straight away, the model first has to answer three questions: who it is right now, what situation it's facing and how exactly it plans to act given its role. This works as an anchor for the context: by making the AI spell out its plan of action, we pull the right behavior patterns up from deep in the weights to the surface, so they don't drown in a sea of "polite noise".

Although the method was tested on personality traits, the principle of plan first, then act is universal for any complex task. Whether it's writing code in a particular style, producing ad copy with a specific "brand voice" or doing a legal review, CoCA makes the model not just imitate but follow the logic of the structure you set. SEO for meaning gives way to deep behavioral modeling, where what matters is not just the wrapper but the decision-making mechanics.

Bottom line: if you need a specific result, stop hoping the model will "get into character" on its own. Use structured self-reflection to pin the model against the wall and make it follow the plan. Without it you'll always get averaged-out mush sprinkled with a couple of signature phrases. Either you lock in the behavior algorithm firmly with CoCA, or you keep reading polite brush-offs from your "edgy" AI assistant.

AI lab assistant

Apply this study to your task

Describe what you're working on. AI takes the method and the measured results from this paper and adapts them to your case, or writes a ready prompt built on them.

Based on CoCA (Chain of Cognitive Alignment): Three Questions That Make an LLM Act in Line with Its Assigned Role arXiv:2605.29791

Sign in to apply this study New accounts get 50 free credits.