From ce05ae749b3ae809254d9215af43753728e20e33 Mon Sep 17 00:00:00 2001 From: Christopher Tso Date: Wed, 15 Apr 2026 22:39:34 +0000 Subject: [PATCH 01/15] feat(agentv-bench): add automated keep/discard logic to Step 5 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add a new 'Automated keep/discard' subsection to the iteration loop in Step 5 (Improve). After each iteration, the agent can now automatically decide whether to keep or discard a change by running: agentv compare baseline.jsonl candidate.jsonl --json Decision rules: - wins > losses → keep, promote to new baseline - wins <= losses → discard, revert, try different mutation - meanDelta == 0 but simpler prompt → keep (simplicity criterion) Each decision is logged with rationale. Human checkpoints at iterations 3, 6, 9 still fire. Both manual and automated modes coexist. Closes #958 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../agentv-dev/skills/agentv-bench/SKILL.md | 85 ++++++++++++++++++- 1 file changed, 83 insertions(+), 2 deletions(-) diff --git a/plugins/agentv-dev/skills/agentv-bench/SKILL.md b/plugins/agentv-dev/skills/agentv-bench/SKILL.md index 5ee0657b..2c4e183d 100644 --- a/plugins/agentv-dev/skills/agentv-bench/SKILL.md +++ b/plugins/agentv-dev/skills/agentv-bench/SKILL.md @@ -321,8 +321,8 @@ After improving: 1. Apply your changes to the agent's prompts/skills/config 2. Re-run all test cases (agentv creates a new `.agentv/results/runs//` directory automatically) -3. Compare against the previous iteration (Step 4) -4. Present results to the user +3. Compare against the previous iteration (Step 4). If running in automated mode, use the **automated keep/discard** logic below instead of manual judgment — it will decide whether to keep or revert the change for you. +4. Present results to the user (or log the decision if running automated keep/discard) 5. Stop when ANY of: - The user says they're happy - Feedback is all empty (everything looks good) @@ -332,6 +332,87 @@ After improving: **Human checkpoints**: At iterations 3, 6, and 9, always present progress to the user regardless of automation settings. Push back if optimization is accumulating contradictory rules or overfitting to specific test cases. +### Automated keep/discard + +After each iteration, you can automatically decide whether to keep or discard the change using structured comparison output. This replaces manual judgment at steps 3–4 of the iteration loop above, except at human checkpoint iterations (3, 6, 9) where you must still present results to the user. + +#### 1. Run the comparison + +After re-running test cases, compare the new results against the previous iteration's baseline: + +```bash +agentv compare .jsonl .jsonl --json +``` + +Where `.jsonl` is the `index.jsonl` from the previous best iteration and `.jsonl` is the `index.jsonl` from the run you just completed. + +#### 2. Parse the output + +The `--json` flag produces structured output: + +```json +{ + "summary": { + "wins": 3, + "losses": 1, + "ties": 6, + "meanDelta": 0.05 + } +} +``` + +- **wins**: number of test cases where the candidate scored higher than the baseline +- **losses**: number of test cases where the candidate scored lower +- **ties**: number of test cases with no score change +- **meanDelta**: average score difference across all test cases (positive = candidate is better) + +#### 3. Apply decision rules + +Use these rules in order: + +| Condition | Decision | Action | +|-----------|----------|--------| +| `wins > losses` | **KEEP** | Promote the candidate to the new baseline. Copy or note its `index.jsonl` path as the baseline for the next iteration. | +| `wins <= losses` | **DISCARD** | Revert the prompt/skill/config change. The previous baseline remains. Try a different mutation on the next iteration. | +| `meanDelta == 0` AND candidate prompt is shorter (fewer lines) | **KEEP** | Simpler prompts are preferred when performance is equal. Promote the candidate as the new baseline. | + +When `meanDelta == 0` and the candidate prompt is *not* shorter, treat it as a **DISCARD** — there's no reason to keep a change that adds complexity without improving results. + +#### 4. Log the decision + +Before proceeding to the next iteration, log the decision and rationale so the user can review later: + +``` +Iteration 2: KEEP + wins=3, losses=1, ties=6, meanDelta=+0.05 + Rationale: candidate wins outweigh losses (3 > 1) + Baseline promoted: .agentv/results/runs/20250101-120000/index.jsonl +``` + +``` +Iteration 3: DISCARD + wins=1, losses=2, ties=7, meanDelta=-0.03 + Rationale: candidate losses outweigh wins (2 > 1) + Reverted to baseline: .agentv/results/runs/20250101-110000/index.jsonl + Next: try a different mutation +``` + +Include this log in your progress summary. At human checkpoints (iterations 3, 6, 9), present the full log of automated decisions since the last checkpoint alongside the current results. + +#### 5. Integration with the iteration loop + +The automated keep/discard replaces the manual compare-and-present cycle (steps 3–4) during non-checkpoint iterations. The full flow becomes: + +1. Apply change to prompts/skills/config +2. Re-run all test cases +3. Run `agentv compare baseline.jsonl candidate.jsonl --json` +4. Apply keep/discard rules → promote or revert +5. Log the decision +6. If this is iteration 3, 6, or 9 → present progress to the user (human checkpoint) +7. Check stop conditions → continue or stop + +Both modes coexist: if the user is actively reviewing results, present to them as before. If the user has asked you to iterate autonomously, use automated keep/discard and only pause at human checkpoints. + --- ## Entering Mid-Lifecycle From f79e510a8ddc8e9e139189b79bf2d983c8ead2e5 Mon Sep 17 00:00:00 2001 From: Christopher Tso Date: Wed, 15 Apr 2026 22:48:16 +0000 Subject: [PATCH 02/15] feat(bench): autoresearch optimization loop (#958, #746, #748) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add unattended eval-improve loop to agentv-bench: - #958: Automated keep/discard decision in Step 5 using agentv compare --json output (wins/losses/ties/meanDelta rules), preserving human checkpoints at 3/6/9 - #746: Mutator subagent (agents/mutator.md) that rewrites artifacts from failure analysis with hill-climbing ratchet, evidence-driven mutations, and simplicity criterion - #748 Phase 1: Autoresearch mode wired into SKILL.md with full procedure: eval → analyze → decide → mutate → repeat. Includes _autoresearch/ output folder (original.md, best.md, iterations.jsonl, trajectory.html), convergence detection (3 consecutive no-improvement cycles), and standalone Chart.js trajectory visualization Skill-only change — no CLI, schema, or core code modifications. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- apps/cli/src/commands/eval/artifact-writer.ts | 4 +- .../agentv-dev/skills/agentv-bench/SKILL.md | 208 +++++++++- .../skills/agentv-bench/agents/mutator.md | 154 +++++++ .../agentv-bench/scripts/trajectory.html | 389 ++++++++++++++++++ 4 files changed, 749 insertions(+), 6 deletions(-) create mode 100644 plugins/agentv-dev/skills/agentv-bench/agents/mutator.md create mode 100644 plugins/agentv-dev/skills/agentv-bench/scripts/trajectory.html diff --git a/apps/cli/src/commands/eval/artifact-writer.ts b/apps/cli/src/commands/eval/artifact-writer.ts index 003d8886..755d36a1 100644 --- a/apps/cli/src/commands/eval/artifact-writer.ts +++ b/apps/cli/src/commands/eval/artifact-writer.ts @@ -15,7 +15,9 @@ export function buildTestTargetKey(testId?: string, target?: string): string { } // Deduplication helper — keeps the last entry per (test_id, target) pair. -export function deduplicateByTestIdTarget(results: readonly EvaluationResult[]): EvaluationResult[] { +export function deduplicateByTestIdTarget( + results: readonly EvaluationResult[], +): EvaluationResult[] { const seen = new Map(); for (let i = 0; i < results.length; i++) { seen.set(buildTestTargetKey(results[i].testId, results[i].target), i); diff --git a/plugins/agentv-dev/skills/agentv-bench/SKILL.md b/plugins/agentv-dev/skills/agentv-bench/SKILL.md index 2c4e183d..a9626f94 100644 --- a/plugins/agentv-dev/skills/agentv-bench/SKILL.md +++ b/plugins/agentv-dev/skills/agentv-bench/SKILL.md @@ -3,7 +3,8 @@ name: agentv-bench description: >- Run AgentV evaluations and optimize agents through eval-driven iteration. Triggers: run evals, benchmark agents, optimize prompts/skills against evals, compare - agent outputs across providers, analyze eval results, offline evaluation of recorded sessions. + agent outputs across providers, analyze eval results, offline evaluation of recorded sessions, + run autoresearch, optimize unattended, run overnight optimization loop. Not for: writing/editing eval YAML without running (use agentv-eval-writer), analyzing existing traces/JSONL without re-running (use agentv-trace-analyst). --- @@ -356,7 +357,7 @@ The `--json` flag produces structured output: "wins": 3, "losses": 1, "ties": 6, - "meanDelta": 0.05 + "mean_delta": 0.05 } } ``` @@ -364,7 +365,7 @@ The `--json` flag produces structured output: - **wins**: number of test cases where the candidate scored higher than the baseline - **losses**: number of test cases where the candidate scored lower - **ties**: number of test cases with no score change -- **meanDelta**: average score difference across all test cases (positive = candidate is better) +- **mean_delta**: average score difference across all test cases (positive = candidate is better) #### 3. Apply decision rules @@ -374,9 +375,9 @@ Use these rules in order: |-----------|----------|--------| | `wins > losses` | **KEEP** | Promote the candidate to the new baseline. Copy or note its `index.jsonl` path as the baseline for the next iteration. | | `wins <= losses` | **DISCARD** | Revert the prompt/skill/config change. The previous baseline remains. Try a different mutation on the next iteration. | -| `meanDelta == 0` AND candidate prompt is shorter (fewer lines) | **KEEP** | Simpler prompts are preferred when performance is equal. Promote the candidate as the new baseline. | +| `mean_delta == 0` AND candidate prompt is shorter (fewer lines) | **KEEP** | Simpler prompts are preferred when performance is equal. Promote the candidate as the new baseline. | -When `meanDelta == 0` and the candidate prompt is *not* shorter, treat it as a **DISCARD** — there's no reason to keep a change that adds complexity without improving results. +When `mean_delta == 0` and the candidate prompt is *not* shorter, treat it as a **DISCARD** — there's no reason to keep a change that adds complexity without improving results. #### 4. Log the decision @@ -445,6 +446,202 @@ After the agent is working well, offer to optimize the skill's `description` fie --- +## Autoresearch Mode + +Autoresearch is an unattended eval-improve loop that runs multiple optimize cycles without human intervention. The user triggers it with natural language (e.g., "run autoresearch on this skill", "optimize this skill unattended"). No YAML schema changes or CLI flags are needed. + +### Prerequisites + +- An eval file (`EVAL.yaml` or `evals.json`) must exist for the artifact being optimized. +- The artifact must be a single file (SKILL.md, prompt template, or agent config). +- The user should have run at least one interactive eval cycle to build confidence in eval quality before going unattended. + +### The loop + +``` +1. RUN EVAL — agentv eval with current artifact +2. ANALYZE — dispatch analyzer subagent on results +3. DECIDE — if score > best_score: KEEP, else DROP (automated keep/discard from Step 5) +4. MUTATE — dispatch mutator subagent with failure analysis (agents/mutator.md) +5. GOTO 1 — until convergence or max_cycles +``` + +### Experiment naming + +Derive the experiment name from the artifact: `autoresearch-` (e.g., `autoresearch-pdf-skill`). The user can also provide a custom name. + +### Artifact mutation flow + +The mutator rewrites the **actual file on disk** in place. The autoresearch loop manages backups: + +1. Before the first cycle, copy the artifact to `_autoresearch/original.md`. +2. On each KEEP, copy the current artifact to `_autoresearch/best.md`. +3. On each DROP, restore `_autoresearch/best.md` back to the artifact path. +4. The eval always runs against the real file path — no temp files or indirection. + +### How the skill invokes eval + +Shell out to `agentv eval --experiment autoresearch-` via the Bash tool, same as the existing interactive bench workflow. + +### Artifact layout + +Each cycle is a standard eval run. Autoresearch session metadata lives in `_autoresearch/` within the experiment directory: + +``` +.agentv/results/runs// + _autoresearch/ # experiment-level outputs (not hidden) + original.md # snapshot of artifact before first mutation + best.md # current best-scoring version (updated on KEEP) + iterations.jsonl # one line per cycle — data for chart + mutator + trajectory.html # live-updating score trajectory chart + 2026-04-15T10-30-00/ # cycle 1 — standard run artifacts + index.jsonl + grading.json + timing.json + benchmark.json + report.html + 2026-04-15T10-35-00/ # cycle 2 — standard run artifacts + ... +``` + +The `_` prefix convention distinguishes workflow folders from timestamped run dirs. + +### iterations.jsonl + +One JSON object per line, one line per cycle: + +```jsonl +{"cycle":1,"score":0.65,"decision":"keep","cost_usd":0.12,"assertions":{"IDENTIFIES_BUG":0.8,"SUGGESTS_FIX":0.4},"mutation":"added explicit null-check instruction","run_dir":"2026-04-15T10-30-00","timestamp":"2026-04-15T10:32:15Z"} +``` + +Fields: `cycle` (1-indexed), `score` (overall pass rate 0–1), `decision` ("keep" or "drop"), `cost_usd` (eval run cost), `assertions` (per-assertion pass rates), `mutation` (one-line description of what changed), `run_dir` (timestamped directory name), `timestamp` (ISO 8601). + +### trajectory.html + +A standalone HTML chart file with embedded Chart.js. Copy the template from `scripts/trajectory.html`, replace placeholders with data, and update after each cycle. Shows: + +- Score over iterations (line chart) with KEEP (green) / DISCARD (red) markers +- Per-assertion pass rates over iterations +- Cumulative cost across iterations +- Best vs original score summary + +Auto-refreshes every 2 seconds during the loop. Becomes static after completion (remove the auto-refresh meta tag on final update). + +### Convergence + +Stop after **3** consecutive cycles with no improvement (no KEEP). Also stop at **max_cycles** (default 10). Either limit can be overridden by the user. + +### Human checkpoints + +Autoresearch mode **skips** human checkpoints at iterations 3/6/9. The user opted in to unattended operation by requesting autoresearch. + +### Procedure + +Follow this step-by-step procedure to execute autoresearch: + +#### 1. Setup + +1. Determine the **artifact path** (the file to optimize) and **eval path** (EVAL.yaml or evals.json). +2. Derive the **experiment name**: `autoresearch-` from the artifact filename (strip extension), or use a user-provided name. +3. Set the experiment directory: `.agentv/results/runs//`. +4. Create the `_autoresearch/` subdirectory inside the experiment directory. +5. Copy the artifact to `_autoresearch/original.md` (preserve the original before any mutations). +6. Copy `scripts/trajectory.html` to `_autoresearch/trajectory.html`. +7. Initialize variables: + - `best_score = 0` + - `convergence_count = 0` + - `cycle = 1` + - `max_cycles = 10` (or user-specified) + - `max_convergence = 3` (or user-specified) + +#### 2. Main loop + +Repeat while `cycle <= max_cycles` and `convergence_count < max_convergence`: + +**a. Run eval** + +```bash +agentv eval --experiment autoresearch- +``` + +**b. Read results** + +Find the latest timestamped directory in the experiment folder. Parse `index.jsonl` to compute: +- Overall score (mean pass rate across all test cases and assertions) +- Per-assertion pass rates (group by assertion name, compute pass rate for each) +- Cost from `timing.json` if available + +**c. Update iterations.jsonl** + +Append one JSON line with this cycle's data (cycle number, score, per-assertion rates, mutation description, run directory name, timestamp). Set `decision` to "keep" or "drop" after the next step — write the line after the decision is made. + +**d. Update trajectory.html** + +Read `_autoresearch/iterations.jsonl`, serialize as JSON array, and replace the `__ITERATIONS_DATA__` placeholder in `_autoresearch/trajectory.html` with the data. Write the updated file back. + +**e. Decide: KEEP or DROP** + +Apply the automated keep/discard rules from Step 5: + +1. Run `agentv compare .jsonl .jsonl --json` where `` is the best iteration's `index.jsonl` (or the first run's `index.jsonl` for cycle 1) and `` is this cycle's `index.jsonl`. +2. If `wins > losses` → **KEEP**. +3. If `wins <= losses` → **DISCARD**. +4. If `mean_delta == 0` and the artifact is shorter → **KEEP** (simpler is better at equal performance). + +For cycle 1, there is no baseline to compare against — always **KEEP** the first cycle. + +**f. If KEEP** + +- Update `best_score` to this cycle's score. +- Copy the current artifact to `_autoresearch/best.md`. +- Record the current `index.jsonl` path as the new baseline for future comparisons. +- Reset `convergence_count = 0`. + +**g. If DROP** + +- Restore `_autoresearch/best.md` back to the artifact path (overwrite the failed mutation). +- Increment `convergence_count`. + +**h. Check stop conditions** + +If `convergence_count >= max_convergence` or `cycle >= max_cycles` → break out of the loop. + +**i. Mutate** + +Dispatch the **mutator** subagent (`agents/mutator.md`) with: +- The current artifact path +- Per-assertion pass rates from this cycle +- Failure descriptions (test cases that scored below 1.0, with their transcripts or grading rationale) +- The mutation history from `iterations.jsonl` (so it avoids repeating failed strategies) + +The mutator rewrites the artifact file in place. Verify the file was modified before continuing. + +**j. Continue** + +Increment `cycle` and return to step (a). + +#### 3. Completion + +1. Finalize `trajectory.html`: remove the auto-refresh `` tag so the chart becomes static. +2. Log a final summary: + - Total cycles run + - Final best score vs original score (cycle 1) + - Number of KEEPs and DROPs + - Total cost across all cycles + - Path to `_autoresearch/best.md` (the best artifact version) + - Path to `_autoresearch/trajectory.html` (the score chart) +3. Present results to the user with a recommendation: adopt the best version, revert to original, or continue iterating interactively. + +### Interactive/autonomous hybrid + +Users can start in interactive mode (the existing Step 3–5 loop with human checkpoints), build confidence in their eval quality, and then switch to autoresearch mode to run unattended. The two modes share the same eval infrastructure and artifact layout — autoresearch simply automates the keep/discard decisions and removes human checkpoints. + +### Model empathy recommendation + +For best results, use same-model pairings: the meta-agent running autoresearch should match the model used by the task agent being evaluated (e.g., Claude optimizing a Claude agent, GPT optimizing a GPT agent). Per AutoAgent research findings, same-model pairings produce better mutations because the optimizer has implicit knowledge of how the target model interprets instructions. + +--- + ## Environment Adaptation For provider-specific notes (Copilot, Codex, Claude SDK, custom CLI), CI/headless mode behavior, and fallback strategies when subagents aren't available, read `references/environment-adaptation.md`. @@ -461,6 +658,7 @@ The `agents/` directory contains instructions for specialized subagents. Read th | grader | `agents/grader.md` | Grade responses with per-assertion evidence | Step 3 (grading — one per test × LLM grader pair) | | comparator | `agents/comparator.md` | Blind N-way comparison + post-hoc analysis | Step 4 (comparing iterations/targets) | | analyzer | `agents/analyzer.md` | Quality audit, deterministic upgrades, benchmarks | Step 4 (pattern analysis) | +| mutator | `agents/mutator.md` | Rewrite artifact from failure analysis | Step 5 (autoresearch — dispatched per cycle) | The `references/` directory has additional documentation: - `references/eval-yaml-spec.md` — Eval YAML schema and assertion grading recipes diff --git a/plugins/agentv-dev/skills/agentv-bench/agents/mutator.md b/plugins/agentv-dev/skills/agentv-bench/agents/mutator.md new file mode 100644 index 00000000..16ed2aeb --- /dev/null +++ b/plugins/agentv-dev/skills/agentv-bench/agents/mutator.md @@ -0,0 +1,154 @@ +--- +name: mutator +description: >- + Generate improved versions of the artifact under test (skill, prompt, config) + based on failure analysis. Reads the current best artifact, applies targeted + mutations to address failing assertions, and writes a complete replacement. + Dispatch this agent after analyzer identifies failure patterns. +model: inherit +color: green +tools: ["Read", "Write", "Bash", "Glob", "Grep"] +--- + +You are the Mutator for AgentV's evaluation workflow. Your job is to rewrite the artifact under test so that failing assertions start passing, while preserving everything that already works. You produce a **complete replacement file** — never diffs, patches, or suggestion lists. + +## Core Principles + +1. **Hill-climbing ratchet**: Always read from the "best" version, never from a failed candidate. Each mutation builds on the highest-scoring artifact so far. +2. **Evidence-driven only**: Every change you make must trace back to a specific failing assertion or failure description. Never add speculative features. +3. **Preserve passing behavior**: Instructions that already pass consistently must survive unchanged in meaning. You may rephrase for clarity, but do not alter intent. +4. **Simplicity criterion**: When two versions score equally, prefer the simpler one. Remove redundant or verbose instructions that don't contribute to passing assertions. Cleaner artifacts at equal performance are improvements. + +## Input Parameters + +You will receive: +- `artifact-path`: Path to the file to mutate (the artifact under test — SKILL.md, prompt template, or agent config). **Write the rewritten artifact back to this same path.** +- `best-artifact-path`: Path to the current best-scoring version of the artifact. **Read from this file as your mutation base.** +- `original-artifact-path`: Path to the original (unmodified) artifact. For reference only — do NOT use as the mutation base. +- `pass-rates`: Per-assertion pass rates as a mapping, e.g. `{"IDENTIFIES_CLARITY_ISSUES": "3/5", "SUGGESTS_CONCRETE_FIX": "5/5", "OUTPUT_IS_STRUCTURED": "1/5"}` +- `failure-descriptions`: Array of top failure descriptions from the analyzer, e.g. `["Agent fails to identify ambiguous pronouns in user prompts", "Output lacks markdown headers required by structure check"]` +- `iteration`: Current iteration number (for context in the changelog) + +## Process + +### Step 1: Read Inputs + +1. **Read the best artifact** at `best-artifact-path`. This is your mutation base. +2. **Read the original artifact** at `original-artifact-path` for reference (understand the author's original intent). +3. **Parse pass rates** to classify each assertion: + - **Passing** (≥ 80%): Preserve the instructions responsible for these. + - **Failing** (< 80%): These are your mutation targets. + - **Near-passing** (60–79%): May need only minor reinforcement. + - **Hard-failing** (< 40%): Need substantial new instructions. +4. **Read failure descriptions** to understand *why* assertions fail, not just *which* ones fail. + +### Step 2: Analyze Failure Causes + +For each failing assertion, determine the root cause: + +| Pattern | Likely Cause | Mutation Strategy | +|---------|-------------|-------------------| +| Agent omits a required behavior | Missing instruction | Add an explicit, concrete instruction | +| Agent does the opposite of what's expected | Ambiguous or contradictory instruction | Rewrite the instruction to be unambiguous | +| Agent partially satisfies the criterion | Instruction is vague | Add specifics — examples, formats, constraints | +| Agent satisfies it sometimes but not always | Instruction exists but is easy to overlook | Elevate priority — move to a prominent position, add emphasis | +| Output format doesn't match expectations | Missing format specification | Add explicit format requirements with examples | + +### Step 3: Plan Mutations + +Before writing, plan your changes: + +1. **List each failing assertion** and the specific instruction change that addresses it. +2. **Check for conflicts**: Will a new instruction contradict or undermine a passing one? If so, find a formulation that satisfies both. +3. **Check for redundancy**: If two failing assertions share a root cause, one instruction change may fix both. +4. **Apply simplicity criterion**: If the best artifact has verbose instructions for passing assertions, consider simplifying them — but only if you're confident the simplification won't cause regressions. + +### Step 4: Write the Mutated Artifact + +1. **Read the best artifact** one more time to ensure you have the latest content. +2. **Apply your planned mutations** to produce a complete rewritten artifact. +3. **Write the result** to `artifact-path` (the original file location — this is an in-place mutation). + +The output must be a complete, standalone file. Do not include diff markers, comments about what changed, or any meta-content that wasn't in the original artifact format. + +### Step 5: Produce a Changelog + +After writing the artifact, output a structured changelog explaining what you changed and why. This will be logged in `iterations.jsonl` for audit. + +``` +## Mutation Report (Iteration {iteration}) + +### Assertions Targeted + +| Assertion | Pass Rate | Action Taken | +|-----------|-----------|-------------| +| IDENTIFIES_CLARITY_ISSUES | 3/5 (60%) | Added explicit instruction to check for ambiguous pronouns | +| OUTPUT_IS_STRUCTURED | 1/5 (20%) | Added format specification with markdown header requirements | +| SUGGESTS_CONCRETE_FIX | 5/5 (100%) | No change (passing) | + +### Changes Made + +1. **[Section/Location]**: [What changed] — addresses [ASSERTION_NAME] failing because [reason from failure descriptions] +2. ... + +### Preserved + +- [List of key instructions left unchanged because their assertions pass] + +### Simplifications + +- [Any instructions simplified or removed, with justification] + +### Risk Assessment + +- [Any changes that might affect currently-passing assertions, and why you believe they're safe] +``` + +## Mutation Strategies + +### For assertions below 80% pass rate: Add explicit instructions + +**Bad** (vague): +> Be thorough in your analysis. + +**Good** (concrete and actionable): +> For each input, check for: (1) ambiguous pronouns — flag any pronoun without a clear antecedent within the same sentence, (2) implicit assumptions — identify claims that assume context not provided in the input. + +### For near-passing assertions (60–79%): Reinforce existing instructions + +The instruction likely exists but is too easy to overlook. Options: +- Move it to a more prominent position (beginning of a section, its own subsection) +- Add a concrete example showing the expected behavior +- Rephrase for clarity without changing intent + +### For hard-failing assertions (< 40%): Add substantial new content + +The artifact likely lacks any instruction addressing this criterion. Add a dedicated subsection with: +- A clear directive +- The reasoning (why this matters) +- One or two concrete examples +- Edge cases to watch for + +### Simplification opportunities + +When the artifact scores well but is verbose: +- Remove duplicated instructions that say the same thing in different words +- Collapse overly detailed examples when a concise one suffices +- Remove hedging language ("you might want to consider possibly...") in favor of direct instructions + +## Guardrails + +**DO:** +- Trace every change to a specific failing assertion or failure description +- Preserve the artifact's original format and structure conventions +- Write a complete, self-contained file — someone reading it should not need to know a mutation happened +- Explain every change in the changelog with evidence + +**DO NOT:** +- Add instructions for things that aren't being tested (speculative features) +- Use the failed candidate as your mutation base — always start from `best-artifact-path` +- Produce diffs, patches, or suggestion lists instead of a complete file +- Add meta-commentary inside the artifact (e.g., "") +- Remove instructions for passing assertions to "make room" for new ones +- Make changes based on intuition alone — every mutation must connect to observed failure data +- Over-engineer: if a simple one-line instruction would fix a failing assertion, don't add a full subsection with examples unless the failure pattern suggests the agent needs that level of detail diff --git a/plugins/agentv-dev/skills/agentv-bench/scripts/trajectory.html b/plugins/agentv-dev/skills/agentv-bench/scripts/trajectory.html new file mode 100644 index 00000000..4df464d6 --- /dev/null +++ b/plugins/agentv-dev/skills/agentv-bench/scripts/trajectory.html @@ -0,0 +1,389 @@ + + + + + + + AgentV Autoresearch Trajectory + + + + + +

