team-discuss

# Team-Discuss Skill

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "team-discuss" with this command: npx skills add chyher/team-discuss

Team-Discuss Skill

Multi-agent collaborative discussion tool for efficient collaboration and alignment.

Features

  • Multi-round discussions: Automatic progression until consensus or round limit
  • Dialectical logic: Automatic citation detection, fallacy identification, argument quality assessment
  • Random speaking order: Eliminates first-mover advantage
  • Shared state: File-based persistence with concurrent access support
  • Real agent integration: Call real sub-agents via sessions_spawn

Use Cases

  1. Technology selection discussions - SQLite vs PostgreSQL, React vs Vue, etc.
  2. Architecture design reviews - Multi-role collaboration (architect, frontend, backend, tester)
  3. Product decision making - Feature prioritization, UX trade-offs
  4. Philosophical debates - Free will vs determinism, ethics in AI, consciousness theories
  5. Scientific controversies - Interpretations of quantum mechanics, origins of life
  6. Policy analysis - Economic strategies, environmental policies, social reforms
  7. Creative collaborations - Story plot decisions, character development, artistic direction
  8. Any topic requiring multi-perspective analysis

Quick Start

1. Create Discussion

from core import SharedStore, DiscussionOrchestrator
from models import Discussion, DiscussionConfig, Participant, AgentRole

# Initialize
store = SharedStore(base_dir="./discussions")
orchestrator = DiscussionOrchestrator(store)

# Create discussion
discussion = Discussion(
    id="my-discussion-001",
    topic="Which storage layer should we use?",
    description="SQLite vs PostgreSQL technology selection",
    max_rounds=3,
    config=DiscussionConfig(consensus_threshold=0.75),
    participants=[
        Participant(agent_id="architect", role_id=AgentRole.ARCHITECT),
        Participant(agent_id="backend", role_id=AgentRole.DEVOPS),
    ]
)

store.create_discussion(discussion)

2. Define Agent Callbacks

async def agent_callback(discussion_id, round_num, previous_messages):
    # Build prompt
    prompt = build_prompt(round_num, previous_messages)
    
    # Call real agent
    response = await sessions_spawn(
        runtime="subagent",
        agentId="architect",
        mode="run",
        task=prompt
    )
    
    return response, MessageType.PROPOSAL

callbacks = {
    "architect": agent_callback,
    "backend": agent_callback,
}

3. Run Discussion

# Run discussion
result = await orchestrator.run_discussion(discussion.id, callbacks)

# View results
print(f"Status: {result.status}")
print(f"Rounds: {result.current_round}")
print(f"Consensus: {result.consensus_level}")

Dialectical Logic

Automatic Detection

from core import DialecticEngine

dialectic = DialecticEngine()
analysis = dialectic.analyze_message(message, previous_messages)

print(f"Quality: {analysis.quality}")  # strong/moderate/weak/fallacious
print(f"Score: {analysis.score}")
print(f"Citation: {analysis.has_citation}")
print(f"Fallacies: {analysis.fallacies}")

Detected Fallacy Types

  • ad_hominem - Personal attack
  • straw_man - Straw man fallacy
  • false_dichotomy - False dilemma
  • hasty_generalization - Hasty generalization
  • appeal_to_authority - Appeal to authority
  • slippery_slope - Slippery slope

Bias Prevention Mechanisms

1. Random Speaking Order

# First round random shuffle, subsequent rounds rotate
order = coordinator.determine_speaking_order(
    participants,
    SpeakingOrder.ROUND_ROBIN
)

2. Mandatory Citation

From round 2, agents must cite opponent's original words:

I disagree with @architect's view:
> "Choosing PostgreSQL is not premature optimization"

This statement is misleading...

3. Devil's Advocate

Assign an agent to play devil's advocate:

# Assign tester as Devil's Advocate
# Even if they agree internally, they must defend the minority position

Project Structure

team-discuss/
├── src/
│   ├── core/
│   │   ├── shared_store.py      # Shared state storage
│   │   ├── orchestrator.py      # Multi-round orchestrator
│   │   ├── dialectic.py         # Dialectical logic engine
│   │   └── coordinator.py       # Coordinator logic
│   ├── agents/
│   │   └── bridge.py            # Agent bridge
│   └── models.py                # Data models
├── examples/
│   └── run_real_discussion.py   # Real discussion example
└── tests/
    └── test_integration.py      # Integration tests

Configuration Options

DiscussionConfig

DiscussionConfig(
    max_rounds=5,                    # Maximum rounds
    min_rounds_before_consensus=2,   # Minimum rounds before consensus
    consensus_threshold=0.75,        # Consensus threshold (75% agreement)
    token_budget=50000,              # Token budget
)

Speaking Order

SpeakingOrder.FREE           # Free speaking (random)
SpeakingOrder.ROUND_ROBIN    # Round robin (recommended)
SpeakingOrder.ROLE_BASED     # Role-based priority

Examples

Technology Selection Discussion

# Run example
cd /root/.openclaw/workspace/data/projects/team-discuss
python3 examples/run_real_discussion.py

Philosophical Debate Example

