Zo · Design publication

The Idea Was Right. The Technology Wasn’t Ready.

Revisiting the AI experiences we designed at Zo in 2024, what held them back, and how two years of technological progress have changed what’s possible.

Orezi Mena10 November 202615 min read
Council: one card showing where three models agree and where they differ
2024 · Echo2026 · Council2026 · Debate

In 2024, we were experimenting with something that felt like a glimpse into the future: AI agents that could participate in conversations, respond to one another, and collaborate inside group chats. We could design the experience, and even ship an early version of it, but the technology was still catching up with the ambition. Two years later, I decided to revisit those ideas. This time, the possibilities look very different.

01 · 2024

What I started with

Echo let you pick several AI apps and have each one reply to your message. Echochamber let you set goals and a number of exchanges, then watch the apps talk to each other. Both lived behind the composer’s apps button, both charged Zaps, and both ran in the open group chat.

Echo
Pick appsCode Expert, ChatGPT and others, then Save Echo.
Echo is active"Echo active with 4 AI agent", 8 Zaps per echo, a toggle per app.
Every app repliesEach answer lands as its own message in the group.
Echochamber
Goals and exchanges"8 rounds of conversation will cost you 16 Zaps".
Select appsSuggested and popular apps, including people-shaped agents.
Confirm in chat"Only you can see this", but the debate itself ran in front of everyone.
It runsAgents post one after another, each in front of the whole group.
02 · Review

The gaps

Looking back at the 2024 flows, the gaps fall into two kinds: things the design never factored in, and things the models of the time couldn’t do yet.

What I didn’t factor in

Outcome

No ending

Echochamber promised to "discuss and resolve", but I never decided what it should hand back. It stopped when the talking stopped: no summary, no decision, no next step.

Audience

Who it was for

In a group of 18, I never decided who sees the result. The confirmation said "only you can see this", then every agent reply landed in front of the whole chat.

Agreement

More agents, same answer

I assumed more agents meant better answers. Agents drift towards agreeing with each other, and copies of one model agree fastest. There were no roles and no skeptic to push back.

Control

A spectator once it started

After you pressed start, you could only watch. You couldn’t steer it, add a point, or stop early and keep what had been said.

Value

Paying for talk, not answers

The price counted exchanges, and "exchange" was never defined. Nothing stopped a debate once it was settled, and Echo charged for every message while it was on.

Naming

The name described the failure

An echo chamber is a room where everyone agrees, which is exactly where unchecked AI debate drifts. And Echo and Echochamber were one word apart for two very different features.

What the technology couldn’t do in 2024

Echo designedApr 2024Structured outputAug 2024Reasoning modelsSep 2024MCPNov 2024A2AApr 2025AI in group chatsNov 2025Model councils shipFeb 2026Council and DebateNov 2026
The design came before the tools. Echo was designed four months before guaranteed structured output, seven before MCP and a year before A2A. Everything a council leans on arrived after it.
Cost

Several models per message was expensive

Frontier models cost $10 to $30 per million tokens, so the default was GPT-3.5 and every exchange had to be rationed and charged.

Context

It couldn’t read the room

GPT-3.5 could take in about 16,000 tokens. Debating the actual group conversation, rather than one prompt, was out of reach for the default model.

Structure

No dependable result card

Guaranteed structured output arrived in August 2024. Before that, turning a debate into a clean decision, split or plan meant parsing free text and hoping.

Tools

Agents couldn’t share context

MCP arrived in November 2024 and A2A in 2025. Zo Apps had no standard way to pass context or tools between agents in one conversation.

Freshness

No web search in the APIs

Neither OpenAI’s nor Anthropic’s API had built-in search then, so answers about prices, places or news could be out of date.

03 · The world moved

What changed in AI since 2024

My new direction did not come from the screens alone. Between 2024 and now, AI changed in seven ways that each pointed at a specific design decision.

2024 → 2026

From chatbots to agents

