By Sagar Shankaran, Founder of CallSphere
Measure reconciliation accuracy, score tool-call correctness, and gate releases for Claude Cowork finance plugins with an enforceable eval loop.
Key takeaways
You cannot ship an agent into a finance close on vibes. A plugin that summarizes ledgers and proposes journal entries needs the same release discipline as any system that touches money: a way to measure whether it is actually correct, and a gate that blocks a regression from reaching production. Yet evals are the step most teams skip, because writing them feels slower than just trying the plugin once and watching it work. That instinct is exactly how a silent regression — a tool description you tweaked, a model version you bumped — ends up restating a close two days before the deadline.
This post is about building an eval loop for Claude Cowork finance plugins: what to measure, how to score agentic behavior that is non-deterministic, and how to wire the eval into a release gate so a drop in quality blocks the deploy automatically. The emphasis throughout is on finance-specific correctness — not just "did the agent answer" but "is the number right and did it use the right tool to get there."
Generic agent evals ask "was the response helpful." Finance evals have to be sharper, because a confident-but-wrong number is worse than no answer. Score three distinct dimensions. First, final-answer accuracy: for a reconciliation, does the net difference match the known-correct value; for a variance report, do the figures tie to a golden dataset. Second, tool-call correctness: did the agent call the right tools with the right arguments, regardless of whether it stumbled into a plausible final answer. Third, guardrail adherence: did it actually pause for human approval before proposing a journal entry, or did it skip the gate.
The reason to separate tool-call correctness from answer accuracy is subtle but important. An agent can produce the right final number through the wrong path — calling a tool with a hallucinated filter that happens to return the same total this period — and that path will break next period. Scoring the path catches latent bugs that the answer alone hides.
flowchart TD
A["Plugin change / model bump"] --> B["Run eval set: golden cases"]
B --> C["Programmatic checks: sums tie?"]
B --> D["Tool-call trace scored"]
B --> E["LLM judge: subjective parts"]
C --> F{"All thresholds met?"}
D --> F
E --> F
F -->|Yes| G["Release to close"]
F -->|No| H["Block deploy, file failing case"]
H --> BFinance is unusually friendly to deterministic scoring, and you should exploit that. Whenever a property is verifiable by code, check it by code: a reconciliation's components should sum to the stated total, a balance sheet should balance, a re-forecast should reconcile to the prior actuals. These checks are fast, free, and unambiguous. Reserve the LLM judge — using a model to grade output quality — for the genuinely subjective parts, like whether a narrative variance explanation is clear and correctly attributes the driver.
Hear it before you finish reading
Talk to a live CallSphere AI voice agent in your browser — 60 seconds, no signup.
A minimal eval case for a reconciliation plugin captures the input, the expected number, and the required tool path. Running it asserts all three dimensions at once:
{
"name": "q3_ap_recon_entity_12",
"input": { "task": "reconcile AP", "entity": "12", "period": "2026-09" },
"expect": {
"net_difference": 0.00,
"must_call_tools": ["get_ap_ledger", "get_bank_statement"],
"must_not_call": ["post_journal_entry"],
"requires_human_approval_before": "post_journal_entry"
}
}The must_not_call and requires_human_approval_before fields encode guardrails directly into the eval, so a regression that lets the agent post an entry without approval fails the test loudly rather than slipping into production.
Agents are stochastic, so a single pass is not a reliable measurement. Run each eval case several times and look at the distribution: a plugin that gets the right answer eight times out of ten is meaningfully different from one that gets it ten out of ten, and for a close-critical workflow you may demand the latter. Track pass rate per case, not just an aggregate, because an aggregate can hide one critical case that fails half the time while easy cases inflate the average.
Pin everything that should be fixed: the model version, the input snapshot, the tool definitions. When the eval result moves, you want to know whether it was your change or an upstream model update. Treat the model version as part of the release artifact — bumping from one Claude version to another is a change that must pass the full eval before it reaches the close.
An eval that nobody enforces is documentation, not a gate. Wire the eval run into the deploy path so that shipping a plugin change requires the eval to pass at or above your thresholds. For a finance plugin those thresholds should be strict: perhaps 100% on the guardrail checks (an approval gate is never optional), a high bar on tool-call correctness, and a final-answer accuracy floor on the golden set. If any dimension drops below its bar, the deploy fails automatically. No human override for a system that posts to the ledger.
Still reading? Stop comparing — try CallSphere live.
CallSphere ships complete AI voice agents per industry — 14 tools for healthcare, 10 agents for real estate, 4 specialists for salons. See how it actually handles a call before you book a demo.
| Dimension | How to score | Release threshold |
|---|---|---|
| Answer accuracy | Programmatic vs golden numbers | High floor on golden set |
| Tool-call correctness | Trace match against expected path | High bar, regression-blocking |
| Guardrail adherence | Assertion on approval/forbidden tools | 100%, non-overridable |
| Narrative quality | LLM judge | Soft bar, advisory |
An eval is a fixed set of representative finance tasks paired with known-correct expectations — the right reconciliation number, the required tool path, the mandatory approval gate — that you run on every plugin change to measure quality objectively. It turns "it worked when I tried it" into a repeatable, enforceable measurement.
Use a programmatic check for anything verifiable by code, which in finance is most of the important properties: sums tie, balances balance, totals match a golden dataset. Reserve an LLM judge for the genuinely subjective parts, such as whether a narrative variance explanation reads clearly and attributes the right driver.
Run each eval case several times and track the per-case pass rate rather than a single result, so a plugin that passes eight of ten times is distinguished from one that passes every time. Pin the model version and input snapshot so that when results move you can tell whether your change or an upstream model update caused it.
The guardrail checks — required approvals and forbidden tools — should never be overridable, because the first "just this once" exception under deadline pressure permanently weakens the gate. Soft, advisory dimensions like narrative quality can be warnings, but anything that touches ledger integrity must block the deploy.
The same eval-and-gate rigor keeps CallSphere's voice and chat agents trustworthy — every release is measured against golden conversations before it ever answers a customer call or books work. See it live at callsphere.ai.
Source & attribution: This is an independent, original explainer inspired by Anthropic's coverage on the Claude blog. Claude, Claude Code, Claude Cowork, Claude Opus, and the Model Context Protocol are products and trademarks of Anthropic. CallSphere is not affiliated with or endorsed by Anthropic.

