TKM AI Agency Platform Documentation
The Configuration component manages system and user-specific settings in the TKM AI Agency Platform, providing a centralized way to handle configurations for all agents and services.
Directory Structure
Backend/AI_Agency/Configuration/
├── config_manager.py # Core configuration management implementation
├── config_router.py # FastAPI endpoints for configuration
├── default/ # Default configuration templates
│ └── llm_config_default.yaml
└── user_configurations/ # User-specific configuration storage
Main Components
ConfigManager
The ConfigManager
class implements a singleton pattern to ensure a single configuration instance across the system:
- Manages default and user-specific configurations
- Loads YAML configuration files
- Provides agent-specific configuration access
- Handles language support settings
Key methods:
get_user_config(user_id)
: Retrieves user-specific configurationget_agent_config(agent_name, user_id)
: Gets agent-specific settingsget_supported_languages()
: Returns available translation languages
Configuration Router
The config_router.py
provides FastAPI endpoints for configuration management:
- GET
/api/config/user/{user_id}
: Retrieve user configuration - PATCH
/api/config/user/{user_id}
: Update user configuration
Key Features
-
Centralized Configuration
- Single source of truth for system settings
- Hierarchical configuration structure
- Default fallback values
-
User Configuration Management
- User-specific settings override defaults
- Dynamic configuration updates
- Persistent storage in YAML format
-
Agent Configuration
- Agent-specific settings management
- Language support configuration
- LLM provider settings
-
Error Handling
- Graceful error recovery
- Detailed error logging
- HTTP exception handling
Integration
The Configuration component integrates with:
- All agents through the
ConfigManager
singleton - FastAPI for configuration endpoints
- Logging system for error tracking
- YAML files for configuration storage
Best Practices
- Always access configurations through the
ConfigManager
- Use type hints for configuration values
- Implement proper error handling
- Keep default configurations up-to-date
- Document configuration changes