Evolve
anything.
Prompts, skills, programs, agent harnesses, or your own artifact type. AgentDescent gives each a measurable evolution loop, with interchangeable modules for how candidates are proposed, selected, merged and accepted.
curl -fsSL https://raw.githubusercontent.com/Birfy/agentdescent/main/scripts/install.sh | bashDefine what changes.
Measure what improves.
AgentDescent is not tied to a prompt format. A Strategy represents your artifact as state and turns proposals into diffs. An actor tries tasks; a reward says what success means. The loop explores candidates, evaluates them and commits accepted changes to a versioned ledger.
Meet evolve() ↗One evolve().
Many algorithms.
Keep the loop; change its decisions. Choose what the artifact is, who proposes edits, how work runs, and which candidates survive. Swap one module or supply your own optimizer.
Start with one artifact.
The same entry point handles the task, reward, actor and artifact strategy. Unspecified policy slots use their defaults.
evolve(tasks, reward, agent=agent,
strategy=FileTree(files),
policies=Policies())Illustrative configuration · supply your own tasks, reward, agent and files.A policy slot only changes that decision. For algorithms with their own population or optimizer state, use aggregator_factory ↗. See the full module map ↗
See it inside
your agent.
AgentDescent also works inside Claude Code, Codex and other coding agents. Walk through a sample conversation, from plan to proposed diff.
No model calls or files changed
More than prompts.
More than skills.
Any artifact you can represent, propose changes to and evaluate can fit the loop. Start with built-in strategies or define the three-method Strategy contract for your own state.
Evolve one instruction.
Replace a single value and compare candidates against the tasks you care about.
Read the prompt quickstart ↗You are a helpful assistant. + Respond with only the requested answer. + Omit extra explanation and restatement.
Algorithms are examples,
not the limit.
The repository ports published methods onto the same engines. ACE evolves context, GEPA searches prompts, DGM edits an agent harness, and OpenEvolve searches programs. Each declares its own strategy, policies or optimizer.
Explore all 23 methods ↗Research flexibility.
Engineering control.
AgentDescent includes the machinery around an algorithm: scheduling work, checking candidates, handling conflicts and keeping accepted versions. Use what you need; replace the parts your method changes.
Split the search.
Shard tasks, partition artifact sections or lease task clusters with pluggable parallel strategies.
DataParallel · TensorParallel · ClusterParallel ↗02 / ASYNC RUNTIMEKeep workers moving.
Run without a round barrier. The merger processes evidence while workers continue, with staleness and backpressure controls.
Explore the async runtime ↗03 / CONFLICT-AWARE MERGECombine what belongs.
Resolve contradictory diffs, fuse compatible changes and accept candidates against held-out evidence.
Follow the aggregator ↗04 / EVALUATIONMeasure before committing.
Optionally rank on a fixed cheap subset, use the full held-out set for commit decisions and cache repeated evaluations.
Understand verification ↗05 / VERSIONED STATEKnow what changed.
A git-backed ledger records artifact versions and accepted diffs, with development and stable branches.
Inspect the ledger ↗06 / GOVERNANCEControl the blast radius.
Keep protected material outside the evolving artifact and use stronger gates for agent harnesses or code.
Read the governance model ↗Use Claude, an OpenAI-compatible endpoint, a local model or your own run and propose functions.
From “it evolves”
to “you can run it”.
The preview includes the adoption, safety and observability work that is still under review upstream: guards run before a candidate is measured, every decision can be recorded, deployment can be canaried or killed, and the archive can be diagnosed.
Keep the answer key out.
Screen a candidate diff for gold answers, task ids or private corpus strings before it buys a held-out sweep.
LeakageGuard · screen seam ↗ 02 / APPROVALRequire a human for risk.
Queue high-risk self-modifications in a JSONL store and bind approvals to the exact content that was reviewed.
ApprovalGate · content-addressed key ↗ 03 / GUARDSCompose the checks.
Run named acceptance guards in one order, report the first refusal, and keep the shipped statistical gate underneath.
GuardPipeline · collect_all trail ↗ 04 / RUNTIMEOne guarded session.
Compose, inject acceptance, honour a pre-flight kill switch and record the decision in one call.
run_guarded · decision log ↗ 05 / DEPLOYMENTCanary, roll back, stop.
A paired sign test recommends promote/hold/rollback; a file-based switch stops the next session; a pure diff plans the revert.
canary · KillSwitch · rollback_plan ↗ 06 / DIAGNOSISName the failure mode.
Turn the worst rollouts, refused candidates and outcome histogram into one verdict and the next step.
diagnose · CLI and MCP ↗ 07 / OBSERVABILITYWatch acceptance and cost.
Aggregate decision records into acceptance rate, calls per accepted change and a parser-safe Prometheus export.
rsi_metrics · alerts ↗ 08 / LONGITUDINALIs the archive still moving?
Read adoptions per slot over time and distinguish improving, flat, stagnant, regressing and untrusted.
rsi_report · read-only ↗Decision records, statistical evidence, marginal-gain stopping, risk policy and algorithm tournaments are also documented in the navigation.
Start with the decision log ↗Start with your agent.
One command installs AgentDescent and connects supported agents on your PATH.