Quick Start
1
Simple Usage
import { Agent, db } from 'praisonai';
const agent = new Agent({
name: 'Support Agent',
instructions: 'You are a helpful support agent.',
db: db('sqlite:./conversations.db'),
sessionId: 'user-123',
});
await agent.chat('My name is Alice');
2
With Configuration
const agent = new Agent({
name: 'Analytics Agent',
db: db('postgres://localhost/analytics'),
sessionId: 'analysis-session',
});
Agent with Persistent Memory
import { Agent, db } from 'praisonai';
// Create Agent with SQLite persistence
const agent = new Agent({
name: 'Support Agent',
instructions: 'You are a helpful support agent.',
db: db('sqlite:./conversations.db'),
sessionId: 'user-123'
});
// First conversation
await agent.chat('My name is Alice and I need help with billing');
// Agent remembers this
// Later (even after restart)
await agent.chat('What was my issue?');
// Agent recalls: "You mentioned billing issues, Alice"
Agent with Different Databases
import { Agent, db } from 'praisonai';
// SQLite (local file)
const localAgent = new Agent({
instructions: 'You are helpful.',
db: db('sqlite:./data.db')
});
// PostgreSQL (production)
const prodAgent = new Agent({
instructions: 'You are helpful.',
db: db('postgres://user:pass@localhost:5432/mydb')
});
// Redis (distributed)
const redisAgent = new Agent({
instructions: 'You are helpful.',
db: db('redis://localhost:6379')
});
// In-memory (testing)
const testAgent = new Agent({
instructions: 'You are helpful.',
db: db('memory:')
});
Multi-Agent with Shared Database
import { Agent, Agents, db } from 'praisonai';
// Shared database for all Agents
const sharedDb = db('sqlite:./team.db');
const researcher = new Agent({
name: 'Researcher',
instructions: 'Research topics thoroughly.',
db: sharedDb,
sessionId: 'project-alpha'
});
const writer = new Agent({
name: 'Writer',
instructions: 'Write based on research.',
db: sharedDb,
sessionId: 'project-alpha'
});
// Both Agents share conversation history
const agents = new AgentTeam([researcher, writer]);
await agents.start();
Agent Session Management
import { Agent, db } from 'praisonai';
const database = db('sqlite:./support.db');
// Create Agent for specific user session
function createAgentForUser(userId: string) {
return new Agent({
name: 'Support Agent',
instructions: 'You provide personalized support.',
db: database,
sessionId: `user-${userId}`
});
}
// Each user gets their own conversation history
const aliceAgent = createAgentForUser('alice');
const bobAgent = createAgentForUser('bob');
await aliceAgent.chat('I prefer dark mode');
await bobAgent.chat('I prefer light mode');
// Later
await aliceAgent.chat('What theme do I prefer?'); // "dark mode"
await bobAgent.chat('What theme do I prefer?'); // "light mode"
Advanced: Direct Database Operations
For advanced use cases, access the database adapter directly:import { Agent, db } from 'praisonai';
const database = db('sqlite:./data.db');
// Get conversation history
const messages = await database.getMessages('session-123', 50);
console.log(`Found ${messages.length} messages`);
// Create Agent with existing session
const agent = new Agent({
instructions: 'Continue the conversation.',
db: database,
sessionId: 'session-123'
});
// Agent has access to previous messages
await agent.chat('Summarize our conversation so far');
Auto-Restore and Caching
Agents automatically restore conversation history and can cache responses:import { Agent, db } from 'praisonai';
const agent = new Agent({
instructions: 'You are helpful.',
db: db('sqlite:./data.db'),
sessionId: 'user-123',
// Auto-restore history on first chat (default: true)
autoRestore: true,
// Auto-persist messages (default: true)
autoPersist: true,
// Limit restored messages (default: 100)
historyLimit: 50,
// Enable response caching
cache: true,
cacheTTL: 3600 // 1 hour
});
// History is automatically restored on first chat
await agent.chat('Continue our conversation');
// Access history
console.log(agent.getHistory());
// Clear history
await agent.clearHistory();
Database URL Formats
| Database | URL Format |
|---|---|
| SQLite | sqlite:./path/to/file.db |
| PostgreSQL | postgres://user:pass@host:5432/db |
| Neon | neon://user:pass@host/db |
| Redis | redis://host:6379 |
| Upstash | upstash://user:pass@host |
| Memory | memory: |
Agent with Run Tracking
Track Agent runs for analytics:import { Agent, db } from 'praisonai';
const agent = new Agent({
name: 'Analytics Agent',
instructions: 'You analyze data.',
db: db('postgres://localhost/analytics'),
sessionId: 'analysis-session'
});
// Each chat creates a tracked run
const response = await agent.chat('Analyze sales trends');
// Access run information
console.log('Session:', agent.getSessionId());
console.log('Run:', agent.getRunId());
Related
Database CLI
CLI database commands
Memory
Agent memory systems
Sessions
Conversation persistence

