Skip to main content
Glama

Sato Hub: Build Onchain & Crypto Agents

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. NOT FOR browsing registered agents with filters (use onchain_agent_search_agents instead) or one agent's manifest (use onchain_agent_get_agent_passport).

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

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_formatNoText format; structuredContent is JSON either way.markdown

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. Changed1 schema field changed
    • changedInput schema / properties / response_format / description
      Previous value: -"Output format: 'markdown' (default) or 'json'."New value: +"Text format; structuredContent is JSON either way."
  3. Added

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already establish read-only, idempotent, open-world behaviour, but the description goes well beyond them: it declares that a route is a recommendation rather than ground truth, that ERC-8004 registration proves only a claim, that wallet_verified proves only the key, that a probe proves only one answered handshake, that null feedback ranks below zero, and that no job-outcome data exists. It also discloses the pool limitation (passport-less on-chain agents are absent, absent ≠ unqualified) and that failure returns `unknown` with a reason rather than a weak pick.

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?

Long, but organised into labelled blocks (USE WHEN, NOT FOR, RULE ENFORCED, COVERAGE, RETURNS) with the routing condition front-loaded, so the size is justified by the tool's semantic weight. It is dense enough that a reader must parse several clauses to extract the return contract, which keeps it just short of 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?

With no output schema, the description carries the full return contract inline (route/chosen_by/alternatives/caveat plus the unknown branch, preflight, candidates_considered, probed, coverage, rules), and it also supplies the enumeration-coverage caveat and the null-feedback ranking rule. Nothing needed to interpret or trust a result is missing.

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

Parameters4/5

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

Schema description coverage is 100%, so the per-parameter semantics are already carried by the schema (chain filters the passport pool, capability is matched against name/types/services, requires_mcp/x402 are declarations only). The description adds value by supplying a concrete combined invocation example ({ capability, chain, requires_mcp }) and by framing these as pool filters rather than registry lookups, which is slightly more than the baseline.

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

Purpose5/5

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

States a precise verb+resource ('choose/route an agent for a task') and immediately pins the differentiator: the pick is explained by registration, service, feedback and liveness. It explicitly names the two sibling tools it is not (onchain_agent_search_agents, onchain_agent_get_agent_passport), so an agent can separate it from its nearest neighbours without opening a schema.

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

Usage Guidelines5/5

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

Opens with an explicit 'USE WHEN' condition and a 'NOT FOR' clause that routes to two named alternatives with their triggering conditions ('browsing registered agents with filters', 'one agent's manifest'). There is no residual inference required about when this tool is the right choice.

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.