AgentV Autoresearch Trajectory

+
+ + +
+ + +
+
+

Score over Iterations

+ +
+
+

Per-Assertion Pass Rates

+ +
+
+

Cumulative Cost (USD)

+ +
+
+ + +
+

Iteration Log

+
+
+ + + + + From 9a4c414449db461a7b207074df073554043bc519 Mon Sep 17 00:00:00 2001 From: Christopher Tso Date: Wed, 15 Apr 2026 23:42:15 +0000 Subject: [PATCH 03/15] docs(autoresearch): add guide, example, and fix trajectory bugs - Add autoresearch-automation.mdx guide with trajectory screenshot, ASCII output table, and incident classifier walkthrough - Add examples/features/autoresearch/ with working eval and prompt - Fix trajectory.html: add actual auto-refresh meta tag (was a non-functional comment), standardize badge text to "drop" (matching SKILL.md data format), guard cumulative cost against non-numeric values - Update SKILL.md completion step to match actual template markup - Update skill-improvement-workflow.mdx cross-reference to new guide Co-Authored-By: Claude Opus 4.6 --- .../screenshots/autoresearch-trajectory.png | Bin 0 -> 158100 bytes .../docs/guides/autoresearch-automation.mdx | 204 ++++++++++++++++++ .../guides/skill-improvement-workflow.mdx | 23 +- examples/features/autoresearch/EVAL.yaml | 142 ++++++++++++ examples/features/autoresearch/README.md | 26 +++ .../autoresearch/classifier-prompt.md | 5 + .../agentv-dev/skills/agentv-bench/SKILL.md | 2 +- .../agentv-bench/scripts/trajectory.html | 11 +- 8 files changed, 392 insertions(+), 21 deletions(-) create mode 100644 apps/web/src/assets/screenshots/autoresearch-trajectory.png create mode 100644 apps/web/src/content/docs/docs/guides/autoresearch-automation.mdx create mode 100644 examples/features/autoresearch/EVAL.yaml create mode 100644 examples/features/autoresearch/README.md create mode 100644 examples/features/autoresearch/classifier-prompt.md diff --git a/apps/web/src/assets/screenshots/autoresearch-trajectory.png b/apps/web/src/assets/screenshots/autoresearch-trajectory.png new file mode 100644 index 0000000000000000000000000000000000000000..fedec17d77d1fdc55c8ade2798858687f521e409 GIT binary patch literal 158100 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 + +The chart above shows a real optimization run: an incident severity classifier starts at 48% accuracy and reaches 90% after 9 automated cycles — each cycle taking seconds and costing fractions of a cent. + +## How It Works + +``` + ┌──────────┐ + │ 1. EVAL │ ◄───────────────────────────────┐ + └─────┬─────┘ │ + ▼ │ + ┌──────────┐ │ + │ 2. ANALYZE│ dispatcher → analyzer subagent │ + └─────┬─────┘ │ + ▼ │ + ┌──────────┐ wins > losses → KEEP │ + │ 3. DECIDE │ else → DROP │ + └─────┬─────┘ │ + ▼ │ + ┌──────────┐ │ + │ 4. MUTATE │ dispatcher → mutator subagent ──┘ + └──────────┘ + + Stops after 3 consecutive no-improvement cycles + or 10 total cycles (configurable). +``` + +Each cycle: +1. **Runs `agentv eval`** against the current version of the artifact +2. **Analyzes** failures via the analyzer subagent +3. **Decides** keep or discard using `agentv compare --json` (automated — no human needed) +4. **Mutates** the artifact to address failing assertions, then loops back + +The system uses a **hill-climbing ratchet**: each mutation builds on the best-scoring version, never a failed candidate. Improvements compound; regressions get discarded. + +## What Gets Optimized + +Any single-file artifact: SKILL.md, prompt template, agent config, system prompt. The mutator rewrites the file in place while the eval stays fixed — same test cases, same assertions, different artifact versions. + +## Prerequisites + +- An eval file (EVAL.yaml or evals.json) that covers the behavior you care about +- The artifact must be a single file +- Run at least one manual eval cycle first to validate your test cases + +:::tip +Autoresearch is only as good as your eval. If your assertions don't catch the failures you care about, the optimizer won't fix them. Start with the [manual improvement loop](/docs/guides/skill-improvement-workflow/) to build confidence in your eval quality before going unattended. +::: + +## Triggering Autoresearch + +Autoresearch runs through the `agentv-bench` Claude Code skill. Trigger it with natural language: + +``` +"Run autoresearch on my classifier prompt" +"Optimize this skill unattended for 5 cycles" +"Run autoresearch on examples/features/autoresearch/EVAL.yaml" +``` + +No CLI flags or YAML schema changes needed — the skill handles everything. + +## Output Structure + +Each autoresearch session creates a self-contained experiment directory: + +``` +.agentv/results/runs/autoresearch-/ +├── _autoresearch/ +│ ├── original.md # Snapshot before any mutations +│ ├── best.md # Current best-scoring version +│ ├── iterations.jsonl # Per-cycle data (score, decision, mutation) +│ └── trajectory.html # Live-updating Chart.js visualization +├── 2026-04-15T10-30-00/ # Cycle 1 run artifacts +│ ├── index.jsonl +│ ├── grading.json +│ └── timing.json +├── 2026-04-15T10-35-00/ # Cycle 2 run artifacts +│ └── ... +└── ... +``` + +- **`_autoresearch/best.md`** — The final optimized artifact. Copy it back to your project when satisfied. +- **`_autoresearch/trajectory.html`** — Open in a browser to see the score trajectory, per-assertion breakdown, and cumulative cost. Auto-refreshes during the loop, becomes static on completion. +- **`_autoresearch/iterations.jsonl`** — Machine-readable log of every cycle for downstream analysis. + +## The Keep/Drop Decision + +After each eval cycle, autoresearch runs `agentv compare` between the current candidate and the best baseline: + +```bash +agentv compare /index.jsonl /index.jsonl --json +``` + +The decision rule: + +| Condition | Decision | Outcome | +|-----------|----------|---------| +| `wins > losses` | **KEEP** | Promote to new baseline, reset convergence counter | +| `wins <= losses` | **DROP** | Revert to best version, increment convergence counter | +| `mean_delta == 0`, simpler artifact | **KEEP** | Simpler is better at equal performance | + +Three consecutive DROPs trigger convergence — the optimizer stops because it can't find improvements. + +## Example: Incident Severity Classifier + +Here's a real scenario showing autoresearch in action. We start with a minimal classifier prompt: + +```markdown +# classifier-prompt.md (initial version) +Classify the incident into P0, P1, P2, or P3. +Give your answer as JSON with severity and reasoning fields. +``` + +And an eval with 7 test cases covering edge cases — payment failures, SSL cert expiry, gradual memory leaks: + +```yaml +# EVAL.yaml (stays fixed — only the prompt changes) +tests: + - id: total-outage + assertions: + - type: contains + value: '"P0"' + - type: is-json + - "Reasoning mentions complete service outage" + - id: payment-failures + assertions: + - type: contains + value: '"P1"' + - type: is-json + - "Reasoning weighs revenue impact despite intermittent nature" + # ... 5 more test cases +``` + +Running autoresearch produces this trajectory: + +``` +Cycle Score Decision Mutation +───── ───── ──────── ────────────────────────────────────── + 1 0.48 KEEP initial baseline — no mutations applied + 2 0.62 KEEP added explicit JSON format, defined P0-P3 levels + 3 0.52 DROP added verbose rules — over-constrained reasoning + 4 0.71 KEEP added revenue-impact heuristic for P1 + 5 0.81 KEEP enforced raw JSON output — removed code fences + 6 0.86 KEEP added time-urgency rule for SSL/cert cases + 7 0.90 KEEP improved reasoning template — cite impact metrics + 8 0.86 DROP attempted decision tree merge — regressed + 9 0.90 DROP minor wording cleanup — no meaningful change + ↳ 3 consecutive drops → CONVERGED +``` + +**Result:** 0.48 → 0.90 (+42 points) in 9 cycles, $0.03 total cost. The optimized prompt is in `_autoresearch/best.md`. + +Key observations: +- **Cycle 3** shows a failed mutation (verbose rules hurt reasoning) — the ratchet discarded it and continued from the cycle 2 version +- **Cycles 8–9** show convergence — the optimizer couldn't improve further and stopped automatically +- **Per-assertion tracking** reveals which aspects improved: classification accuracy reached 100% by cycle 6, while JSON format compliance and reasoning quality improved more gradually + +## Convergence + +Autoresearch stops when either condition is met: + +- **3 consecutive no-improvement cycles** (configurable) — the optimizer has converged +- **10 total cycles** (configurable) — hard limit to bound cost + +You can override both limits when triggering autoresearch: + +``` +"Run autoresearch with max 20 cycles and convergence threshold of 5" +``` + +## Best Practices + +**Start manual, then automate.** Run 2-3 manual eval cycles to validate your test cases catch real issues. Once you trust the eval, switch to autoresearch. + +**Same-model pairings work best.** The meta-agent running autoresearch should match the model used by the task agent (e.g., Claude optimizing a Claude agent). Same-model pairings produce better mutations because the optimizer has implicit knowledge of how the target model interprets instructions. + +**Watch the per-assertion chart.** If one assertion is stuck at 0% while others improve, the eval may be too strict or testing something the prompt can't control. Consider adjusting the assertion. + +**Review the optimized artifact.** Autoresearch improves scores, but always review `best.md` before adopting it. The optimizer may have found a valid but unexpected approach. + +## Relationship to Manual Workflow + +| Aspect | Manual Loop | Autoresearch | +|--------|-------------|--------------| +| Human checkpoints | Every iteration | None (opted in to unattended) | +| Keep/discard | You decide | Automated via `agentv compare` | +| Mutation | You edit the skill | Mutator subagent rewrites | +| Max iterations | Unbounded | 10 cycles or convergence | +| Best for | Building eval intuition | Scaling optimization | +| Trajectory chart | Not included | Auto-generated with live refresh | + +Start with the [manual loop](/docs/guides/skill-improvement-workflow/) to understand the workflow, then use autoresearch to scale it. diff --git a/apps/web/src/content/docs/docs/guides/skill-improvement-workflow.mdx b/apps/web/src/content/docs/docs/guides/skill-improvement-workflow.mdx index 6cc7bddc..350e96b6 100644 --- a/apps/web/src/content/docs/docs/guides/skill-improvement-workflow.mdx +++ b/apps/web/src/content/docs/docs/guides/skill-improvement-workflow.mdx @@ -9,7 +9,7 @@ sidebar: AgentV supports a full evaluation-driven improvement loop for skills and agents. Instead of guessing whether a change makes things better, you run structured evaluations before and after, then compare. -This guide teaches the **core manual loop**. For automated iteration that runs the full cycle hands-free, see [agentv-bench](#automated-iteration). +This guide teaches the **core manual loop**. For automated iteration that runs the full cycle hands-free, see [Autoresearch](/docs/guides/autoresearch-automation/). ## The Core Loop @@ -316,21 +316,14 @@ Start simple and add complexity only when the evaluation results demand it: ## Automated Iteration -For users who want the full automated improvement cycle, the `agentv-bench` skill runs a 5-phase optimization loop: +When you're confident in your eval quality, graduate to **autoresearch** — an unattended optimization loop that runs the full evaluate → analyze → improve cycle hands-free. -1. **Analyze** — examines the current skill and evaluation results -2. **Hypothesize** — generates improvement hypotheses from failure patterns -3. **Implement** — applies targeted skill modifications -4. **Evaluate** — re-runs the evaluation suite -5. **Decide** — keeps improvements that help, reverts those that don't +Autoresearch uses the same `agentv eval` and `agentv compare` primitives described above, but automates the human decision steps. A mutator subagent rewrites the artifact based on failure analysis, and an automated keep/discard rule promotes improvements and reverts regressions. -The optimizer uses the same core loop described in this guide but automates the human steps. Start with the manual loop to build intuition, then graduate to the optimizer when you're comfortable with the evaluation workflow. - -Its bundled scripts map directly onto the workflow stages: +``` +"Run autoresearch on my skill" +``` -- `run-eval.ts` and `compare-runs.ts` run and compare evaluations while still delegating to `agentv` -- `run-loop.ts` repeats the evaluation loop without moving grader logic into the script layer -- `aggregate-benchmark.ts` and `generate-report.ts` summarize AgentV artifacts into review-friendly output -- `improve-description.ts` proposes follow-up description experiments once execution quality is stable +One command starts the loop. It runs until the optimizer converges (3 consecutive no-improvement cycles) or hits the cycle limit. Typical runs: 5–10 cycles, under $0.05 total cost. -Code-grader execution, grading semantics, and artifact schemas still live in AgentV core. The scripts layer is orchestration glue over those existing primitives. +See the full guide: [Autoresearch — Automated Optimization](/docs/guides/autoresearch-automation/) diff --git a/examples/features/autoresearch/EVAL.yaml b/examples/features/autoresearch/EVAL.yaml new file mode 100644 index 00000000..c8c1819e --- /dev/null +++ b/examples/features/autoresearch/EVAL.yaml @@ -0,0 +1,142 @@ +name: incident-severity-classifier +description: | + Evaluates the incident severity classifier prompt for accuracy, output format, + and reasoning quality. Used as an autoresearch demo — the prompt artifact starts + weak and the optimization loop iteratively improves it. + +execution: + target: llm + +defaults: + system_message: &system_prompt | + Classify the incident into P0, P1, P2, or P3. + Give your answer as JSON with severity and reasoning fields. + +tests: + - id: total-outage + criteria: Should classify a complete production outage as P0 + input: + - role: system + content: *system_prompt + - role: user + content: | + All production servers are unreachable. The main database cluster has failed over + but the failover node is also unresponsive. Customer-facing APIs return 503 for + all requests. Estimated 100% of users affected. Data replication lag detected. + assertions: + - type: contains + value: '"P0"' + id: CLASSIFIES_P0_OUTAGE + - type: is-json + id: RETURNS_VALID_JSON + - "Reasoning mentions complete service outage or total unavailability" + + - id: degraded-search + criteria: Should classify degraded search with no workaround as P1 + input: + - role: system + content: *system_prompt + - role: user + content: | + Search functionality is returning incomplete results for approximately 60% of queries. + Users report that recent items (last 2 hours) are not appearing in search results. + The indexing pipeline appears to be stuck. No workaround available for affected users. + assertions: + - type: contains + value: '"P1"' + id: CLASSIFIES_P1_DEGRADED + - type: is-json + id: RETURNS_VALID_JSON_P1 + - "Reasoning explains the user impact and lack of workaround" + + - id: slow-dashboard + criteria: Should classify slow dashboard with workaround as P2 + input: + - role: system + content: *system_prompt + - role: user + content: | + The analytics dashboard is loading slowly (15-20 seconds instead of usual 2-3 seconds). + Users can still access all data but the experience is degraded. The issue appears to be + related to a recent deployment. Users can use the API directly as a workaround. + assertions: + - type: contains + value: '"P2"' + id: CLASSIFIES_P2_SLOW + - type: is-json + id: RETURNS_VALID_JSON_P2 + - "Reasoning mentions the workaround availability" + + - id: typo-in-footer + criteria: Should classify a cosmetic typo as P3 + input: + - role: system + content: *system_prompt + - role: user + content: | + A user reported that the footer on the settings page shows "Copyrigth 2024" + instead of "Copyright 2024". This is visible on all pages with the settings layout. + No functional impact. + assertions: + - type: contains + value: '"P3"' + id: CLASSIFIES_P3_COSMETIC + - type: is-json + id: RETURNS_VALID_JSON_P3 + - "Reasoning identifies this as a cosmetic or non-functional issue" + + - id: payment-failures + criteria: Should classify intermittent payment failures as P1 due to revenue impact + input: + - role: system + content: *system_prompt + - role: user + content: | + Approximately 15% of payment transactions are failing with a timeout error from the + payment gateway. The issue is intermittent — retrying usually works on the second attempt. + Revenue impact estimated at $50K/hour during peak hours. No permanent data loss detected. + assertions: + - type: contains + value: '"P1"' + id: CLASSIFIES_P1_PAYMENTS + - type: is-json + id: RETURNS_VALID_JSON_PAYMENTS + - "Reasoning weighs the revenue impact despite the issue being intermittent" + + - id: memory-leak-gradual + criteria: Should classify a gradual memory leak with days until impact as P2 + input: + - role: system + content: *system_prompt + - role: user + content: | + Monitoring detected a gradual memory leak in the auth service. Memory usage is growing + at ~50MB/hour. Current usage is 2.1GB of 8GB available. At current rate, the service + will need a restart in approximately 3 days. Automated restarts are configured as a + safety net. No current user impact. + assertions: + - type: contains + value: '"P2"' + id: CLASSIFIES_P2_MEMORY + - type: is-json + id: RETURNS_VALID_JSON_MEMORY + - "Reasoning considers the time buffer and automated mitigations" + + - id: ssl-cert-expiry + criteria: Should classify imminent SSL cert expiry as P1 + input: + - role: system + content: *system_prompt + - role: user + content: | + SSL certificate for api.example.com expires in 4 hours. Auto-renewal failed due to + DNS validation timeout. If the cert expires, all HTTPS traffic to the production API + will show security warnings and many clients will refuse to connect. The team has + manual renewal steps documented but needs to act urgently. + assertions: + - type: contains + value: '"P1"' + id: CLASSIFIES_P1_SSL + - type: is-json + id: RETURNS_VALID_JSON_SSL + - "Reasoning mentions the time urgency and potential service disruption" diff --git a/examples/features/autoresearch/README.md b/examples/features/autoresearch/README.md new file mode 100644 index 00000000..85952a75 --- /dev/null +++ b/examples/features/autoresearch/README.md @@ -0,0 +1,26 @@ +# Autoresearch Example: Incident Severity Classifier + +Demonstrates the autoresearch optimization loop with a practical scenario. + +## Files + +- `classifier-prompt.md` — The artifact to optimize (a severity classification prompt) +- `EVAL.yaml` — 7 test cases with mixed assertion types (deterministic + rubric) + +## Running + +This example works like any other eval: + +```bash +agentv eval EVAL.yaml --experiment autoresearch-classifier --target azure +``` + +To run autoresearch, use the `agentv-bench` skill: + +``` +"Run autoresearch on examples/features/autoresearch/EVAL.yaml" +``` + +## Note + +Autoresearch is a **workflow pattern** — it works with any eval file, not just this one. This example exists as a ready-to-run demo and documentation reference. diff --git a/examples/features/autoresearch/classifier-prompt.md b/examples/features/autoresearch/classifier-prompt.md new file mode 100644 index 00000000..8ae36f1c --- /dev/null +++ b/examples/features/autoresearch/classifier-prompt.md @@ -0,0 +1,5 @@ +# Incident Severity Classifier + +Classify the incident into P0, P1, P2, or P3. + +Give your answer as JSON with severity and reasoning fields. diff --git a/plugins/agentv-dev/skills/agentv-bench/SKILL.md b/plugins/agentv-dev/skills/agentv-bench/SKILL.md index a9626f94..dd8c422f 100644 --- a/plugins/agentv-dev/skills/agentv-bench/SKILL.md +++ b/plugins/agentv-dev/skills/agentv-bench/SKILL.md @@ -622,7 +622,7 @@ Increment `cycle` and return to step (a). #### 3. Completion -1. Finalize `trajectory.html`: remove the auto-refresh `` tag so the chart becomes static. +1. Finalize `trajectory.html`: remove the line containing `` (which includes the `` tag) so the chart becomes static. 2. Log a final summary: - Total cycles run - Final best score vs original score (cycle 1) diff --git a/plugins/agentv-dev/skills/agentv-bench/scripts/trajectory.html b/plugins/agentv-dev/skills/agentv-bench/scripts/trajectory.html index 4df464d6..a4189787 100644 --- a/plugins/agentv-dev/skills/agentv-bench/scripts/trajectory.html +++ b/plugins/agentv-dev/skills/agentv-bench/scripts/trajectory.html @@ -3,7 +3,7 @@ - + AgentV Autoresearch Trajectory