> ## 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.

# IRE Agent (Iterative Reflective Expansion)

> Iterative hypothesis generation, simulation, and refinement through continuous cycles of testing and meta-cognitive reflection

The Iterative Reflective Expansion (IRE) Algorithm is a sophisticated reasoning framework that employs iterative hypothesis generation, simulation, and refinement to solve complex problems. It leverages a multi-step approach where an AI agent generates initial solution paths, evaluates their effectiveness through simulation, reflects on errors, and dynamically revises reasoning strategies.

## Architecture

```mermaid theme={null}
graph TD
    Problem_Input["Problem Input"] --> Generate_Hypotheses
    Generate_Hypotheses["Generate Initial Hypotheses"] --> Simulate
    subgraph Iterative Reflective Expansion Loop
        Simulate["Simulate Reasoning Paths"] --> Evaluate
        Evaluate["Evaluate Outcomes"] --> Reflect{Is solution satisfactory?}
        Reflect -->|No, issues found| Meta_Reflect
        Reflect -->|Yes| Promising
        Meta_Reflect["Meta-Cognitive Reflection"] --> Revise_Paths
        Revise_Paths["Revise Paths Based on Feedback"] --> Expand_Paths
        Expand_Paths["Iterative Expansion & Pruning"] --> Simulate
    end
    Promising["Promising Paths Selected"] --> Memory
    Memory["Memory Integration"] --> Synthesize
    Synthesize["Synthesize Final Solution"] --> Final["Final Solution"]
```

## Workflow

1. Generate initial hypotheses
2. Simulate paths
3. Reflect on errors
4. Revise paths
5. Select promising paths
6. Synthesize solution

## Class: `IterativeReflectiveExpansion`

### Parameters

| Parameter     | Type    | Default                              | Description                                               |
| ------------- | ------- | ------------------------------------ | --------------------------------------------------------- |
| `agent`       | `Agent` | `None`                               | The Swarms agent instance used to perform reasoning tasks |
| `max_loops`   | `int`   | `5`                                  | Maximum number of loops for the reasoning process         |
| `return_list` | `bool`  | `False`                              | If True, returns the conversation as a list of messages   |
| `return_dict` | `bool`  | `False`                              | If True, returns the conversation as a dictionary         |
| `prompt`      | `str`   | `GENERAL_REASONING_AGENT_SYS_PROMPT` | The system prompt for the agent                           |

### Methods

| Method                        | Description                                                                 |
| ----------------------------- | --------------------------------------------------------------------------- |
| `generate_initial_hypotheses` | Generates an initial set of reasoning hypotheses based on the problem input |
| `simulate_path`               | Simulates a given reasoning path and evaluates its effectiveness            |
| `meta_reflect`                | Performs meta-cognitive reflection on the provided error information        |
| `revise_path`                 | Revises the reasoning path based on the provided feedback                   |
| `select_promising_paths`      | Selects the most promising reasoning paths from a list of candidates        |
| `synthesize_solution`         | Synthesizes a final solution from the promising paths and historical memory |
| `run`                         | Executes the Iterative Reflective Expansion process on the provided problem |

## Example

```python theme={null}
from swarms import IterativeReflectiveExpansion

agent = IterativeReflectiveExpansion(
    max_loops=3,
)

agent.run("What is the 40th prime number?")
```
