Skip to main content

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.

The ReflexionAgent implements the Reflexion framework to improve through self-reflection. It follows a process of acting on tasks, evaluating its performance, generating self-reflections, and using these reflections to improve future responses. Based on the research paper: Reflexion: Language Agents with Verbal Reinforcement Learning (Shinn et al., 2023). The agent consists of three specialized sub-agents:
  • Actor: Generates initial responses to tasks
  • Evaluator: Critically assesses responses against quality criteria
  • Reflector: Generates self-reflections to improve future responses

Parameters

ParameterTypeDefaultDescription
agent_namestr"reflexion-agent"Name of the agent
system_promptstrREFLEXION_PROMPTSystem prompt for the agent
model_namestr"openai/o1"Model name for generating responses
max_loopsint3Maximum number of reflection iterations per task
memory_capacityint100Maximum capacity of long-term memory

Methods

act

Generates a response to the given task using the actor agent.
response = agent.act(task: str, relevant_memories: List[Dict[str, Any]] = None) -> str

evaluate

Evaluates the quality of a response to a task. Returns an evaluation string and a score between 0 and 1.
evaluation, score = agent.evaluate(task: str, response: str) -> Tuple[str, float]

reflect

Generates a self-reflection based on the task, response, and evaluation.
reflection = agent.reflect(task: str, response: str, evaluation: str) -> str

refine

Refines the original response based on evaluation and reflection.
refined_response = agent.refine(task: str, original_response: str, evaluation: str, reflection: str) -> str

step

Processes a single task through one iteration of the Reflexion process. Returns a dictionary containing task, response, evaluation, reflection, score, and iteration number.
result = agent.step(task: str, iteration: int = 0, previous_response: str = None) -> Dict[str, Any]

run

Executes the full Reflexion process for a list of tasks.
results = agent.run(tasks: List[str], include_intermediates: bool = False) -> List[Any]

Example

from swarms.agents import ReflexionAgent

agent = ReflexionAgent(
    agent_name="reflexion-agent",
    model_name="openai/o1",
    max_loops=3
)

tasks = [
    "Explain quantum computing to a beginner.",
    "Write a Python function to sort a list of dictionaries by a specific key."
]

results = agent.run(tasks)

for i, result in enumerate(results):
    print(f"\nTask {i+1}: {tasks[i]}")
    print(f"Response: {result}")

Memory System

The agent includes a ReflexionMemory system that maintains both short-term and long-term memories of past experiences, reflections, and feedback.
  • Short-term memory for recent interactions
  • Long-term memory for important reflections and patterns
  • Automatic memory management with capacity limits
  • Relevance-based memory retrieval
  • Similarity-based deduplication

Best Practices

  1. Task Clarity: Provide clear, specific tasks to get the best results
  2. Iteration Count: Adjust max_loops based on task complexity (more complex tasks benefit from more iterations)
  3. Memory Management: Monitor memory usage and adjust memory_capacity as needed
  4. Model Selection: Choose an appropriate model based on your specific use case