Teach Tool Use With a Small Local Fixture

Shashank Agarwal
A tool-use lesson can begin with a local fixture. That makes the contract visible before the reader has to debug authentication, network behavior or model selection.
Quick answer: Define a small operation, controlled data and an observable result. Show a valid request and an empty-result branch. Label the fixture clearly, then explain which additional checks are needed for a real integration. A local demonstration is not a benchmark of an agent or provider.
Make the contract runnable
The Python example below uses synthetic identifiers. It makes no network calls and does not invoke an LLM.
def lookup_fixture(sku, branch):
stock = {("sample-item", "test-north"): "available"}
status = stock.get((sku, branch), "not_found")
return {"sku": sku, "branch": branch, "status": status}
request = {"sku": "sample-item", "branch": "test-north"}
result = lookup_fixture(**request)
assert result["branch"] == request["branch"]
assert result["status"] == "available"
empty = lookup_fixture("sample-item", "test-south")
assert empty["status"] == "not_found"
print(result)
print(empty)The result preserves the requested item and branch. The second lookup returns a scoped empty result. It does not establish that the item is unavailable at every possible location.
Explain what the example establishes
| Observation | Conclusion |
|---|---|
| Input fields map to function parameters | The local contract is understandable |
| Result includes the branch | The consumer can check scope |
| Missing fixture entry returns a label | Empty behavior is explicit |
| Assertions pass locally | These controlled cases met their conditions |
The example was executed as a local fixture check. It does not show a model choosing arguments, a live inventory lookup or production reliability.
Add an agent deliberately
A later lesson can ask an agent to select arguments from a user request. Keep the controlled tool result and inspect the actual submitted values.
Then introduce the real provider contract, access, cost and failure semantics. Do not assume they match the fixture.
Preserve the teaching boundary
If the consumer receives not_found, it should explain the searched scope rather than invent stock. That is a useful behavior to test before adding a longer chain.
Use the tool-boundary guide for real execution records and the format-versus-task guide for separate contract and outcome checks.
I'm Shashank Agarwal, author of Intelligence at Scale, founder and CEO of Noveum AI and creator of API.market. Follow my work on LinkedIn. Drafted with AI assistance.
Get Early Access to Noveum.ai Platform
Join the select group of AI teams optimizing their models with our data-driven platform. We're onboarding users in limited batches to ensure a premium experience.