Configuration Module

Configure agents with type-safe presets, resolvers, and feature configs

Configure your agents with powerful presets and type-safe configuration options.

Diagram

Configuration Flow

📝 Config

🔧 Resolver

⚙️ Memory

📊 Output

🔒 Guardrails

🌐 Web

Quick Start

  1. Simple Configuration
    typescript
    import { Agent, MemoryConfig } from 'praisonai';
    
    const agent = new Agent({
      name: "Assistant",
      instructions: "Be helpful",
      memory: { backend: 'file', autoMemory: true }
    });
    
    await agent.start("Hello!");
  2. With Presets
    typescript
    import { Agent, OutputPreset, ExecutionPreset } from 'praisonai';
    
    const agent = new Agent({
      name: "Fast Agent",
      instructions: "Quick responses",
      output: { verbose: true, stream: true },
      execution: { maxIter: 5 }
    });

Configuration Interfaces

Memory Configuration

typescript
import { MemoryConfig, MemoryBackend } from 'praisonai';

const memoryConfig: MemoryConfig = {
  backend: MemoryBackend.FILE,
  userId: "user-123",
  sessionId: "session-456",
  autoMemory: true,
  history: true,
  historyLimit: 100,
  storePath: "./memory"
};
OptionTypeDefaultDescription
backendMemoryBackend'file'Storage backend (file, sqlite, redis, postgres)
userIdstringundefinedUser identifier for memory isolation
sessionIdstringundefinedSession identifier
autoMemorybooleanfalseEnable automatic memory management
historybooleantrueStore conversation history
historyLimitnumber100Maximum history entries
storePathstring'./memory'File storage path

Output Configuration

typescript
import { OutputConfig, OutputPreset } from 'praisonai';

const outputConfig: OutputConfig = {
  verbose: true,
  markdown: true,
  stream: true,
  metrics: false,
  reasoningSteps: true
};
OptionTypeDefaultDescription
verbosebooleanfalseEnable verbose logging
markdownbooleantrueFormat output as markdown
streambooleanfalseEnable streaming responses
metricsbooleanfalseShow performance metrics
reasoningStepsbooleanfalseDisplay reasoning steps

Execution Configuration

typescript
import { ExecutionConfig, ExecutionPreset } from 'praisonai';

const executionConfig: ExecutionConfig = {
  maxIter: 10,
  maxRetryLimit: 3,
  maxRpm: 60,
  maxExecutionTime: 300
};
OptionTypeDefaultDescription
maxIternumber10Maximum iterations
maxRetryLimitnumber3Maximum retries on failure
maxRpmnumber60Rate limit (requests per minute)
maxExecutionTimenumber300Timeout in seconds

Enums

Memory Backend

typescript
import { MemoryBackend } from 'praisonai';

// Available backends
MemoryBackend.FILE      // File-based storage
MemoryBackend.SQLITE    // SQLite database
MemoryBackend.REDIS     // Redis cache
MemoryBackend.POSTGRES  // PostgreSQL database
MemoryBackend.MEM0      // Mem0 integration
MemoryBackend.MONGODB   // MongoDB database

Output Preset

typescript
import { OutputPreset } from 'praisonai';

OutputPreset.SILENT   // No output
OutputPreset.STATUS   // Status updates only
OutputPreset.TRACE    // Trace logging
OutputPreset.VERBOSE  // Full verbose output
OutputPreset.DEBUG    // Debug mode
OutputPreset.STREAM   // Streaming output
OutputPreset.JSON     // JSON format

Execution Preset

typescript
import { ExecutionPreset } from 'praisonai';

ExecutionPreset.FAST       // Quick execution (maxIter: 10)
ExecutionPreset.BALANCED   // Balanced (maxIter: 20)
ExecutionPreset.THOROUGH   // Thorough (maxIter: 50)
ExecutionPreset.UNLIMITED  // No limits (maxIter: 1000)

Common Patterns

Full Config

typescript
import { Agent, PraisonConfig } from 'praisonai';

const config: PraisonConfig = {
  defaults: { llm: 'gpt-4o-mini', temperature: 0.7 },
  memory: { backend: 'file', autoMemory: true },
  output: { verbose: true, stream: true },
  execution: { maxIter: 10 },
  caching: { enabled: true, ttl: 3600 }
};

const agent = new Agent({
  name: "Configured Agent",
  instructions: "Be helpful",
  ...config
});

Multi-Agent Config

typescript
import { AgentTeam, MultiAgentMemoryConfig } from 'praisonai';

const memoryConfig: MultiAgentMemoryConfig = {
  backend: 'redis',
  sharedMemory: true,
  isolatedSessions: false
};

const team = new AgentTeam({
  agents: [agent1, agent2],
  memory: memoryConfig
});

API Reference


Best Practices

Use presets for common scenarios

Start with presets like ExecutionPreset.FAST for quick tasks or ExecutionPreset.THOROUGH for complex research.

Configure memory for persistence

Enable autoMemory: true to automatically persist important context across sessions.

Set appropriate rate limits

Use maxRpm to prevent API rate limiting, especially in production environments.


Related