In 2024 AI mostly answered questions. Now it uses tools, reads sources and takes actions. Anthropic introduced the Model Context Protocol in November 2024, and it became the common way to plug models into tools and data.

What it changed for me

Seats can search the web, cite sources and use Zo apps. An outcome can be something you act on, like a suggested split, not just a paragraph.

Since September 2024

Models that think, and think in parallel

OpenAI’s o1 started a run of reasoning models that spend more time before answering. By July 2025 xAI’s Grok 4 Heavy was running several agents side by side and comparing their work. Quality now comes from extra thinking and from parallel attempts, more than from long back-and-forth.

What it changed for me

Council runs three seats at once and compares them. Debate is capped at a few rounds and stops early once positions stop moving.

November 2025

AI moved into group chats

ChatGPT and Poe both launched group chats where people and models share a thread. ChatGPT stays quiet unless it is asked and offers a mention-only mode. The etiquette of an AI in a room of friends became a design problem everyone is solving.

What it changed for me

Council and Debate start from the apps button or an @mention, never on their own. The group sees one result, and debates run in their own thread.

November 2025 → February 2026

Comparing models became a product

Karpathy’s open-source LLM Council and Perplexity’s Model Council both send one question to several models and synthesise one answer. People want to see where models agree and where they don’t, not pick a single favourite.

What it changed for me

Echo became Council. The card leads with where the models land, then shows the split and lets you read every answer.

2024 → 2026

Cost and context stopped being the constraint

Epoch AI measures the price of a fixed level of capability falling tens to hundreds of times a year. Context windows grew from about 16k tokens to 128k and beyond, and cached re-reads became cheap.

What it changed for me

A council can be an everyday reflex and a debate fits any real argument. The price is still shown before you start, but it is small and charged only for what runs.

Mid-2025 → April 2026

Agents learned to talk to each other

Google’s Agent2Agent protocol moved to the Linux Foundation in 2025 and passed 150 supporting organisations within a year. With MCP for tools and A2A for agents, a seat no longer has to be a model you host.

What it changed for me

Seats can be specialists built in App Studio, and later agents from outside Zo can join a debate.

April 2025 → 2026

The agreement problem got a name

OpenAI rolled back a GPT-4o update in April 2025 because it had become too agreeable. Research on multi-agent debate kept finding the same thing: copies of one model drift into agreeing with each other.

What it changed for me

Seats come from different model families, sides are assigned at random, the strongest objection is always kept, and the group can vote on the result.

04 · The numbers

The numbers behind it

The original designs defaulted to GPT-3.5. Most of the limits I designed around then have since gone away. One has not: agents talking to each other do not automatically produce better answers.

What OpenAI and Anthropic could do when Echo was designed

Echo and Echochamber were designed in April 2024. Both labs existed and had working APIs, but the tools this kind of feature needs were either brand new or months away.

In 2024OpenAIAnthropic
Models on offerGPT-3.5 Turbo and GPT-4 Turbo. GPT-4o arrived in May, GPT-4o mini in July.Claude 3 (Haiku, Sonnet, Opus) arrived in March. Claude 3.5 Sonnet in June.
Price per million tokensGPT-3.5 Turbo $0.50 / $1.50. GPT-4 Turbo $10 / $30. GPT-4o $5 / $15.Claude 3 Haiku $0.25 / $1.25. Claude 3 Opus $15 / $75. Claude 3.5 Sonnet $3 / $15.
ContextAbout 16k on GPT-3.5 Turbo; 128k on GPT-4 Turbo and GPT-4o.200k across Claude 3, but long prompts were slow and expensive to resend every turn.
Tools and structureFunction calling existed. Guaranteed JSON (Structured Outputs) only arrived in August 2024.Tool use was in beta from April and generally available from the end of May 2024.
Re-reading the conversationNo caching until October 2024; every agent paid full price to reread the transcript.Prompt caching entered beta in August 2024.
ReasoningNo reasoning models until o1-preview in September 2024.No extended thinking yet.
Agents and standardsAn Assistants API in beta. No group-chat product, no agent-to-agent standard.No MCP until November 2024. Computer use arrived as a beta in October.

