Repository navigation
Commit 565cc8a
fix(eval): agentic search_tool scored tool_correctness ~1% against valid calls
The agentic and single-shot search_tool scorers disagree, and the agentic one --
which is what `--kind search_tool` dispatches to -- is the stale one.
`core/evaluators/search_tool.py` already documents and applies the exclusion:
# limit is optional with a server-side default; emit_widget was renamed to
# user_requested_search in the tool schema -- neither affects search quality.
`core/agentic/search_tool.py` never got it. It compares every key the fixture
names, so a fixture written against the older tool signature fails on `limit`
alone (fixtures say 10, the agent sends the server default 20).
The second cause is list matching. Expected elements were compared with exact
string equality, so a fixture that tokenizes -- ["abandonment", "rate", "3ds"] --
never matches an agent that searches the object's title as one phrase,
["Abandonment Rate - 3DS"]. Both name the same object.
Measured over 143 recorded search_objects calls from a live corpus (12 distinct
questions, October 2026): tool_correctness was true in 3 of 244 evaluations,
~1%. Every one of those 12 questions failed on `keywords` + `limit`, and 11 of
12 failed on nothing else.
This changes two things in `_tool_correctness`:
- ignore `limit`, `emit_widget` and `user_requested_search`, matching the
single-shot evaluator's existing rationale
- match list elements by case-insensitive substring in either direction rather
than exact equality, so differing tokenization of the same object name passes
Replayed against those same 143 calls, 11 of 12 questions now score correct on
every run. The twelfth scores 1 of 7 and should: it phrases its search
differently on every run, which is real instability rather than a scorer
artifact.
Nothing in the suite surfaced this, because an item passes on `tool_selection`
alone -- pass@k stayed at 91-100% while `tool_correctness` sat at 1% and the
derived quality_score was pinned at exactly 0.5 for every search_tool item.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>1 parent 989bee0 commit 565cc8a
2 files changed
Lines changed: 72 additions & 4 deletions
File tree
- packages/gooddata-eval
- src/gooddata_eval/core/agentic
- tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
45 | 72 | | |
46 | 73 | | |
47 | 74 | | |
48 | | - | |
49 | | - | |
| 75 | + | |
| 76 | + | |
50 | 77 | | |
51 | 78 | | |
52 | 79 | | |
53 | 80 | | |
54 | 81 | | |
| 82 | + | |
| 83 | + | |
55 | 84 | | |
56 | 85 | | |
57 | | - | |
| 86 | + | |
58 | 87 | | |
59 | 88 | | |
60 | | - | |
| 89 | + | |
61 | 90 | | |
62 | 91 | | |
63 | 92 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
245 | 245 | | |
246 | 246 | | |
247 | 247 | | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
0 commit comments