Skip to main content
All articles
Architecture9 min readUpdated Jun 10, 2026
Building Kapwa · Part 2

The gravity problem

Three AI advisors on one model drift toward the same answer. What we built to hold them apart — without forcing disagreement where it doesn’t belong.


In the first post I described the wall that made me stop bending general-purpose tools and start building. A project holds one persona. I didn’t want one advisor. I wanted a board, several personas in the room at once, going back and forth about my actual problem. The thing that makes this hard is simple to state: load several personas via one model, ask them the same question, and they tend to converge — three responses that drift toward the same answer with superficial variations in style.

This post is about that convergence, and what we did about it. I want to be careful here, because it would be easy to spin a confident theory of why language models behave this way, and most of that theory would be conjecture. So I’ll stay close to two things I can actually stand behind: what’s observable, and what we built.


Seeing it for yourself

Here’s the part that’s observable. You can do it yourself in an afternoon: define three distinct characters, load them into one model, ask all three the same open question. You’ll get three answers that sound different and land in a similar way. Swap the question and it happens again. The variation is mostly in the surface — word choice, phrasing — and the substance pulls toward a common middle.

I won’t pretend to offer a full mechanistic account of why. The part I’m confident about is the simplest one. A language model generates by predicting the most likely next token, over and over. "Most likely," repeated across a whole answer, has a direction: toward a default, a center of mass, the answer the model considers most probable. That’s usually a virtue. It’s why models are coherent and don’t wander into nonsense. But it means every persona riding on that one model is being pulled toward the same center by the same underlying process. You can change the costume — the name, the backstory, the vocabulary — without changing what’s underneath pulling each one along.

I started calling that pull gravity, because it frames how personas are drawn toward a common center before they ever get the chance to diverge. Whatever else contributes, and other things surely do, the shared model underneath is the part I’m willing to name as a cause.

I should acknowledge the levers that already exist, because they’re real. Raise the temperature and outputs vary more. Change the system prompt and the output shifts: tone, emphasis, and content can all vary downstream. Both meaningfully alter what comes out. But look at what kind of variation they buy. Temperature makes the sampling more adventurous without changing anything about the speaker — it’s still one statistical distribution. A system prompt, even a careful one, is one monolithic block of instructions: a different costume. Neither gives you what makes a colleague’s second opinion worth seeking: someone who remembers your situation and holds clear positions on the things you’re weighing. That’s the challenge we actually cared about: not varying the output of a statistical process, but building personas that engage like real people, with memory and with views of their own.

And one admission that keeps the rest of this post honest: convergence still happens in our system, and some of it should. The goal is personas that are unique and reliable, not machinery that forces disagreement where none exists. Ask whether it’s a good idea to eat depleted uranium and any advisor worth having gives you the same answer. The pull we’re working against is narrower: agreement that arrives on questions that deserve a fight — strategy, trade-offs, judgment calls — where consensus takes you off track from the problem you’re trying to solve.


Why "act as three experts" can’t escape it

The straightforward approach is to ask a single model to act as an expert in three instances and stage a debate among them through a single chat. It produces something that looks like a panel: three labeled voices, taking turns. But sit with the output and the disagreement is usually cosmetic. The skeptic concedes a little too gracefully. The optimist and the realist arrive at a synthesis that reads like one person wrote it — because, underneath, one model did. Sycophancy compounds it: many models have a well-documented tendency to agree with the framing they’re handed, and a debate staged in one chat hands each voice the others’ framing. You changed the costumes. You didn’t change the gravity.

This is the thing worth internalizing, and you can confirm it yourself rather than take my word: surface variety is cheap, and real divergence is a harder nut to crack, and they look alike until the moment you need them not to. A second opinion is only worth anything if it can actually surprise you. And most of these costumes are predictable, at best.


"Why not just use different models?"

It’s the natural question once the gravity is pinned on the shared model: if one model means one center of mass, give each advisor a different model. We do. Kapwa runs its advisors across different models, and the difference is real — each model has its own center, its own defaults, its own gravity.

