Repository navigation
feat(evals): replay GOAT tool-use mistakes (chase 261028 B19) - #1961
Merged
Merged
Conversation
Adapt seven model-facing regression cases to the existing agent-surface eval framework. Export current GOAT instructions and served core/full listings, and grade supplied continuations without a provider client or shell simulator. Add positive and negative grader coverage for registry dispatch, tool listings, arguments, ordering, duplicate calls, malformed traces and unfinished runs. Upstream: 82dc892c5a8b4879783444595c3e49f8ba8de64c (#24635) Local suites and the vp staged commit hook were not run per the task override.
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.
GOAT's paired agent-surface campaigns do not cover small tool-use mistakes such as polling an async child or linking a PR that was only reviewed. Add seven replay cases and an offline continuation grader beside the existing eval tooling, using GOAT's real registry, served core/full listings and current runtime instructions.
82dc892c5a8b4879783444595c3e49f8ba8de64cGOAT adjustments:
scripts/agent-surface/eval. No workspace package, dependencies, inventory copy, paid model calls or dev server.listedNames.tsand obtain full/core tools throughloadServedCatalog().listedAsThread; export this checkout's orchestration/development/browser instructions rather than captured upstream prompts.goat_call {path,args}consistently. Reject unknown GOAT paths, unlisted direct calls, foreign-server names used as GOAT calls, failed required calls, malformed traces and unfinished runs.Not taken:
html.previewthenhtml.renderrule only.Rename residue (inspected added upstream lines with
git show 82dc892c5a | rg '^\+.*\b[Tt]3'):T3,T3 Code,t3,t3code,t3-code,t3-browser,.t3,t3-f8cdd940: upstream branding, package/readme/template/world data excluded. New case histories are invented GOAT data.@t3tools/evals,@t3tools/contracts,@t3tools/provider-core,@t3tools/shared: upstream workspace/import/lockfile hunks excluded; reuse the existing GOAT scripts package.t3_thread_send,t3_thread_read,t3_thread_wait: original names excluded; selected behaviors usethread.send,thread.read,thread.waitand listedgoat_thread_*names.t3-thread: original link literal excluded; selected thread-link behavior usesgoat-thread://v1/.t3_thread_interrupt,t3_thread_launch,t3_thread_list,t3_thread_search,t3_preview_close,t3_preview_list: unselected case/runner hunks excluded.T3_PREFIX,t3SourceTools,t3Tools,t3SystemAppend,t3ContextReport,t3Default,t3_code_,t3_code_runtime,T3_DEBUG_WS,T3_TRACE_SQL: upstream runner/template/helper/fixture hunks excluded. Existing GOAT frozen wrappers are untouched.node scripts/goat-rename.ts --check: exit 0,0 lines with T3 residue in 0 files, 0 dropped pathson the staged change.Verification:
vp fmt scripts/agent-surface/eval/replay.ts scripts/agent-surface/eval/replay-cases.ts scripts/agent-surface/eval/replay-run.ts scripts/agent-surface/eval/replay.test.ts docs/operations/agent-surface-eval.md: exit 0 (5 files).git diff --cached --check,git diff --check,git diff origin/dev...HEAD --check: exit 0.vp stagedcommit hook was bypassed for this commit to honor the explicit local-check override.NOT RUN:
vp test run scripts/agent-surface/eval/replay.test.ts scripts/agent-surface/eval/core.test.ts scripts/agent-surface/eval/rows.test.ts, other local test suites/vitest,vp run check:changed,vp run typecheck, lockf-wrapped heavy checks,vp stagedcommit hook, separate lint/knip/build checks, replay CLI context/trace runtime smoke, paid model evaluations; browser captures and native mobile verification are unavailable on this machine. CI results were not awaited, per instruction.Review rounds 1-2
Review round 1
dbc56729142e3c457b9df8c4fcef8a33715b3bd4. Register the standalone replay CLI in the scripts workspace entry graph. Add a real-Knip fixture regression inscripts/knip-schemas.test.tsthat requires the CLI to stay reachable while an unrelated unused script remains reported.09b89fbb3c1489bc4a98d9634ad6283ca39e59de. Recognize nativeMonitorandfunctions.Monitoralongside Bash and exec_command. Add otherwise-valid review and managed-worktree continuations that fail only the forbidden-shell check; cover direct and functions-prefixed shell names.09b89fbb3c1489bc4a98d9634ad6283ca39e59de. AddcallsMustNotwith the existing partial-argument matcher and forbid child task prompts containinggit worktree addorgit clone. Regression continuations retainisolation: "worktree"and cover both direct calls and dispatcher calls. RaiseREPLAY_VERSIONto 2 and update the documented trace example.Fresh local evidence: changed-file
vp fmtexited 0;git diff --checkandgit diff de8fc894d75351e3d573713943a632b249faf103...HEAD --checkexited 0;node scripts/goat-rename.ts --checkexited 0 with0 lines with T3 residue in 0 files, 0 dropped paths. Private-data scan of added review-fix lines found no matches. The pre-commitvp stagedhook was bypassed to honor the local-execution override; the normal pre-push workflow guard remains enabled.The regression tests were written before their respective fixes, but were not executed locally. Red/green proof and test/knip success are not claimed. goat-ci must verify the current PR head; its results were not awaited. The known inherited
ComputerUseLeases.tscode-budget issue is unchanged.NOT RUN:
vp test run scripts/knip-schemas.test.ts scripts/agent-surface/eval/replay.test.ts, other local suites/vitest, red/green mutation runs,vp run check:changed,lockf -k /tmp/goat-heavy-check.lock vp run check:changed,vp run typecheck,vp staged, separate lint/knip/build checks, replay CLI context/trace smoke, paid model evaluations; browser captures and native mobile verification are unavailable. CI results were not awaited.Review round 2
766b71cbd84cb58e0b8a611ed671313e5abbc31f. Restore the retained upstream case'suntilpolling ofgh pr|run|api,forpolling ofgh pr checks, andpr-waitnegatives. Add five otherwise-valid negative traces and a one-shotgh pr checkspassing control in the existing replay test file. RaiseREPLAY_VERSIONand the documented example to 3.Fresh local evidence for round 2:
vp fmt scripts/agent-surface/eval/replay.test.ts scripts/agent-surface/eval/replay-cases.ts docs/operations/agent-surface-eval.mdcompleted successfully (3 files);git diff --check,git diff --cached --check, andgit diff 09b89fbb3c1489bc4a98d9634ad6283ca39e59de --checkexited 0.node scripts/goat-rename.ts --checkexited 0:0 lines with T3 residue in 0 files, 0 dropped paths. Added lines were inspected and contain only invented fixture data. The commit hook (vp staged) was disabled for this commit to honor the explicit local-execution override; the normal pre-push guard remained enabled.The regression cases were added before the rule change but were not executed locally. No red/green, test, typecheck or Knip success is claimed. goat-ci on
766b71cbd84cb58e0b8a611ed671313e5abbc31fis the verification authority; CI is not awaited. The inheritedComputerUseLeases.tscode-budget issue is unchanged. No new PR, watch, merge or review request was made.NOT RUN: focused
vp test run scripts/agent-surface/eval/replay.test.ts scripts/agent-surface/eval/core.test.ts scripts/agent-surface/eval/rows.test.tsandvp test run scripts/knip-schemas.test.ts scripts/agent-surface/eval/replay.test.ts; all other local test suites/vitest and red/green runs;vp run check:changed,lockf -k /tmp/goat-heavy-check.lock vp run check:changed,vp run typecheck,vp staged, lint/Knip/build checks, replay CLI/context/trace smoke, paid model evaluations; browser captures and native mobile verification are unavailable. CI results were not awaited.CI fixes:
286e28fc680b00d57d5809752fb4eb034b61f03don766b71cbd84cb58e0b8a611ed671313e5abbc31f— match the sibling eval CLIs with a documented plain-NodeglobalConsole:offdirective inreplay-run.ts; preserve JSON output and assertions. Read failing jobs 122433685883 and 122433685972. Static checks passed:node scripts/goat-rename.ts --check, changed-filevp fmt, changed-filevp lint, andgit diff --check.vp exec oxlintwas attempted but the executable is absent;vp lintpassed instead. Leave the inherited DesktopTargetHost.test.ts code-budget failure to #1972.NOT RUN: local test suites (
vp test run, vitest, red/green runs),vp run check:changed,vp run typecheck, lockf-wrapped checks,vp stagedcommit hook, separate Knip/build checks, replay CLI runtime smoke, browser/mobile verification. goat-ci verifies the pushed head; CI was not awaited.Model: gpt-6.1-sol via GOAT delegated task (Codex harness)