SkillAgentSearch skills...

AlphaEvolveWriting

No description available

Install / Use

/learn @tobysimonds/AlphaEvolveWriting
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<div align="right"> <details> <summary >🌐 Language</summary> <div> <div align="center"> <a href="https://openaitx.github.io/view.html?user=tamassimonds&project=AlphaEvolveWriting&lang=en">English</a> | <a href="https://openaitx.github.io/view.html?user=tamassimonds&project=AlphaEvolveWriting&lang=zh-CN">简体中文</a> | <a href="https://openaitx.github.io/view.html?user=tamassimonds&project=AlphaEvolveWriting&lang=zh-TW">繁體中文</a> | <a href="https://openaitx.github.io/view.html?user=tamassimonds&project=AlphaEvolveWriting&lang=ja">日本語</a> | <a href="https://openaitx.github.io/view.html?user=tamassimonds&project=AlphaEvolveWriting&lang=ko">한국어</a> | <a href="https://openaitx.github.io/view.html?user=tamassimonds&project=AlphaEvolveWriting&lang=hi">हिन्दी</a> | <a href="https://openaitx.github.io/view.html?user=tamassimonds&project=AlphaEvolveWriting&lang=th">ไทย</a> | <a href="https://openaitx.github.io/view.html?user=tamassimonds&project=AlphaEvolveWriting&lang=fr">Français</a> | <a href="https://openaitx.github.io/view.html?user=tamassimonds&project=AlphaEvolveWriting&lang=de">Deutsch</a> | <a href="https://openaitx.github.io/view.html?user=tamassimonds&project=AlphaEvolveWriting&lang=es">Español</a> | <a href="https://openaitx.github.io/view.html?user=tamassimonds&project=AlphaEvolveWriting&lang=it">Itapano</a> | <a href="https://openaitx.github.io/view.html?user=tamassimonds&project=AlphaEvolveWriting&lang=ru">Русский</a> | <a href="https://openaitx.github.io/view.html?user=tamassimonds&project=AlphaEvolveWriting&lang=pt">Português</a> | <a href="https://openaitx.github.io/view.html?user=tamassimonds&project=AlphaEvolveWriting&lang=nl">Nederlands</a> | <a href="https://openaitx.github.io/view.html?user=tamassimonds&project=AlphaEvolveWriting&lang=pl">Polski</a> | <a href="https://openaitx.github.io/view.html?user=tamassimonds&project=AlphaEvolveWriting&lang=ar">العربية</a> | <a href="https://openaitx.github.io/view.html?user=tamassimonds&project=AlphaEvolveWriting&lang=fa">فارسی</a> | <a href="https://openaitx.github.io/view.html?user=tamassimonds&project=AlphaEvolveWriting&lang=tr">Türkçe</a> | <a href="https://openaitx.github.io/view.html?user=tamassimonds&project=AlphaEvolveWriting&lang=vi">Tiếng Việt</a> | <a href="https://openaitx.github.io/view.html?user=tamassimonds&project=AlphaEvolveWriting&lang=id">Bahasa Indonesia</a> </div> </div> </details> </div>

AlphaEvolve Writing

AlphaEvolve Writing Process

You can find the full explanation here

You can find a sample story submitted to a writting comp here

A modern, evolutionary writing system that uses AI models to generate, evaluate, and evolve creative stories or general writing pieces through iterative competitions. Built with clean, modular Python architecture following modern design principles.

✨ Features

  • 🧬 Evolutionary Algorithm: Stories evolve through AI-powered tournaments
  • 🎯 Dual Writing Modes: Creative storytelling and general writing optimization
  • 🏆 ELO Tournament System: Sophisticated ranking through pairwise comparisons
  • 🌐 Web Interface: Human validation and story comparison tools
  • 🔧 Configurable: Extensive customization through JSON configuration

🚀 Quick Start

Installation

# Clone the repository
git clone https://github.com/your-org/alphaevolve-writing
cd alphaevolve-writing

# Install with uv (recommended)
uv sync

# Or install with pip
pip install -e .

# Configure your API keys (see Configuration section below)

Run Evolution

# Run 5 evolution iterations
python evolve.py 5

# Fresh start with 3 iterations
python evolve.py 3 --fresh

# Use general writing mode
python evolve.py 5 --general

# Show help
python evolve.py --help

🏗️ Architecture

The system follows modern Python design principles with clean separation of concerns:

├── src/
│   ├── core/           # Pipeline orchestration
│   │   └── pipeline.py # Main EvolutionPipeline class
│   ├── generators/     # Story generation logic
│   │   ├── story_generator.py      # Initial & next batch generators
│   │   ├── generate_response.py    # Creative writing generation
│   │   ├── generate_response_general.py # General writing generation
│   │   └── judge_response.py       # AI judging system
│   ├── rankers/        # ELO ranking system
│   │   ├── elo_rank.py            # Core ELO algorithm
│   │   └── tournament_runner.py    # Tournament management
│   └── utils/          # Utility functions
│       └── inference.py           # Multi-provider LLM interface
├── evolve.py           # Clean CLI entry point
├── pyproject.toml      # Modern Python packaging
├── config.json         # Configuration
└── web_interface/      # Web UI for validation