So the 2024 limits were real, and they explain the original screens. A cheap model with a short memory, every turn charged at full price, unreliable structure and no way to make agents disagree well meant the safest design was a fixed number of exchanges, a price on every round, and nothing designed for the end.

Limit2024, when Echo shipped2026, now
ContextAbout 16k tokens on GPT-3.5 Turbo. Eight rounds of four agents ran out of room.128k to 1M tokens is normal, so long rooms fit.
Cost$0.50 in and $1.50 out per million tokens, so every round had a visible price.The price of a fixed level of capability falls 9× to 900× a year, median 50×, recently about 200× (Epoch AI). Cached re-reads cost about 10% on Anthropic.
SpeedAgents answered one after another.Parallel streaming is routine, so three seats can answer at once.
OrchestrationHand-rolled turn-taking.Group-chat orchestration with a manager that picks the next speaker ships in Microsoft Agent Framework. A2A (v1, 150+ organisations) lets agents from different vendors talk; MCP connects them to tools.
ProductsPoe’s multi-bot chat (April 2024).Poe group chats with up to 200 people across 200+ models, and ChatGPT group chats with a mention-only mode (both November 2025). Karpathy’s LLM Council (November 2025) and Perplexity’s Model Council (February 2026) compare models and synthesise one answer.

What the research says about agents debating

≈ voting

At equal compute, multi-agent debate usually does not beat simple self-consistency voting. Most of the gain comes from aggregating answers.

85.5%

Highest rate at which agents in same-model teams adopted the majority answer, while using 2.1 to 3.4 times the tokens of self-correction.

91% vs 82%

A reported comparison: mixed model families against identical copies of one model. Diversity helps.

15×

Tokens a multi-agent system uses compared with a chat (Anthropic), with a 90.2% gain on an internal research eval. Worth it only for tasks that matter.

Many of these studies use small open models and benchmark tasks, and some figures come from preprints or secondary summaries. I treat them as direction, not law.

So the value is not watching agents chat. It is what they hand back.
05 · Redesign

What I designed

Echo became Council: several models answer at once, and Zo shows where they agree. Echochamber became Debate: agents take sides, a moderator runs it, and it ends with something you can act on. Both launch from the apps button next to + in the composer, with @council and @debate as shortcuts.

CouncilAsk once, get one card

One card instead of one bubble per agent. Seats from different model families by default. The price before you ask. Only you see it until you post it. Once it’s posted, everyone can open the full answers, and the verdict can become a vote.

2024 · ECHOMena asksAgent 1Agent 2Agent 3Agent 4every reply posts to all 18The group18 people2026 · COUNCILOnly Mena sees thisMena asksClaudeChatGPTGeminiin parallelZo comparesOne cardMena choosespostor vote, debateor discardThe group18 people
How a council travels. In 2024 every agent replied straight into the group. Now the answers stay inside a private boundary until the person who asked decides to post one card.
Watch it: CouncilApps button, pick Council, type, send. Three answers, one comparison, then you post it.
Tap the apps buttonCouncil, Debate, Summarize and Zo Apps in one place.
Council attachesA chip shows the 3 seats and the 6 Zap price before you send.
Three seats, one cardClaude, ChatGPT and Gemini stream in parallel. So far only you can see it.
Where they land2 of 3 recommend it and Gemini differs. Then you choose: post it, put it to a vote, debate it or discard it.
Watch it: the group decidesVotes come in, Mena closes the poll, and the result is saved to Highlights.

DebateChoose the outcome first

You pick what comes back: a decision, a plan, pros and cons, or ranked ideas. Zo casts advocates for each option and a skeptic, spread across model families and assigned at random. You choose a length in plain terms, it stops early once positions stop moving, it runs in its own thread, and the outcome keeps the strongest objection.

