AgenticRouter
Route and orchestrate RAG with agent-like behavior for tool selection and self-reflection.Constructor
str
default:"llama-3.3-70b-versatile"
LLM model name for routing decisions
str
API key for the LLM provider. Falls back to GROQ_API_KEY environment variable
str
default:"https://api.groq.com/openai/v1"
Base URL for OpenAI-compatible API endpoint
Methods
select_tool
Select the best tool for a given query.str
required
User query to route
str
Selected tool name: “retrieval”, “web_search”, “calculation”, or “reasoning”
evaluate_answer_quality
Evaluate generated answer quality with relevance, completeness, and grounding scores.str
required
Original user query
str
required
Generated answer to evaluate
str
default:""
Retrieved context used to generate the answer (for grounding check)
dict[str, Any]
Dictionary containing:
- relevance (0-100): Does it answer the query?
- completeness (0-100): Is it sufficiently detailed?
- grounding (0-100): Is it grounded in the context?
- issues (list): List of identified problems (max 3)
- suggestions (list): List of improvement suggestions (max 2)
self_reflect_loop
Run self-reflection loop to iteratively improve answer quality.str
required
Original user query
str
required
Initial answer to refine
str
default:""
Retrieved context for grounding
int
default:"2"
Maximum refinement iterations
int
default:"75"
Target quality score (0-100) to stop refinement early
str
Final refined answer after iterative improvement
ContextCompressor
Compress and summarize retrieved context to reduce token usage and improve answer quality.Constructor
str
default:"llama-3.3-70b-versatile"
LLM model for compression (Groq API)
str
Groq API key. Falls back to GROQ_API_KEY environment variable
Methods
compress
Compress context using specified compression technique.str
required
Retrieved context to compress
str
required
Original query for relevance filtering
str
default:"abstractive"
Compression technique: “abstractive”, “extractive”, or “relevance_filter”
Any
Additional parameters:
- max_tokens (int): For abstractive compression (default: 2048)
- num_sentences (int): For extractive compression (default: 5)
- relevance_threshold (float): For relevance filtering (default: 0.5)
str
Compressed context text
compress_abstractive
Abstractive compression using LLM summarization.str
required
Context to compress
str
required
Query for relevance
int
default:"2048"
Maximum tokens in compressed output
str
Compressed context summary
compress_extractive
Extractive compression by selecting key sentences.str
required
Context to compress
str
required
Query for relevance
int
default:"5"
Number of sentences to extract
str
Selected sentences joined together
filter_by_relevance
Filter context chunks by relevance threshold.str
required
Context to filter
str
required
Query for relevance scoring
float
default:"0.5"
Minimum relevance score (0-1) to keep chunks
str
Filtered context containing only relevant chunks
QueryEnhancer
Enhance queries using multi-query generation and query expansion techniques.Constructor
str
default:"llama-3.3-70b-versatile"
LLM model for query enhancement
str
API key. Falls back to GROQ_API_KEY environment variable
Methods
generate_multi_queries
Generate multiple query variations for better retrieval coverage.str
required
Original query
int
default:"3"
Number of query variations to generate
list[str]
List of query variations including the original
ResultMerger
Merge and deduplicate results from multiple retrieval sources.Methods
merge_results
Merge document results using specified strategy.list[list[Document]]
required
List of result lists from different sources
str
default:"rrf"
Merging strategy: “rrf” (Reciprocal Rank Fusion) or “interleave”
int
default:"10"
Number of results to return after merging
list[Document]
Merged and deduplicated document list