← All issues
Issue #16

Tool Calling Is an Interface Design Problem

February 4, 2025 · ⚡ 49% open rate

Here’s the reframe that changed how I think about tool use: the user of your tools is not a human. It’s a language model. And language models have very specific UX needs.

What Makes a Good Tool (for an LLM)

Predictable outputs. The model builds a mental model of what a tool returns based on its description and examples. If the actual output surprises it, you get hallucinations and misuse.

Single-purpose interfaces. A tool that does one thing is dramatically more reliable than a tool that does many things depending on the input. The model doesn’t have to infer which behavior to trigger.

Explicit error communication. When a tool fails, the error message needs to be informative enough for the model to decide what to try next. “Error 500” is not informative. “Rate limit exceeded, try again in 60 seconds” is.

Consistent naming conventions. Models pick up on patterns. If your tools follow a consistent naming and parameter structure, the model transfers its understanding of one tool to new ones.

The Design Process

Treat each tool as a product with a user (the LLM). Write the description for an intelligent, literal reader who will follow it precisely. Test with adversarial inputs. Check what happens when the model passes unexpected parameters.

The teams with the most reliable tool use aren’t doing anything magic at the model level. They’re doing good interface design at the tool level.

Read the full issue on Beehiiv

Read on Beehiiv →