Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

synaptiai/siare

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SIARE - Self-Improving Agentic RAG Engine

PyPI version Python 3.12+ License: MIT CI Documentation

Stop tuning RAG pipelines. Let them evolve.

SIARE is the first self-improving RAG engine that treats pipeline configuration as evolvable genetic material. Instead of manually tuning prompts, retrieval strategies, and agent topologies, SIARE uses Quality-Diversity optimization to automatically discover and maintain diverse high-performing multi-agent RAG strategies.

The Problem

Building RAG systems today means endless iteration:

  • Tweak prompts → benchmark → repeat
  • Try different chunking strategies → benchmark → repeat
  • Adjust retrieval parameters → benchmark → repeat
  • Add more agents → debug interactions → repeat

This process is expensive, brittle, and never-ending as your data and requirements change.

The Solution

SIARE treats your RAG pipeline as a living system that evolves:

  1. Define your goals - accuracy, latency, cost, or custom metrics
  2. Let evolution work - SIARE mutates prompts, tools, and even agent topology
  3. Get diverse solutions - Quality-Diversity ensures you have multiple good options
  4. Adapt continuously - As your data changes, your pipeline evolves

Quick Start

pip install siare

# Initialize a new project
siare init

# Run evolution (10 generations)
siare evolve

# Query your evolved pipeline
siare run "How do I reset my password?"

How It Works

┌─────────────────────────────────────────────────────────────────┐
│                      SIARE Evolution Loop                        │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  ┌──────────┐    ┌──────────┐    ┌──────────┐    ┌──────────┐  │
│  │  Execute │───▶│ Evaluate │───▶│ Diagnose │───▶│  Mutate  │  │
│  │   SOP    │    │  Metrics │    │ Weakness │    │   SOP    │  │
│  └──────────┘    └──────────┘    └──────────┘    └──────────┘  │
│       ▲                                                │         │
│       │                                                │         │
│       └────────────────────────────────────────────────┘         │
│                                                                  │
│  Mutation Types:                                                 │
│  • PROMPT_CHANGE  - Evolve prompts based on failure patterns    │
│  • PARAM_TWEAK    - Adjust model parameters (temp, tokens)      │
│  • ADD_ROLE       - Add new agents to the pipeline              │
│  • REMOVE_ROLE    - Simplify by removing agents                 │
│  • REWIRE_GRAPH   - Change how agents connect and communicate   │
│  • CROSSOVER      - Combine successful strategies               │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

Key Features

🧬 Topology Evolution

Unlike prompt-only optimizers, SIARE can evolve the structure of your pipeline - adding, removing, and rewiring agents to find optimal architectures.

🎯 Quality-Diversity Optimization

Using MAP-Elites, SIARE maintains a diverse population of high-performing solutions. You don't just get one answer - you get a range of options trading off different metrics.

🤖 Hybrid Agentic Evolution

Three evolution modes to match your needs:

  • Single-turn: Fast, cheap mutations via Diagnostician + Architect (default)
  • Agentic: Multi-turn variation with tool access — the agent diagnoses, proposes, validates, and iterates
  • Adaptive: Starts single-turn, automatically escalates to agentic when stagnation is detected

When evolution stalls, a SupervisorAgent analyzes the trajectory and redirects exploration toward unexplored territory.

🔌 Extensible Hooks

Enterprise features integrate cleanly via hooks without modifying core code:

  • Audit logging
  • Usage billing
  • Approval gates
  • Custom metrics

📊 Built-in Benchmarks

Evaluate your pipelines against standard datasets:

  • HotpotQA (multi-hop reasoning)
  • Natural Questions
  • Custom evaluation suites

Installation

# Core package
pip install siare

# With LLM providers
pip install siare[llm]

# With embeddings support
pip install siare[embeddings]

# Everything
pip install siare[full]

Programmatic Usage

from siare import ProcessConfig, Role, GraphEdge
from siare.services import DirectorService, ExecutionEngine, GenePool

# Define your pipeline
config = ProcessConfig(
    name="customer-support",
    version="1.0.0",
    roles=[
        Role(
            name="retriever",
            model="gpt-4o-mini",
            system_prompt="Find relevant documents...",
            tools=["vector_search"],
        ),
        Role(
            name="answerer",
            model="gpt-4o-mini",
            system_prompt="Answer based on retrieved context...",
        ),
    ],
    graph=[
        GraphEdge(source="retriever", target="answerer"),
    ],
)

# Run evolution
director = DirectorService(llm_provider)
gene_pool = GenePool()

for generation in range(10):
    # Execute and evaluate
    trace = await engine.execute(config, task)
    evaluation = await evaluator.evaluate(trace)

    # Diagnose and mutate
    diagnosis = await director.diagnose(evaluation)
    mutated = await director.mutate_sop(config, diagnosis)

    # Track in gene pool
    gene_pool.add(mutated, evaluation)

# Get best solution
best = gene_pool.get_pareto_frontier()[0]

Why SIARE?

Feature SIARE DSPy AutoRAG LangChain
Prompt optimization
Parameter tuning
Topology evolution
Quality-Diversity
Agentic variation
Self-supervision
Multi-agent support Limited
Extensible hooks

Examples

Documentation

Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines.

License

MIT License - see LICENSE for details.


Built with ❤️ by Synapti.ai

Morty Proxy This is a proxified and sanitized view of the page, visit original site.