But we found model diversity to be the second step, not the first. A different model under a costume is still a costume: no memory of you, no positions to defend, nothing that makes the divergence belong to the advisor. Swap models without the architecture and you do get variation, but it’s incidental divergence, a function of which model happens to be underneath rather than of who the advisor is supposed to be. The architecture below is what makes a persona reliable enough that the choice of model becomes a deliberate instrument instead of a roll of the dice. How we use that instrument is a post of its own, later in the series.


What we built against it

So the question we actually had to answer wasn’t "why does this happen" in full generality, it was "what holds three personas apart, turn after turn, when the model is constantly pulling them together." Everything below is engineering we found necessary in our own system. I’m describing it as exactly that: what worked for us, not a law about how all models behave.

Identity-scoped memory. Each advisor keeps its own memory of you and of your prior conversations, rather than reading from one shared pool. The reasoning is direct: if every persona is handed the same context, you’ve added one more thing pulling them toward the same read of your situation. Separate memories mean each advisor is, over time, working from a genuinely different sense of who you are and what you’ve been wrestling with. This one has been running in production since early on.

Committed stances. Each advisor holds positions across turns and across sessions, and when new information shifts a position, it revises visibly — it says it’s revising. That was the subject of the persona quotes in Part 1. What it does for disagreement is the relevant part here: a persona that has committed to a position has something to defend, and something to defend is something to disagree from. Without commitment, every turn starts from a blank — and a blank, on a model with a center of mass, drifts toward that center.

Identity weighted above the room. This is the load-bearing piece, so I’ll be specific about what it means. When an advisor composes its response, it can see what the others have said, because it has to; a board where nobody hears anyone isn’t a board. But in the prompt that builds that advisor’s turn, its own identity and committed positions sit in the privileged position, and the peers’ contributions are framed as reference — "here is what your colleagues argued; respond as who you are" — rather than as a consensus to join. In our own testing that framing difference did real work: the same model, handed the same peer text, would fold into agreement when that text read as the answer-in-progress, and push back on it when it read as a rival case to be reckoned with from a fixed point of view. The pull is still there. The idea is to give each persona something heavier to hold onto than the pull: itself.

Not rushing to a single answer. When several advisors respond in one turn, the obvious thing to do is immediately stitch their replies into one tidy paragraph. We hold that step back. Stitching too early is its own quiet force toward consensus — it goes looking for the through-line and will compose one even when the truer output is that the advisors didn’t agree. Sometimes the right result for a board isn’t a conclusion at all. It’s three advisors, shown disagreeing, with the resolution left to you.

None of these is exotic on its own. The work, and the failures we still encounter, are in making them hold together at once, turn after turn, without one of them quietly winning and collapsing the rest back toward the middle.


What this buys, and what it doesn’t

What you get from all of this is a board that stays a board: distinct voices, disagreement that holds when the question deserves it, positions that are defended rather than dissolved, no machinery silently averaging the tension away. That’s the property Part 1 set out to establish, now with the build under it. It’s real, it’s running, and it’s most of what separates a real multi-advisor product from a single chatbot wearing three name tags.

What it is not — and I’ll keep being careful about this, the same way I was in Part 1 — is proof that the disagreement is wise. Holding three advisors apart is a precondition for a good board, not a guarantee of one. A board can be genuinely diverse and genuinely unhelpful. Making the divergence not just real but useful is a harder problem, and it’ll get its own post when I can stand behind the answer.

And it’s still not the deepest thing, the one I started this whole series from: whether a persona can hold a real stake in your work, the way my wife’s advisors held a stake in hers, rather than just holding a consistent voice. Stable identity and real disagreement are the floor for that question. They aren’t the answer to it. I’d rather get there a post at a time than borrow the language of it now.

Next in the series: the persona file convention we adopted from the open-source world, and the specific things we had to add to it to make a board — not just a character — hold together.


Kapwa is launching soon.