Query Rewriter Agent

Optimize and rewrite queries for better results

Agents can rewrite queries for better search and retrieval results.

Diagram

Query

Agent

Rewritten

Quick Start

  1. Simple Usage
    typescript
    import { QueryRewriterAgent } from 'praisonai';
    
    const agent = new QueryRewriterAgent();
    
    const result = await agent.rewrite('how to code');
    
    console.log('Original:', result.original);
    console.log('Rewritten:', result.rewritten);
    console.log('Strategy:', result.strategy);
  2. With Configuration
    typescript
    import { QueryRewriterAgent } from 'praisonai';
    
    const agent = new QueryRewriterAgent({
      name: 'QueryOptimizer',
      llm: 'openai/gpt-4o',
      defaultStrategy: 'expand',
      verbose: true
    });

Rewrite Strategies

typescript
import { QueryRewriterAgent } from 'praisonai';

const agent = new QueryRewriterAgent();

// Expand - add more context
const expanded = await agent.rewrite('AI', 'expand');

// Simplify - reduce complexity
const simplified = await agent.rewrite('complex query with many terms', 'simplify');

// Decompose - break into sub-queries
const decomposed = await agent.rewrite('AI and ML and DL', 'decompose');

// Rephrase - same meaning, different words
const rephrased = await agent.rewrite('how to learn coding', 'rephrase');

// Auto - detect best strategy
const auto = await agent.rewrite('some query', 'auto');

Result Structure

typescript
interface RewriteResult {
  original: string;       // Original query
  rewritten: string[];    // Rewritten versions
  strategy: RewriteStrategy;  // Strategy used
  confidence: number;     // Confidence score
}

Multiple Rewrites

typescript
import { QueryRewriterAgent } from 'praisonai';

const agent = new QueryRewriterAgent();

const result = await agent.rewrite('machine learning basics');

// Get all rewritten versions
result.rewritten.forEach((query, i) => {
  console.log(`Version ${i + 1}: ${query}`);
});

Factory Function

typescript
import { createQueryRewriterAgent } from 'praisonai';

const agent = createQueryRewriterAgent({
  name: 'Optimizer',
  defaultStrategy: 'expand'
});

Related