Demonstrates collaborative agent discussions where multiple agents engage in iterative dialogue to reach consensus, explore different perspectives, or solve complex problems through multi-agent conversation.
- Multi-Agent Dialogue: Facilitating conversations between multiple agents
- Perspective Synthesis: Combining different viewpoints into unified insights
- Consensus Building: Reaching agreement through structured discussion
- Discussion Moderation: Guiding productive multi-agent conversations
- Collaborative Problem-Solving: Leveraging diverse expertise through dialogue
discussion-pattern/
├── README.md # This guide
├── requirements.txt # Dependencies
├── .env.example # Environment template
├── main.py # Main application
└── docs/
└── discussion_flows.md # Advanced discussion patterns
# Install dependencies
pip install -r requirements.txt
# Configure environment
cp .env.example .env
# Edit .env with your LLM settings
# Run the example
python main.py Discussion Topic
│
▼
DiscussionModerator
(Facilitator)
│
┌─────────────────┼─────────────────┐
▼ ▼ ▼
OptimistAgent RealistAgent SkepticalAgent
(Opportunities) (Practical) (Risks)
│ │ │
└─────────────────┼─────────────────┘
▼
CreativeAgent
(Innovation)
│
▼
ConsensusBuilder
(Synthesis)
│
▼
Final Agreement
- Moderation: DiscussionModerator sets agenda and guides process
- Multi-Perspective Input: Various agents share diverse viewpoints
- Iterative Dialogue: Multiple rounds of discussion and refinement
- Synthesis: ConsensusBuilder integrates perspectives into unified outcomes
# Topic: "Should we invest in AI automation for customer service?"
#
# Round 1 - Initial Perspectives:
# → OptimistAgent: "Great opportunity for efficiency and 24/7 support!"
# → RealistAgent: "Need to consider implementation costs and training"
# → SkepticalAgent: "Risk of losing personal touch with customers"
# → CreativeAgent: "What about hybrid AI-human approach?"
#
# Round 2 - Synthesis:
# → ConsensusBuilder: "Phased implementation with human oversight..."
# → Final Decision: Balanced approach addressing all concernsComplete strategic decision-making discussion:
python main.py
# Select option 1Feature prioritization through collaborative dialogue:
python main.py
# Select option 2Multi-round crisis response planning:
python main.py
# Select option 3See how different agents approach the same question:
python main.py
# Select option 4Watch consensus emerge from diverse viewpoints:
python main.py
# Select option 5Join the discussion as a participant:
python main.py
# Select option 6- Multiple expert perspectives
- Thorough exploration of options
- Reduced blind spots and bias
- More robust decision-making
- Structured path to agreement
- Address all stakeholder concerns
- Build buy-in and commitment
- Create win-win solutions
- Diverse thinking approaches
- Cross-pollination of ideas
- Breakthrough insights
- Innovation through collaboration
- Consider multiple viewpoints
- Weigh pros and cons thoroughly
- Mitigate risks while pursuing opportunities
- Make well-rounded decisions
@app.agent(
name="ModeratorAgent",
description="Facilitates productive discussion",
system_prompt="Guide conversation, ensure participation, drive consensus..."
)
async def moderator_agent():
pass
@app.agent(
name="PerspectiveAgent",
description="Represents specific viewpoint",
system_prompt="Focus on [specific perspective]: opportunities, risks, practicality..."
)
async def perspective_agent():
passasync def facilitate_discussion(topic: str, rounds: int = 3):
async with app.run_context() as rt:
for round_num in range(rounds):
# Moderator guides
moderator_result = await rt.call_agent("ModeratorAgent", topic)
# Participants contribute
for participant in participants:
result = await rt.call_agent(participant, topic)
# Synthesize round
synthesis = await rt.call_agent("ConsensusBuilder", topic)class DiscussionManager:
def __init__(self, participants: List[str]):
self.participants = participants
self.discussion_history = []
async def run_discussion(self, topic: str) -> str:
# Implement structured discussion logic
pass- Business strategy decisions
- Investment evaluations
- Market entry planning
- Resource allocation
- Feature prioritization
- Design decisions
- Technology choices
- User experience planning
- Regulatory compliance
- Ethics considerations
- Risk management
- Stakeholder alignment
- Workflow optimization
- Quality enhancement
- Efficiency initiatives
- Change management
@app.agent(
name="DebateModerator",
system_prompt="""
Moderate a structured debate:
1. Opening statements from each side
2. Argument exchange rounds
3. Rebuttal opportunities
4. Closing arguments
5. Final synthesis
"""
)@app.agent(
name="DevilsAdvocate",
system_prompt="""
Challenge the emerging consensus by:
- Questioning assumptions
- Identifying weaknesses
- Proposing alternative views
- Stress-testing decisions
"""
)@app.agent(
name="SocraticModerator",
system_prompt="""
Guide discussion through questions:
- Ask probing questions
- Challenge assumptions
- Draw out implications
- Lead to insights through inquiry
"""
)- Ensure diverse perspectives
- Avoid dominant voices
- Encourage equal participation
- Manage group dynamics
- Set clear discussion structure
- Monitor progress toward goals
- Keep conversations focused
- Prevent endless loops
- Ensure substantive contributions
- Prevent superficial responses
- Maintain professional dialogue
- Drive toward actionable outcomes
def evaluate_consensus(discussion_output: str) -> dict:
return {
"agreement_level": assess_agreement(discussion_output),
"concern_coverage": check_concerns_addressed(discussion_output),
"actionability": evaluate_actionable_outcomes(discussion_output),
"stakeholder_satisfaction": rate_stakeholder_buy_in(discussion_output)
}def analyze_participation(discussion_log: List[dict]) -> dict:
return {
"contribution_balance": measure_equal_participation(discussion_log),
"perspective_diversity": assess_viewpoint_variety(discussion_log),
"quality_of_input": rate_contribution_substance(discussion_log)
}- Comprehensiveness of analysis
- Stakeholder concern integration
- Implementation feasibility
- Risk mitigation effectiveness
After mastering discussion patterns:
- Advanced Integration: Content Creation Pipeline
- Real-World Applications: Legal Document Analysis
- Complex Workflows: DevOps Incident Response
- Build Custom Discussions: Create your own collaborative agent systems
- Clear Roles: Define distinct perspectives and responsibilities
- Structured Process: Use consistent discussion frameworks
- Balanced Participation: Ensure all voices are heard
- Outcome Focus: Drive toward actionable decisions
- Start with 3-4 distinct perspectives
- Use a strong moderator to guide flow
- Build in synthesis and consensus steps
- Test with various topic complexities
- Avoid echo chambers (too similar perspectives)
- Don't let discussions become endless
- Ensure moderator remains neutral
- Plan for when consensus isn't reached
This example is provided under the MIT License.