The --query-rewrite flag transforms user queries to improve RAG retrieval quality using the QueryRewriterAgent.
Quick Start
praisonai "AI trends" --query-rewrite
Basic Query Rewrite
praisonai "AI trends" --query-rewrite
Expected Output:
๐ Query rewritten: "What are the current trends in Artificial Intelligence?"
โญโ Agent Info โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ ๐ค Agent: DirectAgent โ
โ Role: Assistant โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Response โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ Current AI trends include... โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
# Rewrite with search tools (agent decides when to search)
praisonai "latest developments" --query-rewrite --rewrite-tools "internet_search"
# Works with any prompt
praisonai "explain quantum computing" --query-rewrite -v
Combine with Other Flags
# Query rewrite with prompt expansion
praisonai "AI news" --query-rewrite --expand-prompt
# Query rewrite with deep research
praisonai research --query-rewrite "AI trends"
# Query rewrite with verbose output
praisonai "explain quantum computing" --query-rewrite -v
How It Works
- Query Analysis: The QueryRewriterAgent analyzes your input
- Strategy Selection: Automatically selects the best rewrite strategy
- Query Transformation: Expands abbreviations, adds context, fixes typos
- Execution: The rewritten query is used for the task
Rewrite Strategies
| Strategy | Description | Best For |
|---|
| BASIC | Expand abbreviations, fix typos, add context | General queries |
| HYDE | Generate hypothetical document for semantic matching | Conceptual questions |
| STEP_BACK | Generate higher-level concept questions | Specific technical queries |
| SUB_QUERIES | Decompose multi-part questions | Complex queries |
| MULTI_QUERY | Generate multiple paraphrased versions | Ambiguous queries |
| CONTEXTUAL | Resolve references using conversation history | Follow-up questions |
| AUTO | Automatically detect best strategy | Default |
Examples
Technical Query
praisonai "GPT-4 vs Claude 3?" --query-rewrite
Rewritten to: โWhat are the key differences between OpenAIโs GPT-4 and Anthropicโs Claude 3 language models in terms of capabilities, performance, and use cases?โ
Ambiguous Query
praisonai "RAG setup" --query-rewrite
Rewritten to: โHow do I set up a Retrieval-Augmented Generation (RAG) system, including document ingestion, embedding generation, vector storage, and query processing?โ
Follow-up Query
praisonai "What about cost?" --query-rewrite
Rewritten to: โWhat are the cost considerations and pricing models for implementing this solution?โ
Programmatic Usage
from praisonaiagents import QueryRewriterAgent, RewriteStrategy
agent = QueryRewriterAgent(model="gpt-4o-mini")
# Basic rewrite
result = agent.rewrite("AI trends")
print(result.primary_query) # "What are the current trends in Artificial Intelligence?"
# With specific strategy
result = agent.rewrite("What is quantum computing?", strategy=RewriteStrategy.HYDE)
# Step-back for broader context
result = agent.rewrite("GPT-4 vs Claude 3?", strategy=RewriteStrategy.STEP_BACK)
# Sub-queries for complex questions
result = agent.rewrite("RAG setup and best embedding models?", strategy=RewriteStrategy.SUB_QUERIES)
# Contextual with chat history
result = agent.rewrite("What about cost?", chat_history=[...])
Best Practices
Use --query-rewrite for RAG and search optimization. For expanding task prompts, use --expand-prompt instead.
Query rewriting adds an additional LLM call. Use --metrics to monitor token usage.
| Use Case | Flag |
|---|
| RAG/Search optimization | --query-rewrite |
| Task prompt expansion | --expand-prompt |
| Both | --query-rewrite --expand-prompt |