Skip to content

Evaluate ACT with the Jev planner - #22

Merged
brynary merged 3 commits into
act-jev-plannerfrom
act-jev-evals
Oct 5, 2026
Merged

brynary merged 3 commits into
act-jev-plannerfrom
act-jev-evals

Conversation

@brynary

@brynary brynary commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

Stacked on #21. Step 4 of the ACT planner plan: evals for both planners.

What

  • eval_act.py: a model name that starts with jev: runs Whirl with --jev, with the rest of the name as the fallback model, for example -m jev:gemini/gemini-3.1-flash-lite. Its runs are kept apart, so one session compares both planners on one leaderboard.
  • The leaderboard adds by Jev: the share of actions Jev chose without the model. Calls, tokens, and costs count the model only. Jev's requests have no catalog price.
  • A step with no model call counts as $0. Reports from before Add a Jev planner for ACT behind --jev #21's cost fix leave the cost out. (The fix is on Add a Jev planner for ACT behind --jev #21: Whirl now reports costUsdMicros: 0 for such a step.)
  • The README documents the jev: prefix and TYPESAFE_API_KEY.

Results (local set, 48 tasks, -n 3)

Jev rows use the lithos-llm client from #21 (e6a806e), so costs include Jev's requests ($0.042 per million input tokens).

model pass p50 ACT p90 ACT model calls by Jev $/task
Gemini 3.1 Flash-Lite 0.99 1.0s 1.8s 1.09 - $0.0009
Jev + Flash-Lite 0.97 0.6s 1.6s 0.49 0.58 $0.0007
GPT-5.6 Luna 0.99 1.3s 3.2s 1.10 - $0.0004
Jev + Luna 1.00 0.6s 2.9s 0.50 0.56 $0.0004
GPT-5.6 Terra 0.99 1.2s 2.5s 1.10 - $0.0040
  • Speed: Jev halves the model calls and the median ACT time. The p90 barely moves, because the slow steps are the ones Jev leaves to the model.

  • Accuracy: unchanged within noise. Every failed Jev run failed on an action the fallback model chose: Flash-Lite gave click an argument 3 times and chose TYPE on the slider once. Across both Jev runs (576 runs in all), Jev chose no wrong action.

  • Cost: a small saving with Flash-Lite and none with Luna. Jev costs about 20–70 µ$ per step. The steps it leaves to the model are the large pages, where the model cost is.

  • Where Jev never decided:

    • Unsure intent: "delete invoice 1037", "cancel my membership", "show me my invoices".
    • Unquoted fill text.
    • Custom dropdowns, which are two-step.
    • Large pages with no word match.

    These are the next things to tune.

  • The three LLM-only rows are the earlier runs from Read back ACT fills, type quoted text as written, and add an 80-row eval #19. The planner seam (Put ACT planning behind a planner trait #20) did not change their code path.

Tests

scripts/test_eval_act.py covers jev: names, slugs, the "by Jev" share, and zero-call cost. mise run check passes.

🤖 Generated with Claude Code

brynary and others added 3 commits September 26, 2026 21:15
A model name that starts with jev: now runs Whirl with --jev, with the
rest of the name as the fallback model, and keeps its own runs. The
leaderboard adds "by Jev": the share of actions Jev chose without the
model. A step with no model call counts as free, since older reports
leave its cost out.

The local summary adds jev:gemini/gemini-3.1-flash-lite and
jev:openrouter/gpt-5.6-luna, three runs of all 48 tasks each. Jev
chose 56-57% of actions, halved the model calls, and cut the median
ACT time from 1.0-1.3s to 0.6s, at the same pass rate. Every failed
Jev run failed on an action the fallback model chose.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Jev now goes through lithos-llm, which prices its requests, so costs
include Jev. The two jev: variants ran again, three runs of all 48
tasks each. Jev chose 56-58% of actions, halved the model calls, and
cut the median ACT time to 0.6s. Every failed Jev run failed on an
action the fallback model chose.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@brynary
brynary added this pull request to stack #56 October 5, 2026 13:22
@brynary
brynary merged commit fc13a32 into main Oct 5, 2026
3 checks passed
@brynary
brynary deleted the act-jev-evals branch October 5, 2026 18:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant