๐Adapters
Database adapters provide persistent storage capabilities for SONA agents. They handle memory storage, relationship tracking, and knowledge management across different database backends.
Implementation Notes:
Each adapter optimizes these methods for their specific database backend:
MongoDB: Uses aggregation pipelines for vector operations
PostgreSQL: Leverages pgvector extension
SQLite: Implements BLOB storage for vectors
Qdrant: Optimizes with HNSW indexing
Supabase: Adds real-time capabilities
All adapters provide
interface IDatabaseAdapter {
// Memory Management
createMemory(memory: Memory, tableName: string): Promise<void>;
getMemories(params: { roomId: UUID; count?: number }): Promise<Memory[]>;
searchMemories(params: SearchParams): Promise<Memory[]>;
removeMemory(memoryId: UUID): Promise<void>;
// Account & Room Management
createAccount(account: Account): Promise<boolean>;
getAccountById(userId: UUID): Promise<Account>;
createRoom(roomId?: UUID): Promise<UUID>;
getRoom(roomId: UUID): Promise<UUID>;
// Participant Management
addParticipant(userId: UUID, roomId: UUID): Promise<boolean>;
getParticipantsForRoom(roomId: UUID): Promise<UUID[]>;
// Knowledge Management
createKnowledge(knowledge: RAGKnowledgeItem): Promise<void>;
searchKnowledge(params: SearchParams): Promise<RAGKnowledgeItem[]>;
// Goal Management
createGoal(goal: Goal): Promise<void>;
updateGoalStatus(params: { goalId: UUID; status: GoalStatus }): Promise<void>;
}Adapter Implementaion:
Last updated