Question+ its optionscastsTHE CASTZo · moderatorClaude · for option AGemini · for option BChatGPT · skepticmixed families, random sidesRoundeach speaks onceStill moving?stances · budgetyes · next roundnoOutcomedecision + theopen objectionposted to the chatGroup votesAnyone in the groupadds a point · freejoins next roundMena can end it
How a debate runs. Rounds repeat until positions stop moving or the budget runs out. Points from anyone in the group join the next round, only the starter can end it early, and the outcome comes back as a vote.
Watch it: DebateSet up, check who’s debating, start. Points arrive in the thread, then the outcome lands in the chat.
What comes backThe question and options are filled from the chat.
Who’s debatingRoles you can change, and Quick, Standard or Deep with the price shown.
Watch it: change a rolePick a model already in the debate and the two swap, with Undo.
Watch it: add an optionType it, tap Add, and the cast and price update: 3 debaters plus a skeptic.
Live, in a threadA stance tracker, the moderator, and points from anyone in the group, shown with their name.
The outcomeA decision, a suggested split, the open objection, and what would change it.

VisibilityWho sees what

In a group of 18, the first question is who a result is for. My answer: a council is yours until you share it, and a debate belongs to the group.

The person who started itEveryone else
Council, while it runsWatches the three answers stream inSees nothing and gets no notification
Council, when it finishesPosts it, puts it to a vote, debates it or discards itOpens the full answers once it is posted, replies, starts a poll
Debate, while it runsWatches, adds points, can end itSees one card in the chat, watches, adds a point (free, 1 per round)
Debate outcomePosted to the chat when it finishesReads it and votes on it
Who paysPays for what they startPays only for follow-ups or debates they start
Posted to the groupOne card with the verdict. Anyone can open the full answers.
Watch it: Aise’s sideThe posted card lands, she opens every answer, then replies quoting the council.
A debate starts in the openOne card in the chat. Anyone can watch or add a point; only Mena can end it.
06 · Side by side

Before and after

Council comparison card
Echo replies as separate messages
2024 · Echo2026 · Council
Drag to compare

Four bubbles become one answer

Echo dropped every reply into the group as its own message. Council compares them in a single card that says where the models agree, where they differ, and which one the others ranked most useful.

Debate roles and length
Echochamber setup with exchanges
2024 · Echochamber2026 · Debate
Drag to compare

"8 exchanges" becomes a length you understand

A round is one turn from each debater. Quick, Standard or Deep shows the rounds, the minutes and the maximum Zaps, and the debate finishes early once nobody changes their mind for a full round.

Debate live thread
Echochamber agents replying in the group
2024 · Echochamber2026 · Debate
Drag to compare

From the group chat to its own thread

Agents no longer talk over the people. The debate runs in a thread with a moderator, a stance tracker and a budget bar, and the group only gets the result.

Debate outcome
Echochamber confirmation
2024 · Echochamber2026 · Debate
Drag to compare

A confirmation becomes an outcome

The old flow ended at "are you sure". The new one ends with a recommendation, how many agree, the objection that is still open, and what would change the call.

07 · Craft

The system underneath

The flows sit on a rebuilt design system, reviewed against Apple’s interface guidance and Emil Kowalski’s design-engineering principles, and audited against WhatsApp, Telegram, iMessage, Discord and AI chat apps on Mobbin.

Colour and states

  • Near-black base, with 12-step neutral and violet ramps. Violet now means action and AI, nothing else.
  • Hover, pressed and disabled are solid ramp steps, so they render the same in design tools, code and exports.
  • Contrast fixes: tertiary text from 4.08:1 to 4.6:1 or better; the focus ring from 1.04:1 to 8.8:1.
  • Seven name colours for people, picked from their member ID, as in WhatsApp and Telegram. Real logos for each model, and an avatar each Zo App generates for itself.

