Releases: proteus-evolve/Proteus
Release list
Proteus v0.3.0
Proteus v0.3.0
Proteus v0.3.0 makes the episode — not just the harness snapshot — a controlled,
versioned experimental object. It ships a phase-aware turn-budget protocol and a default
epistemic episode protocol, both recorded in the manifest and locked across resume, and it
grows the lightweight benchmark shelf (HumanEval, MBPP) on a shared, hardened
process-isolation harness with reproducibly pinned datasets.
Highlights
Phase-aware episode budgets
- A harness-neutral
BudgetPlan(proteus.core.budget) turns the public knobs into one
execution policy. Alongside the legacymax_turns/min_turns_per_phasebehavior it
adds an explicit per-phase allocation (--phase-turns observe=…,propose=…,act=…,reflect=…),
a separate burst ceiling (--hard-max-turns), and an agent-authored checkpoint reserve
(--checkpoint-turns). - Unused early-phase quota and the burst allowance are prioritized for act, while reflect
stays bounded by its own allocation — the implementation window can expand without making
the hard ceiling the expected cost. - With
--announce-budget, each phase begins with a live used/remaining budget header the
subject can plan against. The full budget condition (version, normal/hard limits,
per-phase plan, checkpoint reserve) is recorded inmanifest.jsonand locked across
resume. - The bundled
dsh,pi,minimal, andllmadapters consume the plan through the core
helpers (budget_plan,phase_prompt); the copy-paste adapter template does too. The
akiresearch adapter keeps its own native turn policy and is the documented exception.
Default epistemic episode protocol
- Every default episode now carries a versioned Proteus protocol: external evaluators are
treated as evidence, not automatically as a complete definition of success. An
evaluator may fully operationalize a narrow goal or only partially cover a broad one, and
the harness is asked to judge sufficiency and evolve its own tests or evaluators when that
reduces uncertainty — never merely to satisfy the protocol. - No-goal runs get neutral exploration prompts. They are no longer silently framed as
"improve reliability" runs, and the harness may formulate and revise its own provisional
goals and evaluation machinery as part of its evolving state. - The protocol wording is deliberately conditional, so it reveals neither the existence of a
HIDDEN evaluator nor an unstated objective. Its version is recorded in the manifest, so a
run cannot resume across a changed protocol condition.
Lightweight benchmarks on a hardened isolation harness
- New
humaneval:<id>andmbpp:<id>BenchTaskpacks, wired into the CLI and gradable
offline. - Both packs share one parent/worker process-isolation harness (
proteus.bench._isolation)
for running agent-authored code: candidate results travel over a dedicated inherited file
descriptor rather than parseable stdout, worker and executor subprocesses are reaped by
process group, and the driver is installed withO_EXCL | O_NOFOLLOW. Grading still routes
through the episode sandbox (run_python) and never falls back to host execution. - Official datasets are downloaded on first use, commit-pinned and sha256-verified before
an atomic publish into the cache (proteus.bench._datasets);PROTEUS_HUMANEVAL_PATH/
PROTEUS_MBPP_PATHbypass the download for offline or vendored use.
DSH cold-start hardening
- A DSH candidate that changes
package.jsonor the workspace topology is re-resolved
against the image's offline pnpm store with a frozen lockfile before it can build. A new
workspace package gets real runtime links; an undeclared or unavailable dependency is
rejected without network access. Pure code edits keep the baked links and skip the work.
Compatibility and migration
- Do not resume a v0.2.x sweep with v0.3.0. v0.3 records a
default_episode_protocol_version
(and, for explicit budget runs, abudget_protocolblock) in the manifest's locked
condition. Because the episode protocol a v0.2 sweep ran under differs, v0.3 refuses to
resume it rather than joining episodes from two protocols into one trajectory. Finish the
run with v0.2.x, or start a new--out.--on-existing overwriteremains available after
backing up the old sweep and intentionally removes the complete previous sweep state. - The default episode phase prompts changed (goal-run wording plus a neutral no-goal
variant). Announcing a budget also changes phase prompts. Both are experimental
conditions by design; they are recorded, not silent. --phase-turnsrequires a positive--max-turnsit sums to;--checkpoint-turns
requires--announce-budgetand a harness with native or framework continuity. Existing
max_turns/min_turns_per_phaseconfigurations are unchanged.
Install
python -m pip install --upgrade proteus-evolve==0.3.0Proteus remains a research preview and requires Python 3.10+. The v0.3.0 release gate uses
the pinned DSH dsh-v0.1.0-rc.7 and Pi v0.84.2 source environments so published results
remain reproducible; the separate upstream canary tracks newer upstream versions.
Proteus v0.2.0
Proteus v0.2.0
Proteus v0.2.0 makes an evolution episode a recoverable transaction and turns harness /
benchmark onboarding into a tested public contract. It is the first release in which the
real source of DSH and Pi can evolve behind a frozen runtime boundary: a candidate may be
inspected during the episode, but it cannot control the harness until the next episode and
only after its normal build/boot path succeeds.
Highlights
Transactional self-evolution
- DSH and Pi execute every phase of episode N from one read-only, last-valid snapshot.
Persistent edits go to a separate candidate and activate no earlier than episode N+1. - The episode-boundary viability gate rebuilds and boots self-edited source before an
evaluator can execute it. Invalid candidates are retained as inspectable candidate
commits and scored as rejected episodes. Their code never activates, but the exact tree
becomes the next episode's writable repair base while the runtime remains last-valid. - Adapter/provider failures preserve each snapshot-able failed attempt without advancing
the episode number; staged retries receive that exact tree as their writable repair base.
Snapshot failures still restore files, the Git index, and HEAD. Resume also restores
evaluator state, selection baseline, disposition fingerprint, and framework handoff to
the last durable checkpoint. - Episode-0 recovery is explicit: a process killed before its first completed episode can
no longer leak a half-written candidate into episode 1.
Context-fresh continuity
- Harnesses may opt into the generic Proteus handoff protocol. Each phase starts with a
fresh model context and receives a bounded operational handoff containing findings,
files, tests, open questions, and next action. - Handoffs live outside the measured harness snapshot. Secret-like values are redacted,
raw reasoning/tool output is never copied, and interrupted phases fall back to normalized
tool names and paths.
Reproducible runs and safer benchmarks
- Sweep manifests now carry a versioned, immutable experimental condition: adapter and
surfaces, dispositions, model, goal, evaluator metadata, task, budgets, continuity, and
non-secret caller metadata.resumerejects any mismatch before modifying run records. refuseis now observationally read-only; even an accidental second invocation cannot
overwrite the original manifest.- Local and Polyglot benchmark code runs in a networkless, resource-limited Docker grader;
unavailable isolation becomes a scored failure and never falls back to host execution. - Manifests record the selected model, seed records are atomically updated, and resume
preserves evaluator history and cumulative counters.
Contributor on-ramp
HarnessAdapterandBenchTaskreceive fully commented templates, a scaffolder, a
conformance checker, and a CI gate.python -m proteus.scaffold adapter MyHarnessandbenchmark my_tasknow work from an
installed wheel or sdist as well as a Git checkout.- New guides cover adding harnesses, benchmarks, and measurements, plus prepared
environment construction and the generic episode contract.
Compatibility and migration
- Do not resume a v0.1.x sweep with v0.2.0. v0.2 moves hidden evaluator records out of
the subject-visible run root and introduces a condition-locked manifest. Because a v0.1
manifest cannot prove that the resumed configuration is identical, v0.2 refuses it
instead of risking a mixed-condition trajectory. Finish the run with v0.1.x, or start a
new--out.--on-existing overwriteis available after backing up the old sweep and
intentionally removes the complete previous sweep state. - Custom source-evolving adapters should declare
staged_activation = Trueand implement
validate_candidate()if edited files can affect their own runtime. Existing adapters
without the attribute retain native activation behavior. - Framework-continuity adapters mount the handoff at
/workspace/.proteus/handoff.md;
their writable staged candidate is/workspace/candidate.
Install
python -m pip install --upgrade proteus-evolve==0.2.0Proteus remains a research preview and requires Python 3.10+. The v0.2.0 release gate
uses the pinned DSH dsh-v0.1.0-rc.7 and Pi v0.84.2 source environments so published
results remain reproducible; the separate upstream canary tracks newer upstream versions.
Proteus v0.1.0
First public release of Proteus — a harness-agnostic framework for agent self-evolution.
Highlights:
- Choose any harness × model and describe one or multiple evolution goals in natural language.
- Evolve built-in Minimal, LLM, Pi, and DeepSeek Harness adapters, or plug in a custom harness.
- Optimize general properties, custom measurements, or concrete benchmarks.
- Inspect live evolution progress and retain every episode as a reproducible snapshot.
Install with pip install proteus-evolve.
Full Changelog: https://github.com/proteus-evolve/Proteus/commits/v0.1.0