Key Components

  • EvolutionPipeline: Main orchestrator that manages the complete evolution cycle
  • InitialStoryGenerator: Creates the first generation of stories from prompts
  • NextBatchGenerator: Evolves top performers into improved variants
  • TournamentRunner: Manages ELO tournaments for story ranking
  • EloRankingSystem: Implements sophisticated ranking algorithm

📖 How It Works

The system follows a three-stage evolution cycle:

1. Generate Initial Batch

  • Creates multiple stories from your prompt
  • Uses configurable AI models (GPT, Claude, Llama, etc.)
  • Assigns initial ELO ratings

2. Run ELO Tournament

  • Stories compete in pairwise comparisons
  • AI judges evaluate based on your rubric
  • ELO ratings updated based on wins/losses

3. Generate Next Batch

  • Top-performing stories selected
  • Variants generated with improvements
  • Process repeats for multiple generations

This iterative process evolves increasingly better writing over time.

⚙️ Configuration

Basic Setup

Edit these key files:

  • prompt.txt - Your writing prompt/theme
  • rubric.txt - Judging criteria for evaluation
  • config.json - System configuration

API Keys Setup

The system supports multiple AI providers configured through config.json. The configuration maps models to providers and specifies which environment variables contain the API keys:

{
  "llm_providers": {
    "openai": {
      "type": "openai",
      "base_url": "https://api.openai.com/v1",
      "api_key_env": "OPENAI_API_KEY"
    },
    "anthropic": {
      "type": "anthropic", 
      "api_key_env": "ANTHROPIC_API_KEY"
    },
    "deepinfra": {
      "type": "openai_compatible",
      "base_url": "https://api.deepinfra.com/v1/openai",
      "api_key_env": "DEEPINFRA_API_KEY"
    },
    "deepseek": {
      "type": "openai_compatible",
      "base_url": "https://api.deepseek.com/v1",
      "api_key_env": "DEEPSEEK_API_KEY"
    },
    "gemini": {
      "type": "openai_compatible",
      "api_key_env": "GEMINI_API_KEY",
      "base_url": "https://generativelanguage.googleapis.com/v1beta/openai/"
    }
  },
  "model_provider_mapping": {
    "gpt-4": "openai",
    "gpt-3.5-turbo": "openai", 
    "claude-3-sonnet-20240229": "anthropic",
    "meta-llama/Meta-Llama-3-70B-Instruct": "deepinfra",
    "deepseek-chat": "deepseek",
    "gemini-2.5-flash": "gemini"
  }
}

Then set your API keys as environment variables:

export OPENAI_API_KEY="your-openai-key"        # For GPT models
export ANTHROPIC_API_KEY="your-anthropic-key"  # For Claude models  
export DEEPINFRA_API_KEY="your-deepinfra-key"  # For Llama models
export DEEPSEEK_API_KEY="your-deepseek-key"    # For DeepSeek models
export GEMINI_API_KEY="your-gemini-key"          # For Gemini models

You only need to set keys for the providers you plan to use. The system automatically routes model requests to the correct provider based on the configuration.

Configuration Options

The config.json file controls all system behavior:

{
  "batch_generation": {
    "num_stories": 10,
    "model": "gpt-4",
    "initial_elo": 1500
  },
  "elo_ranking": {
    "tournament_rounds": 50,
    "judge_model": "claude-3-sonnet-20240229",
    "k_factor": 32
  },
  "next_batch_generation": {
    "top_stories_to_select": 3,
    "variants_per_story": 2,
    "include_original_stories": true
  },
  "evolution_pipeline": {
    "max_iterations": 5,
    "auto_continue_from_existing": true
  }
}

🎭 Writing Modes

Creative Writing Mode (Default)

  • Focuses on storytelling, character development, and narrative techniques
  • Uses mission-based generation strategies
  • Optimizes for creativity and engagement

General Writing Mode (--general)

  • Focuses on academic papers, essays, reports, and professional writing
  • Uses analytical and structured approaches
  • Optimizes for clarity and persuasiveness

🔧 Advanced Configuration

Customizing Generation Strategies

For advanced users, you can customize the generation prompts, author styles, and mission sets by editing the files in the src/generators/ directory:

Creative Writing Customization (src/generators/generate_response.py)

Mission Sets - Define creative approaches and goals:

mission_sets = {
    "emotional_depth": [
        "Focus on the psychological depth of characters",
        "Explore complex emotional landscapes", 
        "Create moments of genuine human connection"
    ],
    "narrative_craft": [
        "Experiment with unique narrative structures",
        "Use vivid, sensory descriptions",
        "Create compelling story arcs"
    ],
    "dialogue_mastery": [
        "Write authentic, character-specific dialogue",
        "Use subtext and implied meaning",
        "Balance dialogue with action and description"
View on GitHub
GitHub Stars121
CategoryContent
Updated1mo ago
Forks11

Languages

Python

Security Score

90/100

Audited on Feb 24, 2026

No findings