Skip to main content

Agents that evolve their own skills. Self-healing multi-agent systems.

Project description

EvoAgents

Agents that evolve their own skills. Self-healing multi-agent systems.

Build multi-agent pipelines with structured skills. EvoAgents watches them run, detects failures with an LLM evaluator, generates targeted prompt patches, validates them via replay on past traces, and promotes winners — automatically. Your agents get better every time they run.

pip install evoagents
evoagents init --preset research
evoagents run "What are the latest breakthroughs in quantum computing?"
evoagents autofix
evoagents run "What are the latest breakthroughs in quantum computing?"
# Score: 0.67 → 0.83 → 1.00

The Self-Healing Loop

flowchart LR
    R["evoagents run"] --> E["LLM Evaluator\n(per-skill scoring)"]
    E -->|"failure tags"| P["Patcher\n(LLM generates patches)"]
    P -->|"candidates"| G["Replay Gate\n(validate on past traces)"]
    G -->|"winner"| M["Promote\n(versioned SKILL.md)"]
    M --> R
  1. Run — Execute your pipeline of skills sequentially. Each skill has a prompt, optional tools, and produces structured output.
  2. Evaluate — An LLM judge scores each skill against its own constraints. No regex, no heuristics.
  3. Patch — An LLM generates 2-3 minimal, targeted patches to the failing skill's SKILL.md (constraints, examples, output format).
  4. Replay — Each patch candidate is replayed on recent traces. Only patches that improve scores pass.
  5. Promote — Winners are versioned (v1v2v3). Rollback is always one command away.

Before & After

Run 1 (fresh skills, no autofix):

Score: 0.67
┃ perception   │  1.00  │ ok
┃ planner      │  0.50  │ findings cut off mid-sentence
┃ synthesizer  │  0.50  │ missing key points from planner

After evoagents autofix (synthesizer v1 → v2, planner v1 → v2):

Score: 0.90
┃ perception   │  1.00  │ ok
┃ planner      │  0.80  │ ok
┃ synthesizer  │  1.00  │ ok

The patcher added constraints like "MUST include all named entities from the planner output" and updated the examples to demonstrate correct behavior — automatically.

Quickstart

Install

pip install evoagents

Initialize a project

mkdir my-agent && cd my-agent
evoagents init --preset research

This creates:

my-agent/
  evoagents.yaml          # Pipeline config
  skills/
    perception/           # Extracts intent from queries
      SKILL.md
    planner/              # Searches web + gathers findings
      SKILL.md
    synthesizer/          # Produces final answer
      SKILL.md

Set your API key

export OPENAI_API_KEY=sk-...

Run and improve

evoagents run "What is the latest on quantum computing?"
evoagents autofix                    # patches + replay + promote
evoagents run "What is the latest on quantum computing?"  # see improvement

Guide the healing

Tell the patcher what to prioritize:

evoagents autofix --guide "prioritize citation accuracy over completeness"
evoagents autofix --guide "never remove existing constraints, only add new ones"

The --guide message becomes the highest-priority instruction for the patcher, overriding default rules.

Create Your Own Skills

Interactive creation

$ evoagents create-skill
Skill name: weather_checker
Description: Check current weather for any city using a weather API

Generating SKILL.md... done
Created skills/weather_checker/SKILL.md (v1)
Add to pipeline? [y/N]: y
Added weather_checker to pipeline

The LLM generates a complete SKILL.md with frontmatter, constraints, output format, and examples — ready to run.

SKILL.md Format

Every skill is a single markdown file with YAML frontmatter:

---
name: my_skill
description: >
  What this skill does.
version: v1
tools: []
judge:
  rubric:
    constraints: 0.35
    tool_use: 0.05
    grounding: 0.20
    helpfulness: 0.40
  rules:
    confidence_min: 0.55
---

# My Skill

One-line description.

## When to Use

USE this skill when:
- Condition 1

## Constraints

- MUST do X
- NEVER do Y

## Output Format

Respond with ONLY a JSON object:
{"field": "description"}

## Examples

Query: "example"
Expected output:
{"field": "value"}

Patchable sections: The autofix loop can modify constraints, output_format, examples, and tools — but never touches your When to Use or core description.

Configure your pipeline

evoagents.yaml:

pipeline:
  - name: step_one
    skill: my_skill
  - name: step_two
    skill: another_skill

skills_dir: ./skills

models:
  executor:
    provider: openai
    model: gpt-5.2
  judge:
    provider: openai
    model: gpt-5.2

CLI Reference

Command Description
evoagents init [--preset NAME] Scaffold a new project
evoagents run "query" Run the pipeline
evoagents autofix [--guide "..."] Auto-patch + replay + promote
evoagents autofix --skill NAME Target a specific skill
evoagents create-skill Interactively create a new skill
evoagents trace last Inspect the last run
evoagents list-runs List recent runs
evoagents score last Score/re-score a run
evoagents failures last Show failure tags
evoagents rollback --skill NAME Revert to previous version
evoagents versions --skill NAME List skill versions
evoagents diff --skill NAME v1 v2 Diff two prompt versions
evoagents stats Aggregate statistics

Architecture

evoagents (pip package)
├── core/         Pipeline runtime, config, skill loader, trace store
├── scoring/      LLM per-skill evaluator, pairwise judge
├── improve/      Autopatcher, replay gate, promotion manager
├── providers/    LLM abstraction (OpenAI, Anthropic)
├── tools/        Tool registry (web_search, http_get)
├── presets/      Project templates (research, demo, blank)
└── cli/          Typer CLI (run, autofix, create-skill, trace, etc.)

How It's Different

  • Skills, not prompts — Structured SKILL.md with frontmatter, constraints, output format, examples. Not a blob of text.
  • LLM evaluates LLM — No regex validators. An LLM judge scores each skill against its own constraints.
  • Section-level patching — The patcher modifies specific sections (constraints, examples), not the entire prompt. Minimal, targeted fixes.
  • Replay gate — No patch gets promoted without proving it improves scores on real past traces.
  • Versioned everything — Every change creates a new version. Rollback is instant.

Safety

  • Versioning: Every prompt change creates a new version. Nothing is ever deleted.
  • Replay gate: No promotion without winning on past traces.
  • Rollback: evoagents rollback --skill NAME to revert any skill instantly.
  • Minimal patches: The patcher only modifies the sections that caused the failure.
  • Local by default: All data stays in .selfheal/ in your project.

License

MIT

evoagents

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

evoagents-0.1.0.tar.gz (42.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

evoagents-0.1.0-py3-none-any.whl (62.7 kB view details)

Uploaded Python 3

File details

Details for the file evoagents-0.1.0.tar.gz.

File metadata

  • Download URL: evoagents-0.1.0.tar.gz
  • Upload date:
  • Size: 42.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for evoagents-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a5e1ee09c02527ebcc9770078205279a6e62f22c753ab434a5b021caeb76b23a
MD5 8755b47ce8cb0755b4f7957ba1e0cae1
BLAKE2b-256 1c61af8d98c808837a4a9c8c7843ebed7350155b89bd5a29a21cf72b1cd8cea5

See more details on using hashes here.

File details

Details for the file evoagents-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: evoagents-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 62.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for evoagents-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9c7a6f70b065e60eea6d3401de30d6cae0996e5a6e23416b1d23f7334b07efd8
MD5 bfba09d5253a81d073b2344e77bd36f3
BLAKE2b-256 5863f78112129bb76dc69d52f58adfa3e59c42c8db470abc8e6f71548653cbcd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page