> ## Documentation Index
> Fetch the complete documentation index at: https://praison.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Query Rewriter Agent • AI Agent SDK

> QueryRewriterAgent: Agent for rewriting queries to improve retrieval quality in RAG applications.

# QueryRewriterAgent

> Defined in the [**Query Rewriter Agent**](../modules/query_rewriter_agent) module.

<Badge color="blue">AI Agent</Badge>

Agent for rewriting queries to improve retrieval quality in RAG applications.

This agent transforms user queries using various strategies to bridge the gap
between how users ask questions and how information is stored in knowledge bases.

Attributes:
name: Name of the agent
model: LLM model to use for rewriting (alias for llm=)
max\_queries: Maximum number of queries to generate for multi-query strategy
abbreviations: Dictionary of common abbreviations to expand

```mermaid theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#8B0000', 'primaryTextColor': '#fff', 'primaryBorderColor': '#710101', 'lineColor': '#189AB4', 'secondaryColor': '#189AB4', 'tertiaryColor': '#fff' }}}%%

graph LR
    input["Input Data"] --> agent["Agent: QueryRewriterAgent"]
    agent --> output["Output Result"]
    style agent fill:#8B0000,color:#fff
    style input fill:#8B0000,color:#fff
    style output fill:#8B0000,color:#fff
```

## Constructor

<ParamField query="name" type="str" required={false} default="'QueryRewriterAgent'">
  No description available.
</ParamField>

<ParamField query="model" type="str" required={false} default="'gpt-4o-mini'">
  No description available.
</ParamField>

<ParamField query="instructions" type="Optional" required={false}>
  No description available.
</ParamField>

<ParamField query="verbose" type="bool" required={false} default="False">
  No description available.
</ParamField>

<ParamField query="max_queries" type="int" required={false} default="5">
  No description available.
</ParamField>

<ParamField query="abbreviations" type="Optional" required={false}>
  No description available.
</ParamField>

<ParamField query="temperature" type="float" required={false} default="0.3">
  No description available.
</ParamField>

<ParamField query="max_tokens" type="int" required={false} default="500">
  No description available.
</ParamField>

<ParamField query="tools" type="Optional" required={false}>
  No description available.
</ParamField>

## Methods

<CardGroup cols={2}>
  <Card title="agent()" icon="function" href="../functions/QueryRewriterAgent-agent">
    Lazy initialization of internal Agent.
  </Card>

  <Card title="rewrite()" icon="function" href="../functions/QueryRewriterAgent-rewrite">
    Rewrite a query using the specified strategy.
  </Card>

  <Card title="rewrite_basic()" icon="function" href="../functions/QueryRewriterAgent-rewrite_basic">
    Convenience method for basic rewriting.
  </Card>

  <Card title="rewrite_hyde()" icon="function" href="../functions/QueryRewriterAgent-rewrite_hyde">
    Convenience method for HyDE rewriting.
  </Card>

  <Card title="rewrite_step_back()" icon="function" href="../functions/QueryRewriterAgent-rewrite_step_back">
    Convenience method for step-back rewriting.
  </Card>

  <Card title="rewrite_sub_queries()" icon="function" href="../functions/QueryRewriterAgent-rewrite_sub_queries">
    Convenience method for sub-query decomposition.
  </Card>

  <Card title="rewrite_multi_query()" icon="function" href="../functions/QueryRewriterAgent-rewrite_multi_query">
    Convenience method for multi-query generation.
  </Card>

  <Card title="rewrite_contextual()" icon="function" href="../functions/QueryRewriterAgent-rewrite_contextual">
    Convenience method for contextual rewriting.
  </Card>

  <Card title="add_abbreviation()" icon="function" href="../functions/QueryRewriterAgent-add_abbreviation">
    Add a custom abbreviation expansion.
  </Card>

  <Card title="add_abbreviations()" icon="function" href="../functions/QueryRewriterAgent-add_abbreviations">
    Add multiple custom abbreviation expansions.
  </Card>
</CardGroup>

## Usage

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
agent = QueryRewriterAgent(model="gpt-4o-mini")
    result = agent.rewrite("ML best practices", strategy=RewriteStrategy.MULTI_QUERY)
    for query in result.rewritten_queries:
        print(query)
```

## Source

<Card title="View on GitHub" icon="github" href="https://github.com/MervinPraison/PraisonAI/blob/main/src/praisonai-agents/praisonaiagents/agent/query_rewriter_agent.py#L90">
  `praisonaiagents/agent/query_rewriter_agent.py` at line 90
</Card>

***

## Related Documentation

<CardGroup cols={2}>
  <Card title="Agents Concept" icon="robot" href="/docs/concepts/agents" />

  <Card title="Single Agent Guide" icon="book-open" href="/docs/guides/single-agent" />

  <Card title="Multi-Agent Guide" icon="users" href="/docs/guides/multi-agent" />

  <Card title="Agent Configuration" icon="gear" href="/docs/configuration/agent-config" />

  <Card title="Auto Agents" icon="wand-magic-sparkles" href="/docs/features/autoagents" />
</CardGroup>
