Meta-agent search over plugin workflows: design + working proof of concept - #20
Draft
JoshuaOliphant wants to merge 4 commits into
Draft
Meta-agent search over plugin workflows: design + working proof of concept#20JoshuaOliphant wants to merge 4 commits into
JoshuaOliphant wants to merge 4 commits into
Conversation
Applies ADAS-style meta-agent search to the marketplace's own artifacts: skill descriptions (tier 1, scored against evals/*.json), skill procedures (tier 2), and full autonomous-sdlc workflow variants (tier 3). Reuses autoloop's runner/METRIC/ledger conventions with a population archive instead of single-file hill-climbing, and phases the work so the cheap trigger-description search debugs the machinery before any hours-long SDLC benchmark runs. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015Dexou9QTmNb2Vf8XhedgQ
The linked paper is AFlow (Zhang et al., ICLR 2025), a sibling of ADAS that searches code-represented workflows with MCTS. Corrects the citation to cover both papers and adopts AFlow's sample-efficiency mechanisms: a per-tier operator library constraining mutations, experience backpropagation in each candidate's meta.json, soft uniform+score-weighted selection, convergence-based early stop, ~5x evaluation runs, and dollar-weighted cost in the tier-3 fitness — with 'run Architect/Builder on cheaper models at equal success rate' promoted to the headline tier-3 objective, mirroring AFlow's cost result. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015Dexou9QTmNb2Vf8XhedgQ
evals/run_trigger_eval.py scores a skill description against its evals/*-eval.json fixture via a batched haiku judge (claude CLI), with a deterministic hash-based dev/holdout split, balanced accuracy as the primary metric, false-positive rate reported separately, and autoloop-convention METRIC output. Supports --description-file so candidate genomes score without touching plugins/. meta/ holds the search harness: program.md (loop protocol with operators, soft-mixed parent selection, two self-refine passes, experience records, convergence stop) and the immutable auto/run.sh candidate runner. verification-stack-eval.json is deliberately unmapped — it targeted the skill removed in the v2 loop redesign. Tests use a stub judge only (no network); pyproject testpaths now includes evals/ so they run in CI. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015Dexou9QTmNb2Vf8XhedgQ
… -> 1.0 Baseline (candidate-000) scores all 8 mapped descriptions: 4 already saturated at dev 1.0, headroom on beads-workflow (.833), compound-retrieve (.850), bdd-generate (.917), mochi-creator (.929). Candidate-001 applies add-trigger-phrases to beads-workflow, adding the bd lifecycle surfaces the incumbent omitted (stats/project health, sync/dolt remote sharing, ready/unblocked work). Result: dev .833 -> 1.0 AND holdout .875 -> 1.0 with zero false positives, at the cost of a 56 -> 99 word description. Archived with lineage, operator, and experience record; design doc gains a section 8 with PoC results. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015Dexou9QTmNb2Vf8XhedgQ
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Design and working proof of concept for ADAS/AFlow-style meta-agent search over this marketplace's own workflow artifacts (
docs/meta-agent-search-design.md, §8 has first results).Design
Proof of concept (phases 1–2, implemented)
evals/run_trigger_eval.py— the fitness function: batched haiku judge via theclaudeCLI, deterministic hash-based dev/holdout split, balanced accuracy + separate FP rate, autoloop-conventionMETRICoutput. Also useful standalone as a regression check for hand-edited descriptions. CI-safe tests (stub judge, no network);pyprojecttestpaths now includesevals/.meta/— the search harness:program.mdloop protocol (operators, soft-mixed parent selection, two self-refine passes, experience records, convergence stop) and immutableauto/run.shcandidate runner.verification-stack-eval.jsonis deliberately unmapped — it targeted the skill removed by the v2 loop redesign.add-trigger-phraseson beads-workflow — adding the bd lifecycle surfaces the incumbent omitted (stats/health, sync/dolt sharing, ready-work) took dev .833 → 1.0 and holdout .875 → 1.0, FP 0. The holdout jump says it's a real win, not dev overfit. Cost: 56 → 99 description words.No plugin versions bumped — everything lives at repo level (
evals/,meta/, docs);plugins/is untouched (promoting candidate-001 into the plugin would be a separate reviewed change).scripts/check_all.pypasses.🤖 Generated with Claude Code
https://claude.ai/code/session_015Dexou9QTmNb2Vf8XhedgQ