Batting 5th

SIX TRACES

Six agents said 400. Which one can you check?

Every vendor you've heard from this year has an agent that'll answer questions about your data. I asked six of them the same one: how many home runs have I seen in person?

All six said 400. All six were right.

Then I opened every trace and scored it on five things: does it show its plan, its query, its source, its tokens and time, and can you even get the trace out? No agent went five for five. Each one hides something different, and whatever it hides is what you'll be QA'ing blind.

Agentforce Claude Agent SDK BigQuery Databricks Genie Snowflake Cortex Tableau Agent Hosted MCP

The game. Saturday, July 30, 2022. Old-Timers' Day, the first since 2019. Royals at Yankees, 8–2. The crew back together: Al, Bergan, Matty, on the Yankee train in. I kept score, and helped the son of one of Matty's friends keep his. Mo was on the field before first pitch. The Claude agent's one action in this piece was a note to Al about this day. It drafted it and stopped. No recipient. I'm the send button.

A plain web page: bar chart of home runs witnessed by year, 34 bars, one direct label on the maximum, light theme
The Claude door · the same 400, by year, as one self-contained page with inline SVG and no chart library, generated from the same spec and token file as every other door. Nothing needed a browser. The only human step was saying “publish.”

#Six traces, one rubric

Measured September 3 to 5, 2026, one question, one run each, from the trace each platform actually produces. Not a benchmark. A vendor may have closed its gap since.

AgentShows its plan?Shows the query?Names its grounding?Tokens & time?How you get the trace
AgentforceA 21-step sequence, no stated reasonThe action and its input, not the SQL underneathAbsent. Provable only from the Apex sourceLatency per step. Zero token fields in 85 KBThe CLI writes a local file. Copy it or lose it
Claude SDKTool sequence, thinking billed but not surfacedThe metric name; there is no SQL by designIn the tool's own text: the governed catalogBoth, fully. $0.18, 5.7 s of model in 38.7 sStraight from the SDK's own message stream
BigQueryPlain sentences, the plainest of the sixSQL verbatim, twiceThe table and the BigQuery job id9.5 s; 0 bytes billed, a cache hitThe official Python client, streamed
Databricks GenieFour typed thoughts; states its own assumptionMEASURE(home_runs_witnessed) by nameNamed and self-qualified17.9 s; model called twice per turnThe Python SDK, polled. No stream
Snowflake CortexA status ladder; thinks aloud when it failsSQL, and the first attempt failed in the openThe semantic view, then re-derived by handRichest platform log: 12 rows, per-step tokensA stream, plus an event table you can query with SQL. No setup
Tableau AgentNo reasoning textThe structured semantic query, verbatimNamed: the semantic model, on every answer9.1 s; zero token fieldsThe hosted MCP server, over HTTP. One browser login

Tableau Agent's confident zero was diagnosable only because it shows the query. Baseball Scout's 9 was diagnosable only because Agentforce writes tool_invocations: null to a file. Genie was the one agent that volunteered a caveat. Cortex was the one that walked past the definition it was handed and rebuilt it. BigQuery narrated in English and gave a job id you can look up.

#Four calls, nine calls, and where the time went

The Claude agent has no SQL tool. Its whole world is list the metrics, query a metric by name, draft an email. Asked about home runs and the Yankees' win rate, it listed the metrics, asked for two by name, done: 4 tool calls. A twin with a raw read-only SQL tool instead spelunked the schema, rediscovered that a home run is event code 23, found the team-grain table, and got the same right answers in 9. Good modeling narrows the gap, because the marts are clean. The governed path still answered in under half the moves with zero rediscovery, and the metric name is right there in the trace. A smaller model got 400 through the same path too, after fumbling seven tool-loading calls first. Correctness survived the small model.

Then the clock. That one turn cost $0.18 and took 38.7 seconds. The model's share was 5.7 seconds. 21.7 seconds was the local metric engine starting up. The bottleneck was not the model, and if you'd only had the chat window you'd have blamed it.

One more from the same family, from Baseball Scout: an action returned 22 venue groups and the prose said “21 different stadiums.” Grounded, and miscounted. The tool did its job; the sentence didn't. That's a column the rubric doesn't have yet.

#From the shoebox

Commemorative ticket: Old-Timers' Day 2022, Yankees vs. Royals, July 30, 2022
The commemorative ticket. By 2022 the real one was a barcode on a phone; this is the one you keep.
Scorecard book, gameday details: Bergan, Al, Matty; 7/30/22, 74th Old Timer's Day, Yankees vs Royals; section 419, row 4, seat 6; final line score KC 2, NYY 8
My card, the details page. Bergan, Al, Matty across the top. Section 419, row 4, seat 6. Anthem: Robert Merrill. The line score reads 2 and 8. The warehouse says 8–2. The pencil got there first.
Scorecard, Yankees batting: LeMahieu, Judge, Benintendi, Torres, Donaldson, Carpenter, Gallo, Hicks, Kiner-Falefa, Trevino
Yankees, inning by inning. Never added up. We went to dinner.
Scorecard, Royals batting: Merrifield, Witt Jr., Perez, Dozier, Pasquantino, Taylor, Melendez, Garcia, O'Hearn
Royals, the same. Nine names, one of them Witt Jr. in his first year.
Handwritten list on the scorecard book's autograph page: 74th Old Timer's Day, 26 names from Joan Ford to Bernie Williams, with a legend for wives, video, trainer, player, retired number
The autograph page, repurposed. Everyone introduced before first pitch, in order, with my own legend: wives, on video, trainer, player, retired number. A schema, written in the stands.

#Try this

Ask your agent one question you already know the answer to. Then find its trace and fill in the five columns. Any column you can't fill is what you'd be QA'ing blind.

#What it taught me

  1. Right answers are the floor. Legible answers are the job. Six agents said 400. The one you can defend in a meeting is the one whose trace shows the query and names the model it ran against. Ask that of any agent you're handed before you ask whether it's accurate.
  2. The tool set is the policy. An agent with no SQL tool cannot go ungoverned. This is Baseball Scout's “gate structurally” applied to reads.
  3. Measure the whole turn, not the model. 33 of 39 seconds wasn't inference. In the age of the agent, you're going to be asked why it's slow, and the answer is going to be in the trace, not the prompt.

Next, batting 6th: Where does the fan-out hide? →