| name | reevo |
| description | Reflective Evolution (ReEvo) method skill. USE WHEN the user explicitly requests ReEvo / Reflective Evolution, or wants evolution with reflection mechanisms that summarize failure lessons and inject them into the next generation. |
| triggers | ["reevo","reflective evolution","reflection-based evolution"] |
Reflective Evolution (ReEvo) Skill
Paper: Ye et al., "ReEvo: Large Language Models as Hyper-Heuristics with Reflective Evolution", NeurIPS 2024.
1. Method Essence
ReEvo adds a reflection layer to the evolution loop (sample → evaluate → select): before each generation, it summarizes success/failure patterns from historical samples and injects the reflection into the prompt, so the next mutation "stands on experience" rather than trying blindly. Reflection has two levels:
- Long-term reflection: Overall summary of all historical individuals — "what structures work/fail, what patterns repeatedly fail"
- Short-term reflection: Local review of the most recent N individuals (N=5) — "what changed last round, how did it perform"
2. Recommended Parameters
See params.yaml in this directory for the recommended parameter configuration.
Parameter Guidance:
population_size: 8-12 gives more material for reflection; start with 8.
mutation_rate: 0.5 is balanced; increase for more diversity, decrease for stability.
max_sample_nums: ReEvo is more sample-efficient than EoH; 100 is often sufficient.
What Happens During Evolution
- Population initialized; reflection buffer empty
- Each generation:
- Compute short-term reflection (last 5 individuals) and long-term reflection (all history)
- Generate offspring via LLM with reflection-augmented prompts
- Evaluate, select, update population
- Reflection evolves: as more individuals are evaluated, reflections become more insightful
- Common pattern: early generations explore broadly; later generations refine based on accumulated wisdom
Common Pitfalls
- Reflection becomes too vague → reduce window size or add more specific prompts
- No improvement after reflection → check if the problem is too constrained for the operator
- Overfitting to reflection → occasionally force exploration with fresh random mutations
4. Acceptance Criteria
- Reflection prompts appear in the evolution log before each generation
- Population shows improvement correlated with reflection insights
- Short-term and long-term reflections are distinct (not redundant)
- Best individual incorporates ideas from reflection (traceable in code changes)