How to Fix an AI Agent's Tool Descriptions Without Guessing
A wrong tool call is often a tool-description problem, not a prompt problem. The reliable fix is to capture the failing tool decision, change one description or schema boundary, run the current and candidate agents on the same tasks, and measure the targeted mistake after an approved release.
Do not call a clearer description a fix because the wording sounds better. Tool descriptions change what an agent sees at decision time. Treat them as versioned behavior configuration, alongside prompts, routing, and retrieval. This guide fits the AI agent optimization loop and the coding-agent workflow.
The short version
Test tool descriptions like code: name one observed wrong decision, preserve the control, compare shared tasks, and close only when the same production signal supports the result.
When a tool description is the likely layer
Start from the trace, not from a generic prompt rewrite. A tool-description candidate is plausible when the agent selected an available but inappropriate tool, skipped the appropriate tool, or supplied arguments that match the wrong tool's contract. It is not the right first fix when the selected tool failed, the user data was missing, a retrieval result was stale, or the application routed the request to the wrong agent.
Amazon Bedrock AgentCore documents tool-description recommendations specifically for ambiguous requests that cause tool-selection confusion. Its guidance is useful even if you do not use AWS: hold the current configuration and real traces together, propose a bounded description change, and test before applying it. The diagnosis still needs to establish that the wrong decision came before the downstream failure.
1. Capture a baseline that can explain the failure
For each failing request, preserve the user request, available tool names and descriptions, the selected tool, its arguments, the returned result, and the next agent turn. The useful unit is a decision, not just a final answer. A final answer can look wrong because a tool was unavailable, because a tool returned bad data, or because the agent ignored a good result after calling the right tool.
Group the failures by the confusion you can name. For example, an agent may use `refund_order` whenever a user mentions a return, even when `lookup_order` should run first. Count that pattern over eligible requests and keep unknown or incomplete traces out of the denominator. A count without the available tool set does not establish why the selection happened.
2. Change one decision boundary
Make the smallest edit that distinguishes the tools. State what the tool does, when to use it, when not to use it, required information, and the consequence of a wrong call. If two tools share a name-shaped description such as 'handle returns,' clarify the order and the precondition rather than adding a long paragraph of policy to both.
Keep the name, schema, permissions, prompt, model, routing, and retrieval configuration fixed unless one is the diagnosed cause. If you change the tool description and the system prompt together, a later result cannot tell you which change mattered. A schema change is a separate candidate, because it can alter both what the model emits and what the runtime accepts.
- Keep
- Observed failure
- Example
- The agent starts a refund before confirming the order exists
- Keep
- Control
- Example
- Current descriptions for `lookup_order` and `initiate_refund`
- Keep
- Candidate
- Example
- Add the order-ID precondition to `initiate_refund`; do not edit the prompt
- Keep
- Primary measure
- Example
- Wrong-refund-tool selection rate on eligible refund requests
- Keep
- Regression measure
- Example
- Successful lookup and valid-refund completion on the existing suite
3. Compare the current and candidate agent on shared tasks
Run both configurations on the same requests, including the observed failure family and nearby requests that already work. Compare tool-selection accuracy, argument validity, task completion, and any cost or latency effect that matters for the workflow. The candidate should not advance because it improves one narrow example while it starts refusing legitimate tool calls elsewhere.
Arize's recent tool-description walkthrough reached the same practical conclusion: inspect the tool calls behind an answer, rerun the same tasks, and keep outcome quality in the comparison. The exact benchmark and vendor are not the point. The point is that a correct-looking final answer can hide unnecessary or incorrect tool behavior, and a lower tool-call count is not automatically an improvement.
Converra's simulation uses paired comparisons, so a challenger must beat the current configuration on conversations both versions completed. If your team changes descriptions in its own repository, use Converra to preserve the diagnosis and comparison evidence, then apply the approved configuration change through your existing deployment path. Converra does not take authority to change customer tool definitions.
4. Release with a marker, then verify the targeted behavior
Record the exact description version and release time. After the approved release, count the same wrong-tool pattern on new eligible requests with the same detector and tool inventory. Separate an approved release, a deployed configuration, and evidence that the behavior changed. A passing benchmark proves only the benchmark result.
For a low-volume agent, keep monitoring until there are enough eligible tool decisions to interpret. If another prompt, schema, model, or routing change overlaps the window, mark the outcome confounded rather than crediting the description. The guide to verifying an AI agent fix after deployment explains the comparable-window discipline.
Worked example: stop a refund tool from skipping lookup
The numbers are illustrative, not customer evidence. A support agent has `lookup_order` and `initiate_refund`. In 18 of 120 eligible refund requests, it calls `initiate_refund` before checking whether an order exists. The trace shows the same ambiguous description in every failure. The team changes only the refund tool description to require a found order ID and to direct missing IDs to lookup first.
They run 40 shared tasks. The candidate removes the early-refund call on 10 failure-family tasks, retains valid refunds on 12 known-good tasks, and has no new malformed arguments. A reviewer approves the configuration release. In the next 90 eligible production requests, the same detector finds two early-refund calls. That is evidence of improvement, not proof that the issue vanished. The team investigates the two recurrences before making a stronger claim.
If the release had also changed a prompt rule about refunds, the outcome would be confounded. If the tool had returned an order-not-found error after the correct lookup, the description was not the root cause. Those distinctions keep a polished description from becoming a story about a problem it did not solve.
Use a coding agent without handing it the verdict
A coding agent can retrieve the saved failure evidence, inspect the available tool contracts, summarize the candidate comparison, and prepare the implementation work for the team that owns the agent. Ask it to report missing traces, incomplete denominators, and overlapping changes explicitly. Do not ask it to infer success from an edited description or a green test run.
With Converra's MCP connection, begin with existing agents and run evidence, then inspect step-level diagnosis and verification evidence. Generating a candidate, running a simulation, deploying a change, and any other state-changing action remain subject to the connected account's scopes and the user's explicit authority.
Frequently asked questions
How do I know whether a tool description caused the wrong tool call?
Compare the failing request with the available tool contracts and the selected call, then rule out routing, missing data, tool failures, and prompt instructions. A description is a candidate cause when the agent repeatedly chooses an available but inappropriate tool for the same ambiguity.
Should I change the prompt and tool descriptions together?
No, not when you want to attribute the result. Change one diagnosed layer at a time, test it against the current configuration on shared tasks, and release it with a marker. A combined edit can be useful for an emergency but it makes the later outcome hard to interpret.
What should I measure after changing a tool description?
Measure the specific wrong-tool pattern on eligible requests, plus task completion and regressions on tasks that previously worked. Keep the same tool inventory and detector where possible so a before-and-after difference describes behavior rather than a changed measurement method.
Can Converra automatically edit my tool descriptions?
No. Converra can preserve diagnosis, simulation, and production-verification evidence around an agent change, but the team that owns the agent approves and applies its tool-configuration changes through its own deployment path.

Written by
Oren CohenFounder of Converra. Previously founded Buildup (acquired by Stanley Black & Decker) and, as VP Product Growth at Totango, owned AI end-to-end from design through production.
Related reading
Find the layer where an agent issue lives
Separate prompt, tool, retrieval, routing, model, and data causes before changing configuration.
Turn production traces into improvements
Use trace evidence to choose a bounded candidate instead of a generic rewrite.
Connect a coding agent to Converra
Inspect saved diagnosis and verification evidence through the authorized MCP workflow.
Turn a wrong-tool trace into a tested behavior change
Converra keeps the diagnosis, candidate comparison, approval, and production evidence separate so your team can see whether a tool-description change actually changed the behavior.