Skip to main content
Glama

Choose an agent for a task, with the pick explained

onchain_agent_route_agent
Read-onlyIdempotent

USE WHEN an agent needs another agent for a task and wants the pick explained by registration, answering service, feedback and liveness. Candidates are the listed Sato Agent Passports; the top 3 by the static ranking get one live MCP handshake before the pick is made.

RULE ENFORCED: a route is a RECOMMENDATION, chosen by the listed fields at checked_at. chosen_by names every signal, its value and the exact field it was read from. An ERC-8004 registration proves a claim was made on-chain, not that the agent works; wallet_verified proves the key, not the product; a probe proves the declared service answered once. A null feedback count is unknown and ranks below every number, including zero. No job-outcome data exists yet.

COVERAGE: agents registered on-chain but holding no Sato passport are absent from the pool — there is no keyless ERC-8004 enumeration callable from a request. Absent means unseen, not unqualified. When nothing qualifies the answer is unknown with a reason, never a low-confidence pick.

Returns (json): { route: { agent, chosen_by: [{ signal, value, source_field }], checked_at, alternatives: [{ id, name, source, behind_on }], caveat } | { unknown, reason }, preflight, candidates_considered, probed, coverage, rules, caveat, checked_at }.

Example: { capability: "trading", chain: "Base", requires_mcp: true }

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
chainNoChain the agent must claim, e.g. 'Base'. Filters the passport pool; it does not pull ERC-8004 registry rows (none are enumerable keyless).
capabilityNoWhat the work needs, in a word or two, e.g. 'trading', 'research', 'payments'. Matched against the candidate's name, declared agent types and declared services.
requires_mcpNoOnly candidates that DECLARE an MCP service. A declaration is not a working service — the top candidates get one live handshake.
requires_x402NoOnly candidates that DECLARE x402 payment support. Declared, never settled or observed.
response_formatNoOutput format: 'markdown' (default) or 'json'.markdown

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnly, idempotent, non-destructive), but the description adds substantial non-obvious behavior: top-3 get one live MCP handshake, a probe proves only one answered call, ERC-8004 registration proves a claim not function, null feedback ranks below zero, and no job-outcome data exists. It also discloses a real coverage gap (keyless ERC-8004 enumeration is not callable). This is exactly the extra context annotations cannot supply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Labeled sections (USE WHEN, RULE ENFORCED, COVERAGE, Returns, Example) front-load the essential routing decision and are dense with signal. Some sentences restate the same caveat twice (declared vs. working service) and the whole block is long, so it is efficient but not maximally tight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-output-schema tool, the description spells out the return shape including the unknown branch, candidates_considered, probed and coverage, and states the semantic caveats an agent needs to interpret the result. Nothing needed to call or interpret the tool is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema fields are already annotated with nuance (chain filters the passport pool, requires_mcp means declared-only). The description adds only a single example call, so it does not meaningfully extend parameter meaning beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Choose an agent for a task, with the pick explained') plus the signal basis of the choice (registration, service, feedback, liveness). An agent can identify this as the routing/pick tool. It never names the nearest siblings (search_agents, recommend_stack, route_swap) to draw the boundary explicitly, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'USE WHEN an agent needs another agent for a task and wants the pick explained' gives clear triggering context, and it states the fallback rule ('when nothing qualifies the answer is unknown ... never a low-confidence pick'). No explicit when-not or named alternative tool is given, so 4 rather than 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.