Skip to content

The description is the contract

A refund of ₹499 that came out as ₹4.99.

The model never sees your tool's code. It sees a name, a description and a schema. That is the whole contract.

A vague tool descriptiongemini-3-flash-previewRecorded real run
model calls
1
tool calls
0
tokens in
104
tokens out
25
time
1.7s

Task My USB cable (order A123, Rs 499) arrived broken. Please refund it.

You
task
Model1.7s
refund

Model call 1. It read 104 tokens and wrote 25. It asked for a tool, so it isn't done.

refund({"order_id":"A123","amount":499})

stop_reason: tool_use

Context window104 tokens sent

  • System prompt31
  • Tool definitions54
  • Your messages19
step 1 of 3

The refund API counts in paise, like Razorpay and Stripe. The description never said so, so ₹499 became ₹4.99. Then the model told the customer ₹499 anyway, though the tool's reply said 4.99.

Be the modelA vague tool description
0/1 best

You are gemini-3-flash-preview. This is all you know: 267 tokens.

  1. System prompt

    You are QuickCart's support agent. Refunds for damaged items are approved. Use the tools. Be brief and kind.

  2. Your tools

    • refund Refund an order.
  3. User

    My USB cable (order A123, Rs 499) arrived broken. Please refund it.

  4. You called

    refund("A123", 499)

  5. refund returned

    {"ok":true,"order_id":"A123","refunded_paise":499,"refunded_rupees":"4.99"}

Your move?

Same model, same tool, one sentence about units in the description:

A clear tool descriptiongemini-3-flash-previewRecorded real run
model calls
1
tool calls
0
tokens in
162
tokens out
27
time
1.5s

Task My USB cable (order A123, Rs 499) arrived broken. Please refund it.

You
task
Model1.5s
refund

Model call 1. It read 162 tokens and wrote 27. It asked for a tool, so it isn't done.

refund({"amount":49900,"order_id":"A123"})

stop_reason: tool_use

Context window162 tokens sent

  • System prompt34
  • Tool definitions106
  • Your messages22
step 1 of 3

Your turn: fix the vague description and run it live.

Agent LabGoal: Refund the full ₹499: the API counts in paise, so 49900.
Tool descriptions

Free key: plenty of runs a day

0 calls today

The recorded run, before your changes:

A vague tool descriptiongemini-3-flash-previewRecorded real run
model calls
1
tool calls
0
tokens in
104
tokens out
25
time
1.7s

Task My USB cable (order A123, Rs 499) arrived broken. Please refund it.

You
task
Model1.7s
refund

Model call 1. It read 104 tokens and wrote 25. It asked for a tool, so it isn't done.

refund({"order_id":"A123","amount":499})

stop_reason: tool_use

Context window104 tokens sent

  • System prompt31
  • Tool definitions54
  • Your messages19
step 1 of 3