EVOSEAL Setup Guide¶
This guide will help you set up the EVOSEAL development environment.
Prerequisites¶
- Python 3.9 or higher
- Git
- pip (Python package installer)
- Ollama (optional — for local model inference without API keys)
Quick Start¶
-
Clone the repository
-
Set up the development environment
This will: - Create a Python virtual environment
- Install all dependencies
- Set up Git hooks
-
Create a
.envfile from the example -
Activate the virtual environment
-
Configure environment variables Edit the
.envfile with your API keys and configuration:
Local Models (Ollama)¶
The prompt-level co-evolution path can run entirely on local models via Ollama, with no API keys or GPU required. Two models take distinct roles in the co-evolution loop:
| Role | Preferred family | Purpose |
|---|---|---|
coder |
DeepSeek-Coder-V2-Lite | Writes code for a task |
reviewer |
Qwen2.5-Coder | Reviews and scores the output |
Models are auto-discovered from what is installed in Ollama and matched by
family (case-insensitive substring). If you pull a different model from a
compatible family, EVOSEAL will find it automatically. When multiple installed
models match the same family, the first one returned by Ollama's list API is
used; if that isn't what you want, set an explicit override (see below) to pin
the exact tag. Models from unrelated families (e.g. codellama) require an
explicit override.
Setup¶
-
Install Ollama (https://ollama.com/download) and verify it is running:
If thecurlcommand fails or returns empty, Ollama is not running. Start it withollama serve(or launch the Ollama desktop app) and try again. -
Pull the default models:
RAM note: The
16b-lite-instruct-q8_0tag is an 8-bit quantisation of a ~16 B-parameter model and needs roughly 17-18 GB of RAM. It will load on CPU but inference will be slow (several seconds per token on most laptops). If you have less than 24 GB of RAM or want faster iteration, use a smaller or more aggressively quantised variant instead — e.g.deepseek-coder-v2:16b-lite-instruct-q4_K_M, or a lighter family likeqwen2.5-coder:7b-instruct-q4_K_Mfor both roles. EVOSEAL discovers whatever is installed, so any compatible tag works. -
Override a role (optional):
-
Verify the provider unit tests (these stub the Ollama HTTP layer — no running Ollama instance required):
Note: These tests validate the discovery, matching, and fallback logic against a mocked Ollama API. They do not prove that a real Ollama instance is running and serving models. Live end-to-end verification (pull a model, run a co-evolution generation, confirm output) is a separate step — see TODO.md for tracking.
For the architecture behind prompt-level co-evolution with local models, see
docs/architecture/local_coevolution.md.
Project Structure¶
evo-seal/
├── .github/ # GitHub workflows and templates
├── config/ # Configuration files
├── data/ # Data files
├── docs/ # Documentation
├── evoseal/ # Main package
│ ├── core/ # Core functionality
│ ├── integration/ # Integration with DGM, OpenEvolve, SEAL (Self-Adapting Language Models)
│ └── utils/ # Utility functions
├── logs/ # Log files
├── notebooks/ # Jupyter notebooks
├── scripts/ # Utility scripts
├── tests/ # Test suite
├── .env.example # Example environment variables
├── .gitignore # Git ignore rules
├── pyproject.toml # Python project configuration
├── README.md # Project documentation
└── requirements/ # Dependency files
├── base.txt # Core dependencies
├── dev.txt # Development dependencies
└── test.txt # Test dependencies
Development Workflow¶
-
Activate the virtual environment
-
Run tests
-
Run code quality checks
-
Run the linter and formatter automatically before commit
Contributing¶
-
Create a new branch for your feature or bugfix:
-
Make your changes and commit them:
-
Push your changes to the remote repository:
-
Create a pull request on GitHub.
License¶
This project is licensed under the MIT License - see the LICENSE file for details.