> ## Documentation Index
> Fetch the complete documentation index at: https://docs.swarms.world/llms.txt
> Use this file to discover all available pages before exploring further.

# Orchestration Methods

> A comprehensive suite of multi-agent orchestration methods for structured conversations, debates, negotiations, and decision-making

## Overview

`swarms.structs.multi_agent_debates` provides structured conversation orchestrators for coordinating multiple agents in turn-based discussions. Each orchestrator takes a list of `Agent` instances, drives them through a scripted exchange, and returns the resulting conversation history.

Both classes live in `swarms.structs.multi_agent_debates` and are imported from that module directly — they are not re-exported from the top-level `swarms` package.

## Installation

```bash theme={null}
pip install -U swarms
```

## Available Methods

| Method                  | Description                                  | Use Case                                         |
| ----------------------- | -------------------------------------------- | ------------------------------------------------ |
| `OneOnOneDebate`        | Turn-based debate between exactly two agents | Philosophical discussions, adversarial arguments |
| `ExpertPanelDiscussion` | Expert panel with a moderator guiding rounds | Professional discussions, expert opinions        |

## OneOnOneDebate

Simulates a turn-based debate between two agents for a specified number of loops. Both agents are first given a short introduction naming their opponent, then they alternate: each agent's response becomes the next agent's prompt.

### Attributes

<ParamField path="max_loops" type="int" default="1">
  Number of conversational turns. One agent speaks per loop, alternating.
</ParamField>

<ParamField path="agents" type="list[Agent]" default="None">
  Exactly two agents. `run()` raises `ValueError` if the list does not contain exactly two entries.
</ParamField>

<ParamField path="img" type="str" default="None">
  Optional image passed to each agent's `run()` call.
</ParamField>

<ParamField path="output_type" type="str" default="str-all-except-first">
  Format for the returned conversation history.
</ParamField>

### run()

Executes the debate between the two agents.

```python theme={null}
def run(self, task: str)
```

<ParamField path="task" type="str" required>
  The debate topic used as the opening prompt.
</ParamField>

<ResponseField name="return" type="str | list | dict">
  The conversation history, formatted according to `output_type`.
</ResponseField>

<Warning>
  `agents` must contain exactly two agents. Any other number raises `ValueError` when `run()` is called.
</Warning>

### Example

```python theme={null}
from swarms import Agent
from swarms.structs.multi_agent_debates import OneOnOneDebate

# Create debating agents
agent1 = Agent(agent_name="Philosopher1", model_name="gpt-5.4")
agent2 = Agent(agent_name="Philosopher2", model_name="gpt-5.4")

# Initialize debate
debate = OneOnOneDebate(
    max_loops=3,
    agents=[agent1, agent2],
)

# Run debate
result = debate.run("Is artificial intelligence consciousness possible?")
```

## ExpertPanelDiscussion

Simulates an expert panel discussion with a moderator guiding the conversation. Each round, the moderator introduces the topic, every expert responds in turn, and the moderator then synthesises the responses into a follow-up question that becomes the next round's topic.

### Attributes

<ParamField path="max_rounds" type="int" default="3">
  Number of discussion rounds. Note this is `max_rounds`, not `max_loops`.
</ParamField>

<ParamField path="agents" type="List[Agent]" default="None">
  Expert panel participants. At least two are required.
</ParamField>

<ParamField path="moderator" type="Agent" default="None">
  The moderator agent who introduces each round and synthesises responses.
</ParamField>

<ParamField path="output_type" type="str" default="str-all-except-first">
  Format for the returned conversation history.
</ParamField>

### run()

Executes the panel discussion.

```python theme={null}
def run(self, task: str)
```

<ParamField path="task" type="str" required>
  The main topic for discussion, used as the first round's topic.
</ParamField>

<ResponseField name="return" type="str | list | dict">
  The conversation history, formatted according to `output_type`.
</ResponseField>

<Warning>
  `run()` raises `ValueError` if fewer than two experts are supplied in `agents`, or if `moderator` is not set.
</Warning>

### Example

Full example: [Healthcare Panel Discussion](https://github.com/kyegomez/swarms/blob/master/examples/multi_agent/orchestration_examples/healthcare_panel_discussion.py)

```python theme={null}
from swarms import Agent
from swarms.structs.multi_agent_debates import ExpertPanelDiscussion

# Create expert agents
moderator = Agent(agent_name="Moderator", model_name="gpt-5.4")
expert1 = Agent(agent_name="AI_Expert", model_name="gpt-5.4")
expert2 = Agent(agent_name="Ethics_Expert", model_name="claude-sonnet-4-6")
expert3 = Agent(agent_name="Neuroscience_Expert", model_name="gpt-5.4")

# Initialize panel
panel = ExpertPanelDiscussion(
    max_rounds=2,
    agents=[expert1, expert2, expert3],
    moderator=moderator,
)

# Run panel discussion
result = panel.run("What are the ethical implications of AGI development?")
```

## Other Conversation Patterns

Eight further scripted conversation patterns — interview series, peer review, mediation, brainstorming, trial simulation, council meeting, mentorship, and negotiation — ship as standalone example scripts rather than as part of the library. They are built entirely from the public `Agent` and `Conversation` APIs, so they are meant to be copied into your project and adapted, not imported from `swarms`.

Browse them at [`examples/multi_agent/alternate_debates/`](https://github.com/kyegomez/swarms/tree/master/examples/multi_agent/alternate_debates) on GitHub — each file contains one pattern plus a runnable demo.

## Source Code

View the [source code on GitHub](https://github.com/kyegomez/swarms/blob/master/swarms/structs/multi_agent_debates.py)
