get-generation
Inspect cost, token counts, and serving provider for a specific generation id, to debug spend and routing. send-message returns the generation id of each call in its output.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
Inspect cost, token counts, and serving provider for a specific generation id, to debug spend and routing. send-message returns the generation id of each call in its output.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive behavior, so the additional requirement is to give real behavioral context beyond the schema. The description provides that context: what metrics are exposed and where the ID originates. It does not describe response shape or error cases, but the tool is small and read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first front-loads what the tool does and why it matters, the second explains how to get the generation id. There is no wasted wording or redundant repetition beyond what the schema already provides.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only inspector, the description gives enough context to understand why the tool exists, what it returns at a high level (cost, token counts, provider), and how the input id is obtained. The absence of an output schema makes this level of return-field context important, and the description provides it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only gives a one-line description of the 'id' field, which is thin, but the overall description compensates by explaining that the parameter is a specific generation id and that send-message returns it in its output. This provenance is more valuable than a generic field description and helps the agent know exactly how to obtain the id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The tool name and description both make the target clear: inspect a generation by ID. The description specifies concrete data returned (cost, token counts, serving provider) and names the purpose (debugging spend and routing), which distinguishes it from sibling tools like get-model or get-credits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear invocation context: use it after send-message, which returns the generation id. It justifies the tool's purpose rather than just describing it. It could be stronger with an explicit statement about when not to use it or how it relates to alternatives, but the intended usage is not ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.
Most tools are clearly differentiated by resource and action: the eight list-* tools each target a distinct view (models, endpoints, rankings, apps, providers, presets, tasks, benchmarks), and cross-references between them reduce mis-selection. A few mild boundaries exist—list-models and list-benchmarks both include benchmark data, and install-ori-harness vs spawn-ori-eval are both Ori recipe tools—but their detailed descriptions mostly resolve these.
The naming is overwhelmingly consistent with a verb_noun pattern using the same prefix set: generate-, get-, list-, send-, along with install-, spawn-, search-, and transcribe-. The only deviation is ping, which is a standard bare health-check tool and does not follow the verb_noun convention.
At 22 tools, the set feels heavier than the ideal 3-15 range, though each tool is arguably purposeful given the broad surface: model catalog, rankings, benchmarks, presets, generation, audio, image, docs, uptime, credits, and Ori workflows. The variety justifies the size to some extent, but the sheer number puts it in borderline territory.
Core workflows are well covered: model discovery (get-model, list-models, list-model-endpoints), generation (send-message, generate-image, generate-speech, transcribe-audio), observability (get-credits, get-generation, get-endpoint-uptime-history), and docs. Notable gaps include no create/update/delete for presets and no persistent provider configuration methods, but these are workable since presets are dashboard-managed and providers can be pinned per request.