EVOSEAL Configuration Guide¶
This document describes how to configure the EVOSEAL system for different environments.
Table of Contents¶
- Project Structure
- Environment Variables
- Configuration Files
- Component Configuration
- Environment-Specific Settings
- Validation
- Troubleshooting
Project Structure¶
EVOSEAL uses a modular architecture with the following key components:
EVOSEAL/
├── evoseal/ # Main package
│ ├── core/ # Core framework components
│ │ ├── controller.py
│ │ ├── evaluator.py
│ │ ├── selection.py
│ │ └── version_database.py
│ │
│ ├── integration/ # Integration modules
│ │ ├── dgm/ # Darwin Godel Machine
│ │ ├── openevolve/ # OpenEvolve framework
│ │ └── seal/ # SEAL (Self-Adapting Language Models) interface
│ │
│ ├── models/ # Data models and schemas
│ ├── providers/ # AI/ML model providers
│ ├── storage/ # Data persistence
│ ├── utils/ # Utility functions
│ └── examples/ # Example scripts and templates
│ ├── basic/ # Basic usage examples
│ ├── workflows/ # Workflow examples
│ └── templates/ # Project templates
│
├── config/ # Configuration files
│ ├── development.json
│ ├── testing.json
│ └── production.json
│ └── settings.py # Main configuration module
└── scripts/ # Utility scripts
Environment Variables¶
EVOSEAL uses environment variables for sensitive or environment-specific configuration:
| Variable | Description | Required | Default |
|---|---|---|---|
ENV |
Current environment (development, testing, or production) |
No | development |
SECRET_KEY |
Secret key for cryptographic operations | Yes | - |
LOG_LEVEL |
Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL) |
No | INFO |
LOG_FILE |
Path to log file | No | logs/evoseal.log |
DATABASE_URL |
Database connection URL | No | sqlite:///evoseal.db |
Configuration Files¶
EVOSEAL supports YAML configuration files in addition to JSON. The recommended approach is to use YAML for main project configuration, as it is more readable and supports comments.
SystemConfig Model (YAML Support)¶
The evoseal.models.system_config.SystemConfig class provides:
- Loading configuration from YAML: SystemConfig.from_yaml('path/to/config.yaml')
- Dot-notation access: config.get('dgm.max_iterations')
- Validation of required sections: dgm, openevolve, seal, integration
Example YAML structure:
dgm:
enabled: true
max_iterations: 100
openevolve:
enabled: true
seal:
enabled: true
integration:
foo: bar
Example usage:
from evoseal.models.system_config import SystemConfig
config = SystemConfig.from_yaml('configs/evoseal.yaml')
config.validate() # Raises if required sections are missing
max_iters = config.get('dgm.max_iterations', 100)
Environment-Specific Configuration¶
Environment-specific settings are loaded from JSON or YAML files in the config/ directory:
config/development.jsonor.yaml- Development settings (local development)config/testing.jsonor.yaml- Testing settings (CI/CD, local testing)config/production.jsonor.yaml- Production settings
Component Configuration¶
DGM (Darwin Godel Machine)¶
{
"dgm": {
"enabled": true,
"module_path": "dgm",
"max_iterations": 100,
"temperature": 0.7,
"checkpoint_dir": "checkpoints/dgm"
}
}
OpenEvolve¶
{
"openevolve": {
"enabled": true,
"module_path": "openevolve",
"population_size": 50,
"max_generations": 100,
"mutation_rate": 0.1,
"checkpoint_dir": "checkpoints/openevolve"
}
}
SEAL (Self-Adapting Language Models)¶
{
"seal": {
"enabled": true,
"module_path": "SEAL (Self-Adapting Language Models)",
"few_shot_enabled": true,
"knowledge_base_path": "data/knowledge",
"max_context_length": 4096,
"default_model": "gpt-4"
}
}
Environment Setup¶
-
Clone the repository with submodules:
-
Set up the development environment:
-
Configure environment variables (if needed):
Validation¶
To verify your configuration:
# Check environment configuration
python scripts/check_env.py
# Or run the setup script which includes validation
./scripts/setup.sh
Best Practices¶
- Development vs Production
- Use
ENV=developmentfor local development - Set
ENV=productionin production -
Never commit sensitive data to version control
-
Logging
- Use
DEBUGlevel in development - Use
WARNINGor higher in production -
Configure log rotation for production deployments
-
Security
- Never commit
.envfiles - Use strong secret keys
- Restrict file permissions on sensitive configuration
Troubleshooting¶
Common Issues¶
-
Missing Submodules
-
Configuration Not Loading
- Check the value of
ENVenvironment variable - Verify JSON syntax in config files
-
Check for typos in variable names
-
Permission Issues
- Ensure the application has write access to log and data directories
-
Check file permissions on configuration files
-
Module Not Found
- Verify the
module_pathin your configuration points to the correct location - Ensure submodules are properly initialized
For additional help, please refer to the project documentation or open an issue.
Created: 2025-06-17