Components and layout

  • Message bubbles that hug their text, group by sender, and carry inline time, replies and reactions.
  • One squircle field holding + and the apps button on the left and mic (or send) on the right, all styled the same. It grows with the message instead of a fully rounded pill.
  • Buttons in 3 sizes, 4 variants (including Destructive) and an icon slot, plus Chip and IconButton with a 44px tap area.
  • Spacing on one scale: 104 off-scale values down to 0. Radii on 6, 10, 14, 20, 28 and pill, with squircle smoothing on the composer and its menus.
  • Large sheets that push the chat back, scroll inside and pin the main button.
08 · Calls I made

Decisions

Rename

Echo → Council, Echochamber → Debate

Plain words people already know. "Council" also matches where the industry has landed, so Zo stands out through group chat and @mentions rather than the name.

Diversity

Different model families by default

Mixed families disagree more honestly. In Debate, sides are assigned at random, so no model argues what it already believes.

Etiquette

A council is yours until you share it

A council runs only for the person who asked, and nobody is notified. They post it when it is worth posting, and then everyone can read every answer. A debate is the group’s argument, so it runs in the open: one card in the chat, a thread anyone can add to, and an outcome anyone can vote on.

People decide

An answer can become a vote

Any Council verdict or Debate outcome can be posted as a poll. The models inform; the group chooses.

Cut

House rules are out

I designed a way to save an outcome as a standing rule that Zo would remind the group about. It added rules and reminders to a friendship, and it didn’t earn its place. The vote does the useful part with less ceremony.

Honesty

Show the price, the count and the source

One price format, counts that add up, "2 of 3 agree" with the moderator not voting, AI tags on models, and a disclaimer on anything about money or health.

09 · Next

What is possible now

With prices falling this fast, Council becomes cheap enough to be an everyday reflex, and Debate cheap enough for any decision a group actually argues about.

Within reach

  • Specialist seats from App Studio: a Money Coach or a Travel Planner sitting next to the frontier models.
  • Agents from outside Zo joining a debate over A2A, with MCP tools for live prices, maps and calendars.
  • Voice: ask the council out loud and hear the comparison in a voice note.
  • Highlights as group memory: past councils, debates and votes, searchable, without anything being enforced.
  • Desktop and light mode, using the same tokens.

Guardrails I’m keeping

  • No open-ended chatter. Every debate has a length cap and a hard budget.
  • Agreement is not truth. I show the split and the open objection, not just the winner.
  • Consent for chat history. Sharing the last 50 messages is off by default, and members are told when it is on.
  • No likeness agents without consent. No "Vitalik" seat unless the person agrees.
  • Measure what matters: how many debates end in an outcome, how many outcomes go to a vote, and how often people follow up.
Sources
  1. Anthropic: How we built our multi-agent research system
  2. Epoch AI: LLM inference price trends
  3. Smit et al.: Should we be going MAD?
  4. Sycophancy and consensus collapse in homogeneous multi-agent teams (CAIS 2026)
  5. Zhang et al.: heterogeneous multi-agent debate
  6. Review: Diversity of Thought in multi-agent debate
  7. Karpathy’s LLM Council, explained
  8. Perplexity launches Model Council
  9. OpenAI: Group chats in ChatGPT
  10. TechCrunch: Poe group chats across AI models
  11. Microsoft Agent Framework: group chat orchestration
  12. Linux Foundation: A2A protocol one year on
  13. Linux Foundation: Agent2Agent protocol project launch
  14. Anthropic: Introducing the Model Context Protocol
  15. OpenAI: Sycophancy in GPT-4o
  16. OpenAI: Introducing o1
  17. How Grok 4 Heavy’s multi-agent reasoning works
  18. OpenAI: Hello GPT-4o
  19. OpenAI: GPT-4o mini
  20. OpenAI: Structured Outputs in the API
  21. Anthropic: Introducing the Claude 3 family
  22. Anthropic: Claude 3.5 Sonnet
  23. Anthropic: Tool use is generally available
  24. Anthropic: Prompt caching
  25. GPT-3.5 Turbo vs GPT-4o mini: price and context
  26. Mobbin: WhatsApp poll in a group chat · Luma grouped bubbles · Character AI group chat

Zo · Council and Debate · 2026. Sample names and messages are illustrative.