Harden the benchmark and cut gitea-axi's agent cost #44
Reference in New Issue
Block a user
Delete Branch "bench-skill-and-cli-cost-fixes"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
A session of benchmark-harness and agent-ergonomics work on top of
main(the task 0034/0035 pr-review commits this was cut over are already merged, so the diff is only the changes below). It hardens the benchmark, fixes two agent-facing CLI issues, and rewrites the bundled Agent Skill — moving gitea-axi from the most-expensive benchmark arm to a co-leader at the raw-REST token floor.Headline result
A clean co-temporal 4-arm run (post-change) puts gitea-axi at −34% cost-equivalent tokens (27,002 → 17,815), turns 8.0 → 4.8, and success 86% → 100% — from most-expensive arm to within ~1% of hand-rolled raw REST, and cheapest structured interface by ~23%. The other three arms moved ±2–6%, so the gain is attributable to the changes rather than environment drift.
What's in it
Agent Skill
refactor(skill): rewrite for predictability — replace the open-ended "Discovery" section (bare dashboard, proactive--help) with a "find the target, then act" steer plus named mutation flags. A same-time A/B cut cost ~10% and collapsed bare-dashboard use 60% → 7%.CLI
fix(context): tolerate a trailing/api/v1onGITEA_AXI_API_URL. Agents habitually append it (the standard REST convention), which double-appended and 404'd as a spuriousREPO_NOT_FOUND— present in 8/8 failures of an earlier run. Now harmless.feat(search): on a 0-result search, point at the non-indexedlistfallback (recovers from an over-narrow query or index lag) instead of a nonsensicalview <number>hint; on a single match, fill the real number. Search stays a locator — no auto-collapse (ADR 0017).Benchmark harness
fix(bench): gate seeding on repo + issue-index readiness (closes a provisioning/index-lag race), and match read-answer counts semantically rather than by brittle substring.feat(bench):--skill <path>to A/B a skill variant against the shipped one with the same binary and harness.Docs
docs(bench): rewrite the benchmark README from the post-fix snapshot.docs: correct the bench/CLI login-name gotcha (alexion, notaxi) and record the bench test-config gotcha.Testing
Full unit suite green (410 tests), with new coverage for the
/api/v1normalization and the count-conditional search suggestion. Benchmark validated by live runs againstgit.alexion.dev.