Why does renaming a tool's parameter break my agent even though my tests still pass?

Because the model doesn’t call a tool the way your code calls a function. It decides which tool to use and how to fill each argument by reading that tool’s name, description, and parameter schema fresh at inference time, not by referencing a stable identifier your code checks. Rename a parameter or reword its description and you’ve changed exactly what the model reads before it forms a call, even though nothing in your handler’s logic moved.

Your tests still pass because they exercise the code path against the new schema, confirming your handler accepts the renamed field. None of them assert that the model still picks the right tool or fills the right argument once the wording changes, because that’s a model decision, not a code path. Treat a tool’s name and description as a contract with a reader beyond your code, and check tool-selection behavior against eval traffic before merging a rename, not just your test suite.

keep reading

More on this.

Two ways to run Tessary.

Tessary is an open-source agent reliability platform. Cloud and self-hosted run the same workflow on the OpenTelemetry traces your agent already emits.

Tessary Cloud

We host it for you. Send your first trace with nothing to deploy and no model key.

what's includedper organization
traces
10,000 per calendar month
stored trace data
1 GB
retention
30 days
model credit
$10, one-time, for triage and root-cause analysis
credit card
not required

Self-hosted Tessary

Run the open-source code on your own infrastructure with one command. Add your own model key for triage and root-cause analysis.

Self-host Tessary for me by following https://github.com/tessaryai/tessary/blob/main/setup.md

docker compose -f oci://docker.io/tessaryai/tessary:compose up -d -y