Skip to main content

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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

siare-1.2.0.tar.gz (382.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

siare-1.2.0-py3-none-any.whl (461.0 kB view details)

Uploaded Python 3

File details

Details for the file siare-1.2.0.tar.gz.

File metadata

  • Download URL: siare-1.2.0.tar.gz
  • Upload date:
  • Size: 382.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for siare-1.2.0.tar.gz
Algorithm Hash digest
SHA256 e8022fc6448c0485f1ef0aef359360ef1225c1c15a36602125f8a4bbc27f9512
MD5 369afddc4b0b9f66de3e176174a5d896
BLAKE2b-256 ac27c13990c22db1798fd3e3527cb7a0b31c8b1eb9edddca145f8fb25be8aef2

See more details on using hashes here.

Provenance

The following attestation bundles were made for siare-1.2.0.tar.gz:

Publisher: publish.yml on synaptiai/siare

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file siare-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: siare-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 461.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for siare-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d2f7a49286f1412a937cdd1506cbbc2b3ac7e38e947f40563daddd6a37b6d22c
MD5 a85688d4c336e33da21056f4b408f4e2
BLAKE2b-256 9ab4bd17289dd3dbcba519d63522b40143c8d10bb1dc75f3ec20087d10ae5b1e

See more details on using hashes here.

Provenance

The following attestation bundles were made for siare-1.2.0-py3-none-any.whl:

Publisher: publish.yml on synaptiai/siare

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 files

1.0.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page