3 tools registered. Strongest in task completion, weakest in trust.
{ name: "navigate_to_page" /* short, unique, verb-based */ }navigate_to_page: Description instructs agent to prefer another tool; search_my_assistants: Description instructs agent when to use the tool{
name: "navigate_to_page",
// Metadata DESCRIBES the tool - it never addresses the agent reading it.
// Rewrite any name, description, title, or schema field description that
// instructs the agent (which tool to prefer, what to output, rules to
// ignore) so it states what the tool does and what it returns instead.
description: "Searches the catalog and returns matching items with prices."
}{
"name": "navigate_to_page",
"description": "کاربر را به یکی از بخشهای ثابت و مجاز سایت میبرد. برای مقصدهای وابسته به یک دستیار از navigate_to_assistant_section استفاده کنید.",
"inputSchema": {
"type": "object",
"properties": {
"destination": {
"type": "string",
"enum": [
"home",
"products",
"cart",
"about",
"contact",
"faq",
"sign_in",
"game",
"dashboard",
"dashboard_assistants",
"dashboard_account",
"dashboard_settings",
"dashboard_notifications_settings",
"dashboard_billing",
"dashboard_purchases",
"dashboard_pending_purchases",
"dashboard_applications",
"dashboard_divar",
"dashboard_telegram",
"dashboard_bale",
"dashboard_basalam",
"dashboard_digikala",
"dashboard_club",
"dashboard_notifications"
],
"description": "کلید مقصد مجاز در سایت."
}
},
"required": [
"destination"
],
"additionalProperties": false
},
"annotations": {
"readOnlyHint": false,
"untrustedContentHint": false
}
}usable: weak; clarity: weak// Make the tool's effect visible on the page the person is looking at:
// update the same UI your existing human flow uses when your_tool_name runs,
// so the person co-browsing sees what the agent just did.
execute: async (args, { signal }) => {
const result = await performAction(args, signal);
renderResultInPage(result); // the human-visible half of the same action
return result;
}search_my_assistants: registered at 1252ms// Register tools as soon as they're ready, not behind a deferred/async chunk.
document.modelContext.registerTool({ /* ... */ });search_my_assistants: declares no required list, so an agent cannot tell which parameters are mandatory{
name: "search_my_assistants",
inputSchema: {
type: "object",
properties: {
query: { type: "string", description: "What to search for" }
},
required: ["query"]
}
}{ name: "navigate_to_page" /* short, unique, verb-based */ }navigate_to_page: Description instructs agent to prefer another tool; search_my_assistants: Description instructs agent when to use the tool{
name: "navigate_to_page",
// Metadata DESCRIBES the tool - it never addresses the agent reading it.
// Rewrite any name, description, title, or schema field description that
// instructs the agent (which tool to prefer, what to output, rules to
// ignore) so it states what the tool does and what it returns instead.
description: "Searches the catalog and returns matching items with prices."
}{
"destination": "home"
}{}