Debate Protocol
When sub-agents in a swarm produce conflicting conclusions, Open Astra triggers the debate protocol before the root agent synthesizes results. The protocol surfaces the conflict explicitly, asks each agent to defend its position, and gives the root agent structured input to make a final determination.
When debate is triggered
Debate is triggered when the blackboard conflict detector identifies that two or more sub-agents have written significantly different values to the same key. Conflict detection uses semantic similarity: if the cosine similarity between two values (after embedding) falls below a configurable threshold (default 0.75), a conflict is flagged.
Examples of conflicts that trigger debate:
- Two research agents reach opposite conclusions about a technical approach
- A security-review agent recommends blocking a change that a code agent recommends approving
- Two data-analysis agents produce different numerical summaries of the same dataset
Debate rounds
The debate protocol runs for up to three rounds:
- Opening positions — Each conflicting agent is asked to state its position and provide supporting evidence from its work
- Rebuttal — Each agent is shown the other's opening position and asked to identify weaknesses or concede points
- Closing arguments — Each agent provides a final summary of its best case
After the three rounds, all opening positions, rebuttals, and closing arguments are written to the blackboard under a structured debate_record key.
Root agent synthesis
The root agent reads the debate_record and uses it as additional context when synthesizing the final answer. The root agent is prompted to:
- Identify which position has the strongest evidence
- Note any points of genuine uncertainty that should be flagged to the user
- Produce a final answer that reflects the best synthesis of both positions
Configuration
Debate behavior can be tuned in astra.yml:
settings:
debate:
enabled: true
conflictThreshold: 0.75 # Cosine similarity below this triggers debate
maxRounds: 3 # Debate rounds (1-3)
moderatorModel: gpt-4o # Model used to facilitate the debatemaxRounds: 1. The root agent will receive both positions simultaneously.Debate vs. human approval
The debate protocol resolves conflicts between agents autonomously. If a conflict is particularly high-stakes (e.g., involving security or production deployments), you should configure an approval workflow so that a human can review the conflicting positions before the root agent synthesizes.
Evidence retrieval
The debate_witness tool retrieves supporting evidence from the agent's memory tiers during debate rounds. When a sub-agent needs to defend its position, it can call debate_witness to search session history, daily notes, and the knowledge graph for facts that support its argument. This grounds debate positions in the agent's actual observations rather than relying solely on the model's reasoning.