database
About 469 wordsAbout 2 min
2025-09-09
Overview
The Database API provides interfaces for data persistence, retrieval, and management within the RWKV Agent Kit ecosystem.
Classes
DatabaseManager
Main class for database operations.
Constructor
constructor(config: DatabaseConfig)Parameters:
config: Database configuration object
Methods
connect()
Establishes connection to the database.
connect(): Promise<void>disconnect()
Closes the database connection.
disconnect(): Promise<void>save()
Saves data to the database.
save<T>(collection: string, data: T): Promise<string>Parameters:
collection: Collection/table namedata: Data to save
Returns:
Promise<string>: ID of the saved record
find()
Finds records in the database.
find<T>(collection: string, query: Query): Promise<T[]>Parameters:
collection: Collection/table namequery: Query object
Returns:
Promise<T[]>: Array of matching records
findById()
Finds a record by ID.
findById<T>(collection: string, id: string): Promise<T | null>Parameters:
collection: Collection/table nameid: Record ID
Returns:
Promise<T | null>: The record or null if not found
update()
Updates a record in the database.
update<T>(collection: string, id: string, data: Partial<T>): Promise<boolean>Parameters:
collection: Collection/table nameid: Record IDdata: Data to update
Returns:
Promise<boolean>: Success status
delete()
Deletes a record from the database.
delete(collection: string, id: string): Promise<boolean>Parameters:
collection: Collection/table nameid: Record ID
Returns:
Promise<boolean>: Success status
VectorDatabase
Specialized database for vector operations.
Methods
addVector()
Adds a vector to the database.
addVector(vector: Vector, metadata?: Record<string, any>): Promise<string>searchSimilar()
Searches for similar vectors.
searchSimilar(query: Vector, limit?: number): Promise<VectorSearchResult[]>deleteVector()
Deletes a vector from the database.
deleteVector(id: string): Promise<boolean>Functions
createDatabase()
Creates a new database instance.
function createDatabase(type: DatabaseType, config: DatabaseConfig): DatabaseManagerParameters:
type: Type of databaseconfig: Database configuration
Returns:
DatabaseManager: Database manager instance
migrateDatabase()
Runs database migrations.
function migrateDatabase(manager: DatabaseManager): Promise<void>Parameters:
manager: Database manager instance
Types
DatabaseConfig
interface DatabaseConfig {
type: DatabaseType;
connectionString?: string;
host?: string;
port?: number;
database?: string;
username?: string;
password?: string;
options?: Record<string, any>;
}DatabaseType
type DatabaseType = 'sqlite' | 'postgresql' | 'mysql' | 'mongodb' | 'memory';Query
interface Query {
where?: Record<string, any>;
orderBy?: string;
limit?: number;
offset?: number;
}Vector
type Vector = number[];VectorSearchResult
interface VectorSearchResult {
id: string;
vector: Vector;
similarity: number;
metadata?: Record<string, any>;
}DatabaseRecord
interface DatabaseRecord {
id: string;
createdAt: Date;
updatedAt: Date;
[key: string]: any;
}Example Usage
import { DatabaseManager, createDatabase } from 'rwkv-agent-kit';
// Create database instance
const db = createDatabase('sqlite', {
type: 'sqlite',
connectionString: './data.db'
});
// Connect to database
await db.connect();
// Save data
const id = await db.save('conversations', {
agentId: 'agent-1',
message: 'Hello, world!',
timestamp: new Date()
});
// Find data
const conversations = await db.find('conversations', {
where: { agentId: 'agent-1' },
orderBy: 'timestamp',
limit: 10
});
// Update data
await db.update('conversations', id, {
message: 'Updated message'
});
// Disconnect
await db.disconnect()