> ## 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.

# rewrite • AI Agent SDK

> rewrite: Rewrite a query using the specified strategy.

# rewrite

<div className="flex items-center gap-2">
  <Badge color="purple">Method</Badge>
</div>

> This is a method of the [**QueryRewriterAgent**](../classes/QueryRewriterAgent) class in the [**query\_rewriter\_agent**](../modules/query_rewriter_agent) module.

Rewrite a query using the specified strategy.

All operations go through an internal Agent which automatically handles
tool calling when tools are provided. The agent decides when to use tools
based on the query context.

## Signature

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
def rewrite(query: str, strategy: RewriteStrategy, chat_history: Optional[List[Dict[str, str]]], context: Optional[str], num_queries: int) -> RewriteResult
```

## Parameters

<ParamField query="query" type="str" required={true}>
  The original user query
</ParamField>

<ParamField query="strategy" type="RewriteStrategy" required={false} default="RewriteStrategy.AUTO">
  Rewriting strategy to use
</ParamField>

<ParamField query="chat_history" type="Optional" required={false}>
  Previous conversation messages for contextual rewriting
</ParamField>

<ParamField query="context" type="Optional" required={false}>
  Additional context about the knowledge base
</ParamField>

<ParamField query="num_queries" type="int" required={false}>
  Number of queries for multi-query strategy
</ParamField>

### Returns

<ResponseField name="Returns" type="RewriteResult">
  RewriteResult containing rewritten queries
</ResponseField>

## Uses

* `debug`

## Used By

* [`QueryRewriterAgent.rewrite_basic`](../functions/QueryRewriterAgent-rewrite_basic)
* [`QueryRewriterAgent.rewrite_hyde`](../functions/QueryRewriterAgent-rewrite_hyde)
* [`QueryRewriterAgent.rewrite_step_back`](../functions/QueryRewriterAgent-rewrite_step_back)
* [`QueryRewriterAgent.rewrite_sub_queries`](../functions/QueryRewriterAgent-rewrite_sub_queries)
* [`QueryRewriterAgent.rewrite_multi_query`](../functions/QueryRewriterAgent-rewrite_multi_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#L345">
  `praisonaiagents/agent/query_rewriter_agent.py` at line 345
</Card>