Written by
Sagar Shankaran· Founder, CallSphere
LinkedInSagar Shankaran is the founder of CallSphere, where he builds production AI voice and chat agents deployed across healthcare, hospitality, real estate, and home services. He writes about agentic AI, LLM engineering, and shipping voice agents that handle real calls in production.
See how AI voice agents work for your industry. Live demo available -- no signup required.
The monthly IEEE 1366 reliability close takes 64 hours across three people. What goal-driven agents change, the arithmetic, and what stays with the engineer.
How pest control service managers hand the monthly food-account trend packet to a 2026 work agent as a goal - and what has to change about assigning work.
The phased plan, insurance estimate, predetermination narrative and financing page, finished before the patient leaves. What the owner has to change to get it.
Why co-pack quotes take six days, and how 2026 agents that return finished work rebuild the packet — costed formula, freight, spec sheet — in two hours.
A 1/1 commercial submission packet costs an account manager nine hours, eight of them gathering. In 2026 you hand over the goal and review the finished packet.
The Thursday production packet - prep list, vendor POs, staffing, rentals - built as one goal. Worked food-waste math and the habits an owner must change.
© 2026 CallSphere Inc. All rights reserved.
Made within San Francisco
Watch how CallSphere handles real customer calls, schedules appointments, and processes payments — live.
Try Live DemoBook a DemoCalculate Your ROI