1. The endpoint
Your side. Keep it fast — the agent is holding a live conversation.2. Define the tool
description — the trigger, not documentation
description — the trigger, not documentation
This is the only thing the model uses to decide whether to call the tool.
Notice it names the phrasings a caller actually uses — “where their order is”,
“when it will arrive”, “gives an order number” — rather than describing the
endpoint.“Gets order data” would technically be accurate and would fire far less
reliably.
location: path — matching the URL
location: path — matching the URL
baseUrlPattern contains {orderId}, so the parameter is declared as a
path parameter and substituted into the URL. Use query for filters,
header for metadata, body for structured payloads.readOnly: true — killing dead air
readOnly: true — killing dead air
A lookup changes nothing, so the runtime may run it eagerly while the
agent is still speaking and discard the result if the conversation turns
elsewhere. That removes a noticeable pause.Safe here. Never set it on a booking or a payment.
timeout: 5s — above the default
timeout: 5s — above the default
The default is 2.5s. Database lookups behind a cold connection sometimes
exceed that, and a timeout mid-call is worse than a slightly longer pause.
The ceiling is 40s.
the parameter description
the parameter description
“usually eight digits” is written for the model, and it helps: it lets
the agent recognise when a caller has misheard themselves and read back six
digits.
id.
3. Attach it to your agent
toolIds is an array, and it must not be empty. Tools live at the
workspace level, so this same tool can serve every agent you have — fix a bug
in it once and they all get the fix.4. Tell the agent it exists
The tool is attached, but the agent’s prompt should set expectations:5. Test it
Create a browser call and try it:If it does not fire
Almost always the description, not the wiring.- Never fires — name the caller phrasings explicitly in
description - Fires too eagerly — add a precondition: “Only call this once the caller has given an order number.”
- Wrong parameter — tighten the parameter’s own
description - Agent goes quiet — your endpoint exceeded
timeout; check your own latency first
Add authentication
When your endpoint needs a credential.
Tool reference
Every option in full.