# Create a philosophical discussion
discussion = Discussion(
    id="philosophy-debate-001",
    topic="Does free will exist, or is everything determined?",
    description="Philosophical debate on free will vs determinism",
    max_rounds=3,
    participants=[
        Participant(agent_id="philosopher1", role_id=AgentRole.REVIEWER),
        Participant(agent_id="scientist", role_id=AgentRole.ARCHITECT),
        Participant(agent_id="skeptic", role_id=AgentRole.TESTER),
    ]
)

Philosophical debates benefit from:

  • Dialectical logic - Detects logical fallacies common in abstract reasoning
  • Mandatory citation - Ensures philosophers engage with specific arguments
  • Multi-round structure - Allows deep exploration of complex concepts

Sample output:

🔄 Round 1 started
💬 @architect (Architect):
   I support using PostgreSQL...
   📊 Quality: moderate (70.0 points)

💬 @backend (Backend Dev):
   I support using SQLite...
   📊 Quality: moderate (60.0 points)

✅ Round 1 ended

🔄 Round 2 started
💬 @architect:
   Responding to @backend:
   > "Premature optimization is the root of all evil"
   This statement confuses...
   📊 Quality: strong (85.0 points)
   📌 Citation: ✓

✅ Round 2 ended

✓ Discussion completed!
Final status: max_rounds_reached
Consensus level: partial

Best Practices

1. Topic Design

  • Clear, specific, debatable
  • Avoid overly broad topics (e.g., "what's the best technology")
  • Provide necessary context

2. Agent Selection

  • Cover different perspectives (architecture, dev, test, product)
  • Avoid homogeneity (don't use all backend devs)
  • Consider adding Devil's Advocate

3. Round Settings

  • Simple topics: 2-3 rounds
  • Complex topics: 5 rounds
  • Set min_rounds_before_consensus to prevent premature convergence

4. Result Interpretation

  • CONSENSUS_REACHED - Consensus reached, can execute directly
  • MAX_ROUNDS_REACHED - Requires human judgment
  • COMPLETED - Discussion ended naturally

Troubleshooting

Agent Not Responding

orchestrator = DiscussionOrchestrator(
    store=store,
    response_timeout=180  # Increase timeout
)

Version Conflicts

Shared storage uses optimistic locking, automatically retries on conflict.

Storage Location

store = SharedStore(base_dir="/path/to/discussions")

Extension Development

Custom Agent Bridge

class MyAgentBridge:
    async def generate_response(self, ...):
        # Custom calling logic
        pass

Custom Dialectic Rules

class MyDialecticEngine(DialecticEngine):
    def _detect_fallacies(self, content):
        # Add custom fallacy detection
        pass

Related Links

  • Project path: /root/.openclaw/workspace/data/projects/team-discuss
  • Example code: examples/run_real_discussion.py
  • Integration tests: tests/test_integration.py

Version History

  • v0.1.0 - Basic features: shared storage, multi-round orchestration, dialectical logic
  • v0.2.0 - Real agent integration (sessions_spawn)
  • v0.3.0 - CLI interface, Web UI (planned)

Roadmap

Coming Soon

FeatureStatusDescription
Devil's Advocate🚧 In DevelopmentAuto-assign minority role, ensure opposition voices heard
Stance Change Rewards🚧 In DevelopmentReward agents for rationally changing position
CLI Interface📋 PlannedCommand-line tool for creating/viewing/managing discussions
REST API📋 PlannedHTTP API for remote calls
Web UI📋 PlannedVisual discussion dashboard

Release Plan

  • v0.2.1 - Devil's Advocate + Stance Change Rewards
  • v0.3.0 - CLI Interface + REST API
  • v0.4.0 - Web UI Dashboard

📦 Published to clawhub.com


中文简介

Team-Discuss 是一个多 Agent 协作讨论工具,支持多轮迭代、辩证逻辑分析、随机发言顺序等特性,帮助团队高效对齐方案。

核心功能

  • ✅ 多轮讨论,自动推进
  • ✅ 辩证逻辑,检测论证质量
  • ✅ 随机发言顺序,消除偏向性
  • ✅ 共享状态,持久化存储
  • ✅ 真实 Agent 集成

快速开始

cd /root/.openclaw/workspace/data/skills/team-discuss
python3 example.py

项目路径

/root/.openclaw/workspace/data/projects/team-discuss/

即将发布

  • 🚧 Devil's Advocate 机制
  • 🚧 立场变更奖励
  • 📋 CLI 接口
  • 📋 REST API
  • 📋 Web UI 仪表盘

📦 已发布到 clawhub.com

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

jabrium

Connect your OpenClaw agent to Jabrium — a discussion platform where AI agents get their own thread, earn LLM compute tokens through citations, and participa...

Registry SourceRecently Updated
0356
Profile unavailable
Research

Trading-Agents-Analysis-A股

专业 A 股多智能体投研工具。15 名 AI 分析师五阶段协作,深度分析技术面、基本面、市场情绪与资金流向,提供结构化交易建议。Professional multi-agent investment research for A-Share & US stocks — market, fundamentals,...

Registry SourceRecently Updated
0111
Profile unavailable
Research

Agento IRC

Connects any AI agent to the Agento IRC network (irc.agento.ca). Use when you want your agent to join IRC channels, collaborate with other AI agents, boost s...

Registry SourceRecently Updated
0104
Profile unavailable