config
About 353 wordsAbout 1 min
2025-09-09
Overview
The Configuration API provides interfaces and utilities for managing configuration settings across the RWKV Agent Kit ecosystem.
Classes
ConfigManager
Main class for managing configuration settings.
Constructor
constructor(configPath?: string)Parameters:
configPath: Optional path to configuration file
Methods
load()
Loads configuration from file or default settings.
load(): Promise<Config>Returns:
Promise<Config>: The loaded configuration
save()
Saves current configuration to file.
save(config: Config): Promise<void>Parameters:
config: Configuration object to save
get()
Retrieves a configuration value by key.
get<T>(key: string): T | undefinedParameters:
key: Configuration key
Returns:
T | undefined: The configuration value or undefined
set()
Sets a configuration value.
set<T>(key: string, value: T): voidParameters:
key: Configuration keyvalue: Value to set
validate()
Validates the current configuration.
validate(): ValidationResultReturns:
ValidationResult: Validation result
Functions
createDefaultConfig()
Creates a default configuration object.
function createDefaultConfig(): ConfigReturns:
Config: Default configuration object
mergeConfigs()
Merges multiple configuration objects.
function mergeConfigs(...configs: Partial<Config>[]): ConfigParameters:
configs: Configuration objects to merge
Returns:
Config: Merged configuration
validateConfig()
Validates a configuration object.
function validateConfig(config: Config): ValidationResultParameters:
config: Configuration to validate
Returns:
ValidationResult: Validation result
Types
Config
Main configuration interface.
interface Config {
model: ModelConfig;
agent: AgentConfig;
memory: MemoryConfig;
tools: ToolsConfig;
logging: LoggingConfig;
}ModelConfig
interface ModelConfig {
path: string;
maxTokens: number;
temperature: number;
topP: number;
topK: number;
repeatPenalty: number;
}AgentConfig
interface AgentConfig {
name: string;
description?: string;
systemPrompt?: string;
maxHistory: number;
timeout: number;
}MemoryConfig
interface MemoryConfig {
enabled: boolean;
maxSize: number;
persistPath?: string;
vectorDimension: number;
}ToolsConfig
interface ToolsConfig {
enabled: string[];
disabled: string[];
customTools: CustomToolConfig[];
}LoggingConfig
interface LoggingConfig {
level: 'debug' | 'info' | 'warn' | 'error';
file?: string;
console: boolean;
}ValidationResult
interface ValidationResult {
valid: boolean;
errors: string[];
warnings: string[];
}CustomToolConfig
interface CustomToolConfig {
name: string;
path: string;
enabled: boolean;
}Example Usage
import { ConfigManager, createDefaultConfig } from 'rwkv-agent-kit';
const configManager = new ConfigManager('./config.json');
// Load configuration
const config = await configManager.load();
// Update a setting
configManager.set('model.temperature', 0.8);
// Validate configuration
const validation = configManager.validate();
if (!validation.valid) {
console.error('Configuration errors:', validation.errors);
}
// Save configuration
await configManager.save(config);