declare_my_tool
Declare an existing user tool to enable HyperRoute to route requests by name based on trigger phrases.
Instructions
Declare a tool the USER already has, so HyperRoute routes to it by name when they said to. Call this when the user says something like "I have my own web search, always use it for research", "we have an internal API for X", or "use my VPN tool whenever I need to connect".
triggers is the whole thing, and it is REQUIRED: the sentences saying WHEN to use the tool,
kept verbatim in the user's own words and language. Pass what they actually said — "for
invoices go through my Xero thing", "mp3s over two minutes go to Olena's transcriber", "use it
whenever I need to do a VPN connect". Do not tidy it into a category, do not translate it, and
do not drop a condition ("only if the file is in Japanese" is part of the trigger). That
sentence is read against every incoming request, together with whatever you pass in
context.situation on recommend, and it is what decides whether their tool wins. A tool may
carry several triggers; pass them all.
description is optional free text about what the tool is. capabilities is optional too —
named regions used only to word the user's own outcome report, never to route. Leave both
empty unless the user gave you something to put there; a declaration with a trigger and
nothing else is complete.
stance — "pinned" (default) means their tool wins whenever a trigger fires; "benchmarked"
lets a catalog tool displace it once the user's own reported outcomes show it underperforming.
Start pinned; that is what the user asked for.
When NO trigger fires the tool is simply not in the ranking, so a declaration is never a blanket override. Nothing here is scored — HyperRoute has never tested their tool and never claims to have.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| stance | No | pinned | |
| triggers | Yes | ||
| project_id | No | ||
| description | No | ||
| capabilities | No |