Skip to content

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 | undefined

Parameters:

  • key: Configuration key

Returns:

  • T | undefined: The configuration value or undefined
set()

Sets a configuration value.

set<T>(key: string, value: T): void

Parameters:

  • key: Configuration key
  • value: Value to set
validate()

Validates the current configuration.

validate(): ValidationResult

Returns:

  • ValidationResult: Validation result

Functions

createDefaultConfig()

Creates a default configuration object.

function createDefaultConfig(): Config

Returns:

  • Config: Default configuration object

mergeConfigs()

Merges multiple configuration objects.

function mergeConfigs(...configs: Partial<Config>[]): Config

Parameters:

  • configs: Configuration objects to merge

Returns:

  • Config: Merged configuration

validateConfig()

Validates a configuration object.

function validateConfig(config: Config): ValidationResult

Parameters:

  • 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);