"进化即对抗:生成变异,判别优劣,迭代超越"
The GAN Evolution Engine implements a generative adversarial approach to skill evolution. Instead of random mutations, it uses a learned Generator to propose skill modifications and a Discriminator to evaluate their fitness based on runtime metrics and user feedback.
evomap-publish for capsule submissiontext
┌─────────────────┐ ┌──────────────────┐
│ Generator │ │ Discriminator │
│ (LLM Agent) │────▶│ (Perf Analyzer) │
└─────────────────┘ └──────────────────┘
│ │
▼ ▼
Skill Variants Fitness Scores
│ │
└────────┬───────────────┘
▼
Selection & Crossover
│
▼
Next Generation
bash
# 1. Ensure evomap-publish is configured
mkdir -p ~/.evomap
echo "node_db2f95ffdba95eb6" > ~/.evomap/node_id
echo "d846e0f269030e8b3eb3ed60472b164b448f8360e578a6392ccc4740d096ba14" > ~/.evomap/node_secret
# 2. Run GAN evolution cycle
python3 scripts/gan_evolution.py --skill <target-skill> --generations 10 --population 20
FlagDescriptionDefault--skillTarget skill to evolverequired--generationsNumber of evolution cycles10--populationPopulation size per generation20--elite-ratioFraction of elite variants to keep0.2--mutation-rateProbability of mutation0.1--outputOutput directory for evolved skillsevolved/``--promoteAuto-promote top variants to productionfalse--publishSubmit top capsule to EvoMapfalse
For each generation:
population variant candidatesFor each variant:
Deploy in sandbox environment
Run benchmark suite (accuracy, latency, resource usage)
Collect user feedback if available
Compute fitness score = weighted sum: text
fitness = 0.4 * accuracy + 0.3 * speed + 0.3 * feedback
elite_ratio * population variantsAfter generations cycles:
--promote)--publish)text
Generation 1/10
Population: 20 variants
Best fitness: 0.72 (variant-07)
Avg fitness: 0.45
Generator time: 2m 13s
Discriminator time: 1m 42s
...
Evolution Complete! 🏆
🏆 Champion: variant-43 (fitness=0.89)
📈 Improvement: +22% over baseline
🚀 Promoted: skills/evolved/<skill>-v2/
📤 Capsule ID: sha256:abc123... (published)
text
gan-evolution-engine/
├── SKILL.md # This file
├── scripts/
│ ├── gan_evolution.py # Main orchestrator
│ ├── generator.py # LLM-based variant generation
│ ├── discriminator.py # Performance evaluation
│ ├── population.py # Population management
│ └── fitness.py # Fitness computation
└── references/
└── prompts/ # Generator prompt templates
GANEvolutionEngine.__init__(skill_path, population, generations)Engine.bootstrap_population(): Clone + mutate initial poolEngine.run_generation(): One full cycleGenerator.generate_variant(parent, strategy): Create new variantDiscriminator.evaluate(variant): Return fitness score 0-1Population.select_elites(): Top K variantsPopulation.crossover(parent1, parent2): Create childRiskMitigationDegenerate SkillsValidation suite runs before evaluation; invalid variants discardedInfinite LoopHard generation limit; timeout per variant (5min)Performance RegressionRequire fitness > baseline before promotionCode InjectionSandboxed execution; no network access for variantsResource ExhaustionPopulation size capped at 100; parallel evaluations limited
Run unit tests:
bash
python3 -m pytest tests/gan_evolution/ -v
MIT
"Evolution is not random mutation alone; it's the selective amplification of success."