Skip to content

EVOSEAL Configuration Guide

This document describes how to configure the EVOSEAL system for different environments.

Table of Contents

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.json or .yaml - Development settings (local development)
  • config/testing.json or .yaml - Testing settings (CI/CD, local testing)
  • config/production.json or .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

  1. Clone the repository with submodules:

    git clone --recurse-submodules https://github.com/yourusername/EVOSEAL.git
    cd EVOSEAL
    

  2. Set up the development environment:

    # Run the setup script
    ./scripts/setup.sh
    
    # Activate the virtual environment
    source .venv/bin/activate  # On Windows: .\venv\Scripts\activate
    

  3. Configure environment variables (if needed):

    cp .env.example .env
    # Edit .env with your configuration
    

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

  1. Development vs Production
  2. Use ENV=development for local development
  3. Set ENV=production in production
  4. Never commit sensitive data to version control

  5. Logging

  6. Use DEBUG level in development
  7. Use WARNING or higher in production
  8. Configure log rotation for production deployments

  9. Security

  10. Never commit .env files
  11. Use strong secret keys
  12. Restrict file permissions on sensitive configuration

Troubleshooting

Common Issues

  1. Missing Submodules

    git submodule update --init --recursive
    

  2. Configuration Not Loading

  3. Check the value of ENV environment variable
  4. Verify JSON syntax in config files
  5. Check for typos in variable names

  6. Permission Issues

  7. Ensure the application has write access to log and data directories
  8. Check file permissions on configuration files

  9. Module Not Found

  10. Verify the module_path in your configuration points to the correct location
  11. Ensure submodules are properly initialized

For additional help, please refer to the project documentation or open an issue.


Last update: 2025-07-20
Created: 2025-06-17