You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Clarifies default and custom feature dimensions in documentation and config files. Updates ProgramDatabase to raise an error if a specified feature dimension is missing from program metrics, with a helpful message. Adds a test to ensure missing feature dimensions trigger the correct error.
- **diversity**: Code structure diversity compared to other programs (recommended default)
306
+
307
+
Only `complexity` and `diversity` are used as defaults because they work well across all program types.
308
+
309
+
**Custom Features**: You can mix built-in features with metrics from your evaluator:
310
+
```yaml
311
+
database:
312
+
feature_dimensions: ["complexity", "performance", "correctness"] # Mix of built-in and custom
313
+
# Per-dimension bin configuration (optional)
314
+
feature_bins:
315
+
complexity: 10 # 10 bins for complexity
316
+
performance: 20 # 20 bins for performance (from YOUR evaluator)
317
+
correctness: 15 # 15 bins for correctness (from YOUR evaluator)
318
+
```
319
+
320
+
**Important**: OpenEvolve will raise an error if a specified feature is not found in the evaluator's metrics. This ensures your configuration is correct. The error message will show available metrics to help you fix the configuration.
321
+
296
322
See the [Configuration Guide](configs/default_config.yaml) for a full list of options.
297
323
324
+
### Default Metric for Program Selection
325
+
326
+
When comparing and selecting programs, OpenEvolve uses the following priority:
327
+
1. **combined_score**: If your evaluator returns a `combined_score` metric, it will be used as the primary fitness measure
328
+
2. **Average of all metrics**: If no `combined_score` is provided, OpenEvolve calculates the average of all numeric metrics returned by your evaluator
329
+
330
+
This ensures programs can always be compared even without explicit fitness definitions. For best results, consider having your evaluator return a `combined_score` that represents overall program fitness.
331
+
298
332
## Artifacts Channel
299
333
300
334
OpenEvolve includes an **artifacts side-channel** that allows evaluators to capture build errors, profiling results, etc. to provide better feedback to the LLM in subsequent generations. This feature enhances the evolution process by giving the LLM context about what went wrong and how to fix it.
0 commit comments