SIARE Documentation
Self-Improving Agentic RAG Engine - Evolve multi-agent RAG pipelines using Quality-Diversity optimization.
SIARE treats your RAG pipeline configuration as a searchable space and uses AI-driven evolution to discover optimal strategies for your specific domain and tasks.
Quick Links
| Getting Started | Core Concepts | Guides |
|---|---|---|
| Installation | System Architecture | First Custom Pipeline |
| Quickstart | Data Models | Prompt Engineering |
| Configuration | Glossary | Custom Extensions |
What is SIARE?
Traditional RAG systems require manual tuning of retrieval strategies, prompt templates, and agent configurations. SIARE automates this through evolutionary optimization:
- Define your multi-agent pipeline (roles, tools, graph structure)
- Provide evaluation tasks and metrics
- Evolve - SIARE mutates and evaluates configurations to find what works best
- Deploy the optimal pipeline for your domain
Key Features
- Quality-Diversity Optimization - MAP-Elites algorithm maintains diverse high-performing solutions
- 6 Mutation Types - Prompt changes, parameter tweaks, topology rewiring, crossover
- Multi-Agent DAGs - Conditional execution paths with role-based specialization
- Extensible Adapters - Vector search, web search, custom tools
- Hook System - Observe and extend core behavior without modifying source
Installation
pip install siare
For full features including LLM providers and embeddings:
pip install siare[full]
See Quickstart for detailed setup instructions.
Example
from siare import pipeline, role, edge, task
# Define a simple RAG pipeline
config = pipeline(
name="my-rag",
roles=[
role("retriever", "Find relevant documents", model="gpt-4o-mini"),
role("synthesizer", "Generate answer from context", model="gpt-4o"),
],
edges=[
edge("retriever", "synthesizer"),
],
)
# Define evaluation tasks
tasks = [
task("What is machine learning?", expected="supervised and unsupervised..."),
]
# Evolve the pipeline
from siare.services import DirectorService, ExecutionEngine
director = DirectorService(llm_provider)
engine = ExecutionEngine(llm_provider)
# Run evolution loop...
See Use Cases for complete examples.
Documentation Sections
Getting Started
- Quickstart Guide - Installation and first pipeline
- Configuration - All configuration options
- Troubleshooting - Common issues and solutions
Architecture
- System Architecture - How SIARE works
- Data Models - Core data structures
Guides
- First Custom Pipeline - Build your first pipeline
- Prompt Engineering - Optimize prompts
- Custom Extensions - Extend SIARE
- Use Cases - Real-world examples
Reference
- Glossary - Key terms and concepts
- Why SIARE? - Comparison with alternatives
- Contributing - How to contribute
License
SIARE is open source under the MIT License.