Verifiable AI Tool Calls
Verifiable AI tool call definition
Verifiable AI tool calls are agent tool invocations that mint a public execution receipt: what ran, with what arguments, what was observed, and a fingerprint binding the record to that outcome.
Agent tool call verification has two kinds: before execution, checking the call against a policy or manifest; and after execution, checking the receipt that proves the call happened as recorded.
To verify an AI tool call after it runs, open the receipt URL, check the named tool and arguments, and recompute the SHA-256 fingerprint against the observed result.
AI phone calls vs AI tool calls
AI calls can mean voice or phone calls, which voice platforms verify at the call-record layer. This page covers agent tool invocations: requests from an AI agent to a connected capability, with a public receipt for the recorded execution.
Live examples
live_price tool callOpen the public execution receipt and inspect its recorded result. capability_search tool callCompare a second public receipt from the same reference implementation.Two kinds of verification
Check the proposed tool, arguments, permissions, and policy or manifest before allowing the call.
Open the receipt, inspect the recorded call and result, and recompute its SHA-256 fingerprint.
How to verify an agent tool call
- Open the receipt URL and confirm the record identity.
- Check the named tool and the arguments that were recorded.
- Read the observed result and execution status.
- Recompute the SHA-256 fingerprint against the observed result.
Related pages
Read the execution receipt definition, the MCP execution receipt definition, and the MCP documentation.
What this question can establish
The practical question behind Verifiable AI Tool Calls is whether the record supports the claim being reviewed. A developer wants another person or agent to inspect a tool call without trusting a chat transcript alone. Separate the request, the execution, the system's observed output, and confirmation from any outside system. These are different evidence boundaries, and a reviewer should not treat them as interchangeable.
A useful receipt lets a reviewer repeat the byte-integrity check and inspect provenance while leaving external claims independently testable. A useful conclusion names the evidence that was checked and the conditions that remain unresolved. This keeps an execution record useful without stretching it into a broader assurance claim.
Evidence to retain for this workflow
Start with the smallest set of fields that lets a second reviewer identify the event and repeat the relevant check. For this topic, Record the tool, version, caller scope, execution time, status, observed output, canonical bytes, output hash, and the public resolution path.
- Task boundary: record the requested state and what would count as acceptance.
- Execution identity: preserve the receipt ID, tool name, caller scope, time, and status.
- Committed result: keep canonical bytes or the published representation needed to recompute the output hash.
- Provenance: distinguish an action the system ran from one it observed or merely received as a report.
- External confirmation: capture a real callback, transaction reference, read-back, or provider record when the task depends on outside state.
- Review context: note who checked the record, which verifier was used, and any limitation that affected the conclusion.
A repeatable review sequence
Use the same order for routine checks and incident review. It prevents a later summary from replacing the evidence the task actually requires.
- State the requirement. Write the expected outcome and the exact source that can confirm it. A developer wants another person or agent to inspect a tool call without trusting a chat transcript alone.
- Locate the execution. Match the public receipt identifier to the requested event, then confirm the tool, scope, timestamp, and status.
- Check integrity. Decode the committed bytes as specified by the receipt format, recompute SHA-256, and compare the complete digest rather than a shortened preview.
- Check the owning system. When the claim involves an outside change, query that system or inspect its genuine callback. A receipt alone cannot supply a missing confirmation.
- Write a bounded finding. Record what ran, what was observed, whether the bytes matched, and what remains unknown. A useful receipt lets a reviewer repeat the byte-integrity check and inspect provenance while leaving external claims independently testable.
Failure states and misleading success signals
Preserve failed, blocked, pending, retried, and partially completed states as distinct outcomes. A verifiable call can still return an incorrect result or lack evidence of a later action. Integrity and truth are separate checks. A successful transport response can still contain a tool error, and a valid integrity check can still protect an incorrect or incomplete result.
When evidence conflicts, keep both records and identify which system owns each fact. Do not overwrite an earlier receipt or silently promote a retry into proof that the original step succeeded. Explain whether the conflict is a timing issue, a stale read, a missing callback, a policy boundary, or a different task interpretation.
Privacy, retention, and safe sharing
Reviewability does not require publishing every input. Use scoped inputs and a safe result preview. Do not publish secrets or full provider responses merely to make the call portable. Prefer stable references and cryptographic commitments where they are enough for the reviewer, and keep the underlying sensitive record with the system that controls it.
Before sharing, check the public page, result preview, metadata, and linked evidence for secrets or personal information. Set retention and access according to the review purpose. If a record must be corrected, publish a new reference and preserve the original history rather than rewriting a record that another reviewer may already have captured.
Example of a careful conclusion
A reviewer could write: “The receipt identifies the recorded tool call and timestamp. The SHA-256 digest matches the exposed canonical bytes. The result preview is consistent with the stored record. A useful receipt lets a reviewer repeat the byte-integrity check and inspect provenance while leaving external claims independently testable. No additional outside outcome is claimed unless the owning system supplied its own confirmation.”
This kind of note gives the next person a useful handoff: what was checked, what the check means, and where the evidence stops. It is more informative than a bare success label and avoids presenting an unobserved event as a verified fact.
Common review questions
What does the record establish?
It establishes what the execution system recorded and whether the exposed canonical bytes match the output commitment. For verifiable ai tool calls, it does not by itself establish correctness or a result outside that system.
What if a provider or callback is unavailable?
Keep the state pending or unavailable, retain the error and time, and avoid claiming completion. In this workflow, A verifiable call can still return an incorrect result or lack evidence of a later action. Integrity and truth are separate checks.
What should a reviewer inspect first?
Record the tool, version, caller scope, execution time, status, observed output, canonical bytes, output hash, and the public resolution path. Then compare the record with the task requirement and ask the system that owns any claimed external state for a separate read-back.
What is safe to share?
Share the public receipt URL, identifier, status, verifier result, and a short sanitized task description. Use scoped inputs and a safe result preview. Do not publish secrets or full provider responses merely to make the call portable.
Further reading
Try a reviewable tool call
Use the install guide to connect Zambo, make a bounded request, and inspect the receipt before relying on any outside outcome.
The free tier does not require an account. Check the pricing page for the current per-tool allowance before you start.