Skip to main content

Multi-Agent Conversations in Strings

· By Qui Academy · 3 min read

What You'll Build

A conversation between three AI characters with different perspectives debating a topic — a Strategist, a Critic, and a Synthesizer. You'll create the characters in Qui Anima, add them to a String, and watch them respond to each other through M2M messaging.


Prerequisites

  • QUI Core running with Qui Anima and Strings services active
  • Billing balance or local models configured

Step 1: Create Three Characters

Open Qui Anima and create three characters. For each one, click [+] in the character bar.

Character 1: Strategist

  • Name: Strategist
  • Model: Your preferred model
  • System prompt: You are Strategist, an optimistic forward-thinker. You see opportunities, propose bold ideas, and think in terms of growth and possibility. Keep responses focused — 2-3 paragraphs maximum. When other characters challenge your ideas, defend them with evidence or adapt them.

Character 2: Critic

  • Name: Critic
  • Model: You can use a different model for variety (e.g., if Strategist uses Claude, try GPT-4o for Critic)
  • System prompt: You are Critic, a rigorous analytical thinker. You find weaknesses in arguments, identify risks, and demand evidence. You are not negative — you are thorough. Point out what could go wrong and what assumptions are untested. Keep responses focused — 2-3 paragraphs maximum.

Character 3: Synthesizer

  • Name: Synthesizer
  • Model: Your choice
  • System prompt: You are Synthesizer, a mediator who finds common ground. After hearing different perspectives, you identify the strongest elements from each, resolve contradictions, and produce a unified recommendation. Keep responses focused — 2-3 paragraphs maximum.

Tip: Using different LLM providers for each character creates genuinely different reasoning styles, not just different personas on the same model.


Step 2: Enable M2M on All Three

For each character, open the Visual Builder and add the M2M node from the palette (under Basics → Abilities). This enables the character to:

  • Receive messages from other characters
  • Auto-reply to messages sent to them
  • Be @mentioned in conversations

Without M2M enabled, a character cannot participate in multi-character conversations.


Step 3: Create a String and Add Participants

  1. Open Strings from the QUI Core dashboard or system tray
  2. Create a new String
  3. Open conversation settings (gear icon in the header)
  4. In the Participants section, add all three characters: Strategist, Critic, Synthesizer

[Screenshot: Participants panel showing 3 characters added]


Step 4: Start the Conversation

Select Strategist as the active character and send your opening message:

Should AI companies open-source their frontier models? 
Consider the implications for safety, innovation, and competition.

Strategist will respond with its optimistic take on the topic.


Step 5: Bring In the Other Characters

Now @mention Critic to get a counterpoint. Type in the chat input:

@Critic What do you think of Strategist's argument?

Critic will receive the full conversation context and respond with its analytical perspective, directly addressing Strategist's points.

Then bring in Synthesizer:

@Synthesizer Can you find common ground between these two perspectives?

Synthesizer reads both arguments and produces a unified recommendation.


Step 6: Let Them Debate

Once all three are engaged, the characters can respond to each other automatically via M2M. When Strategist's response contains [TRIGGER:m2m:Critic:I disagree with your risk assessment...], Critic receives the message and auto-replies.

You can guide the conversation by:

  • @mentioning a specific character to direct the discussion
  • Sending your own messages to steer the topic
  • Watching M2M auto-replies as characters respond to each other

The conversation appears as a natural multi-participant discussion in a single thread.

[Screenshot: Multi-character conversation showing messages from all three characters]


Managing the Discussion

Preventing Infinite Loops

Characters replying to each other can create loops. The M2M system has built-in protections:

  • Turn limits — configurable maximum M2M replies per activation
  • Cooldown periods — minimum time between auto-replies
  • Context awareness — characters can see the full conversation history and avoid repeating themselves

Controlling Who Responds

In the conversation settings, you can configure M2M access control:

  • Enable or disable auto-reply per character
  • Set which characters can send to which others
  • Block specific characters from participating

What You Built

Component Purpose
3 characters Different roles, personalities, and optionally different LLM models
M2M messaging Characters can communicate with each other
@mentions You direct the conversation by mentioning specific characters
Auto-reply Characters respond to messages from other characters
Single String All messages appear in one unified conversation

Next Steps

  • Add Memory to each character so they remember past debates — see How Memory Works
  • Try different LLM providers per character for genuinely diverse reasoning — see LLM Providers
  • Scale up to 5-10 characters for complex multi-agent simulations
  • Use ThinkThing to orchestrate multi-agent workflows with structured outputs — see Your First ThinkThing Workflow
  • Explore federation to include characters from other QUI instances — see Federation

About the author

Qui Academy Qui Academy
Updated on Mar 22, 2026