Skip to content

Releases: proteus-evolve/Proteus

Proteus v0.3.0

Choose a tag to compare

@yichen14 yichen14 released this 24 Aug 08:07
486d94b

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 legacy max_turns / min_turns_per_phase behavior 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 in manifest.json and locked across
    resume.
  • The bundled dsh, pi, minimal, and llm adapters consume the plan through the core
    helpers (budget_plan, phase_prompt); the copy-paste adapter template does too. The
    aki research 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> and mbpp:<id> BenchTask packs, 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 with O_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_PATH bypass the download for offline or vendored use.

DSH cold-start hardening

  • A DSH candidate that changes package.json or 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, a budget_protocol block) 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 overwrite remains 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-turns requires a positive --max-turns it sums to; --checkpoint-turns
    requires --announce-budget and a harness with native or framework continuity. Existing
    max_turns / min_turns_per_phase configurations are unchanged.

Install

python -m pip install --upgrade proteus-evolve==0.3.0

Proteus 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

Choose a tag to compare

@yichen14 yichen14 released this 21 Aug 10:00
2f7abed

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. resume rejects any mismatch before modifying run records.
  • refuse is 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

  • HarnessAdapter and BenchTask receive fully commented templates, a scaffolder, a
    conformance checker, and a CI gate.
  • python -m proteus.scaffold adapter MyHarness and benchmark my_task now 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 overwrite is available after backing up the old sweep and
    intentionally removes the complete previous sweep state.
  • Custom source-evolving adapters should declare staged_activation = True and 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.0

Proteus 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

Choose a tag to compare

@yichen14 yichen14 released this 20 Aug 08:28

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