← Latest papers
💻 computer science

Verified Tool Calls Improve LLM Agent Reliability Under Non-Atomic Failures

This paper proposes a lightweight, verification-aware tool wrapper that mitigates reliability issues in LLM agents caused by non-atomic tool failures—such as timeouts and partial updates—by significantly reducing duplicate actions while maintaining task success rates without modifying the underlying language model.

Original authors: Isham Kalappurackal Mansoor, Abhishek Phadke, Pratip Rana

Published 2026-08-05
📖 6 min read🧠 Deep dive

Original authors: Isham Kalappurackal Mansoor, Abhishek Phadke, Pratip Rana

Original paper licensed under CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). This is an AI-generated explanation of the paper below. It is not written or endorsed by the authors. For technical accuracy, refer to the original paper. Read full disclaimer

Imagine you are the captain of a spaceship, but instead of steering the ship yourself, you are talking to a very smart, chatty robot co-pilot. Your job is to give the robot instructions, like "Turn on the engine" or "Send a distress signal." In the world of Artificial Intelligence, these robots are called LLM agents (Large Language Model agents), and the things they touch are called tools (like computer programs or databases). For a long time, scientists assumed that when the robot asked the tool to do something, the tool would instantly say, "Done!" or "Oops, failed!" It was like a perfect game of ping-pong where the ball always comes back immediately.

But in the real world, things are messier. Sometimes you send a message, and the network is slow, so you get no answer for a while. Or maybe the message actually did get through and the engine started, but the robot never got the "Done!" signal. If the robot panics because it didn't hear back, it might shout, "Do it again!" and accidentally turn on the engine twice. This paper is about teaching these robot co-pilots how to handle those confusing moments without causing chaos. It suggests that instead of just guessing and retrying, the robot should take a quick peek to see if the job is actually done before trying again.

The Problem: The "Did It Work?" Mystery

The researchers noticed a big gap in how these AI agents work. Most current systems act like they are in a perfect, instant world. They assume that if a tool call (like sending an email or updating a bank record) doesn't get a clear "Success" message, it definitely failed.

But real computer systems are like a busy post office. Sometimes, a letter is delivered, but the "Delivered" receipt gets lost in the mail. Sometimes, the letter arrives, but the person checking the mailbox hasn't seen it yet (a delay). Sometimes, the letter is only half-delivered. In the paper, the authors call these non-atomic failures. "Atomic" means something happens all at once, like a light switch flipping. "Non-atomic" means it's messy, with delays and partial steps.

When an AI agent faces this mess, it often panics. If it sends a command and gets a timeout (no answer), it thinks, "Oh no, it didn't work!" and tries again. But if the first command actually worked, the agent just created a duplicate. Imagine ordering a pizza, getting no answer from the shop, and calling them back five times. Now you have five pizzas instead of one. In the digital world, this could mean sending five angry emails to a customer or charging a credit card five times.

The Solution: The "Check-First" Wrapper

To fix this, the authors built a simple, lightweight "wrapper" (a safety layer) around the tools the agents use. They call it a verify-before-retry system.

Here is how it works, using a simple analogy:
Imagine you are trying to hang a picture on a wall.

  1. The Old Way (Naive Retry): You hammer the nail. You don't hear a "thud," so you think you missed. You hammer again. Then again. You end up with a giant, ruined hole in the wall because you kept hammering even though the picture was already up.
  2. The New Way (Verify-Before-Retry): You hammer the nail. You don't hear a "thud." Instead of hammering again immediately, you look at the wall. You check: "Is the picture hanging?"
    • If the picture is there, you stop. You don't hammer again.
    • If the picture is not there, then you hammer again.

This wrapper adds three smart rules to the agent's behavior:

  1. Separate the Signal from the Reality: Just because you didn't get a "Success" message doesn't mean the action failed.
  2. Check Before You Retry: Before the agent tries a command again, it must first check the actual state of the world (the "postcondition") to see if the job is already done.
  3. Use a Magic Key (Idempotency): If the agent does have to retry, it uses a special "magic key" (an idempotency key). This tells the computer system, "Hey, I'm trying this again, but it's the exact same request. If you already did it, just ignore this second one."

What They Found: Fewer Mistakes, Same Success

The researchers tested this idea in a simulated environment where they intentionally broke things to see how the agents would react. They created two main tasks:

  • Activate a Customer: Create a user account and send exactly one welcome message.
  • Record an Invoice: Update a bill and mark it as paid.

They injected different types of "bad luck" into the system, like network timeouts, delayed updates, and partial failures. They compared the old "just retry" method against their new "check-first" method.

The results were clear and quite dramatic:

  • Duplicate Actions: The old method was a disaster when things went wrong. In the "Activate Customer" task, when failures were frequent, the old agent sent duplicate welcome messages 72% of the time. The new "verify-before-retry" agent reduced this to just 20%. In the "Record Invoice" task, the old agent created duplicate records 76% of the time under high failure rates, while the new agent dropped that to 20% (down from 0% at low fault and 16% at medium fault).
  • Task Success: The new method didn't just stop mistakes; it actually helped the agents finish their jobs better. For the customer task, the new agent succeeded 100% of the time, even when the system was broken. The old agent's success rate dropped to 64% when things got messy. For the invoice task, the baseline was already quite strong (achieving 100% at low fault and 96% at high fault), but the new wrapper ensured a 100% success rate even at the highest fault levels, maintaining reliability where the baseline dipped slightly.

The authors also ran a special test to see which part of their new system was doing the heavy lifting. They found that the verification (checking if the job was done) was the most important part. Simply checking the state and not retrying was almost as good as the full system. This suggests that the biggest problem wasn't that the agents needed to try harder; it was that they were trying too hard when they didn't need to.

Why This Matters

The paper suggests that we don't need to make the AI "smarter" or change its brain to fix these problems. Instead, we just need to change how it interacts with the tools. By adding a simple step to "look before you leap," we can make AI agents much more reliable.

This is especially important for tasks where doing something twice is a disaster, like sending money or deleting files. The study shows that in a world where computer systems are often messy and delayed, the best way to build a reliable robot is to teach it to double-check its work before panicking and doing it again. It's a small change in the software that could prevent a lot of digital chaos.

Drowning in papers in your field?

Get daily digests of the most novel papers matching your research keywords — with technical summaries, in your language.

Try Digest →