L LocalUse Source

Tool Schema Diff

Tool schemas change under you. Some of those changes break calls outright; the more awkward ones change nothing structural and simply make the model choose differently. Paste both versions to see which is which.

Before
After
Output

Output appears here as you type.

Runs entirely in your browser. Nothing you paste here is uploaded or stored.

Questions

Is what I paste sent anywhere?

No — and it is worth being concrete about why that matters here. A prompt, a captured response and a tool definition all contain the things people are most careful with: system instructions, customer data, internal endpoints. Every tool on this page is a pure function running in your tab, on a page whose Content-Security-Policy sets connect-src to ‘none’, so the browser will not let it open a network connection at all.

Why is a description change worth flagging?

Because it is the one that gets missed. The signature is unchanged, every existing call still validates, nothing errors — and the model now decides differently about when to reach for the tool and what to put in its arguments. A line diff shows it as one changed string among many; here it gets its own category.

What counts as breaking?

A tool removed, an argument removed, a required argument added, a type changed, an optional argument becoming required, allowed values removed from an enum, or strict mode being switched on. Each of these rejects a call that previously worked.

Why does this need a tool at all?

Because tool sets have no versioning discipline yet. There is no contract testing and no breaking-change detection in the ecosystem, so a server can change what it exposes between deploys with nothing to compare against. A drifted tool does not throw — it returns a confident wrong answer, which is considerably harder to notice.

More inspect tools