Agent guide
Fugu AI: what the agent does and how to choose a model
The word "agent" hides the real mechanism. Fugu is a coordinator over a pool of models, not a single tuned chatbot. This page is the operational view: what it does, how the orchestration is billed, and the selection table that picks Fugu, Ultra, or Cyber for your workload.
1. What the Fugu agent actually does
Fugu is a learned multi-agent system. A request can be answered directly or routed across a small team, then synthesized into one response. The orchestration is learned rather than defined by a workflow you maintain. That is the core trade: less workflow code for you, less control over the path.
Coding and review
The default fugu model is positioned for interactive coding, chat, normal reviews, and a first evaluation pass. It balances quality against latency.
Multi-step reasoning
fugu-ultra handles difficult reasoning where quality is worth added time and cost. Official docs say it routes between one and three agents from a fixed full pool.
Defensive security
fugu-cyber is for authorized security analysis, vulnerability research, and threat investigation, on pay-as-you-go billing after a reviewed access request.
What it is not
It is not a deterministic workflow engine. The FAQ says you cannot see which underlying models answered, and routing details are proprietary.
Official product copy also says Fugu can exclude specific providers or models from its pool, and that new public frontier models are expected to take roughly two weeks of training and evaluation before a Fugu update. That means the behavior you measured can drift on the vendor's schedule, not yours.
2. The orchestration mechanism, in six constraints
- Fugu coordinates a pool of models through a single OpenAI-compatible (and Anthropic Messages-compatible) interface.
- Fugu allows provider or model opt-outs from its pool; Ultra uses a fixed full pool with no opt-outs.
- Ultra routes between one and three agents according to current docs.
- Routing details are proprietary and not exposed to the caller.
- Orchestration work produces extra billable tokens on Ultra and Cyber.
- New frontier models take roughly two weeks of training and evaluation before a Fugu update.
If your audit requirement is "name every worker," the answer is a self-managed graph, not a different Fugu temperature. See Fugu versus self-managed orchestration for the decision rules.
3. Orchestration tokens are extra work you pay for
OpenAI-shaped field names make it tempting to treat token_details as a breakdown of totals you already counted. Official Sakana pricing says the opposite for Ultra: orchestration fields are additional real usage billed at the matching input, cached, or output rate.
{
"input_tokens": 120,
"output_tokens": 80,
"total_tokens": 200,
"input_tokens_details": {
"cached_tokens": 0,
"orchestration_input_tokens": 450,
"orchestration_input_cached_tokens": 100
},
"output_tokens_details": {
"orchestration_output_tokens": 220
}
}
Billable input = input_tokens + orchestration_input_tokens
Billable cached input = cached_tokens + orchestration_input_cached_tokens
Billable output = output_tokens + orchestration_output_tokens
Estimate = input/1M × input rate + cached/1M × cached rate + output/1M × output rate
Ultra's published standard rates on August 17, 2026 are $5 input, $0.50 cached, and $30 output per million tokens. Above 272K request context the rates become $10 / $1.00 / $45. The 272K threshold is per request, not a monthly total. Walk the arithmetic in orchestration token accounting.
4. Fugu versus Ultra versus Cyber: the selection table
Each row is a decision you can actually make before writing a request. Where a row says "not Fugu," the reason is a documented product rule, not a quality ranking.
| If your requirement is | Start with | Why |
|---|---|---|
| Interactive coding, chat, or a quick first review | fugu | Default model balanced for latency and everyday work |
| Hard multi-step reasoning with published fixed rates | fugu-ultra | Fixed pool, one-to-three agents, budgetable rates |
| Authorized defensive security or vulnerability research | fugu-cyber | Specialized model, pay-as-you-go, access-gated |
| Exclude a specific provider but keep a managed pool | fugu | Opt-outs are a Fugu feature, not an Ultra feature |
| Pin an exact Ultra version for reproducible experiments | fugu-ultra-v1.1 | The moving fugu-ultra alias can drift |
| Name every worker in an audit log | Self-managed | Official FAQ says the routing map is not exposed |
| Serve EU or EEA production users | Neither | Official product availability restriction |
| Budget a fixed per-token cost in advance | fugu-ultra | Standard Fugu billing is route-dependent, not a single rate |
The model chooser encodes region, routing visibility, and workload into the same three-way recommendation, including the "do not use Fugu here" outcome.
5. Responses API essentials
Sakana AI recommends the Responses API for new integrations, especially for tools, multimodal input, reasoning controls, and function calls. The request shape is familiar, but several fields do not behave the OpenAI way.
import os
from openai import OpenAI
api_key = os.environ["FUGU_API_KEY"]
base_url = os.environ["FUGU_BASE_URL"].rstrip("/")
if not base_url.endswith("/v1"):
base_url += "/v1"
client = OpenAI(api_key=api_key, base_url=base_url, timeout=120.0, max_retries=2)
response = client.responses.create(
model="fugu-ultra",
instructions="Find correctness risks first. State uncertainty explicitly.",
input="Review this migration for rollback risks.",
max_output_tokens=2000,
)
print(response.output_text)
print(response.usage)
temperature and parallel_tool_calls
Accepted but ignored on Responses. Do not expose them as quality controls.
previous_response_id
Not accepted. Send the full conversation history in input.
max_output_tokens on Ultra
Limits the final model output, not the orchestrator's own maximum. It is not a complete spend cap.
reasoning.effort
Supports high, xhigh, and max; the last two are aliases. Default is xhigh for Ultra, high for Fugu.
Built-in web search
Supported through the Responses tool shape ({"type": "web_search"}); advanced options are not supported.
Complete client setup and streaming guidance are on the API quickstart.
6. Diagnose failures before you retry
401 or 403
Check the key is present, active, and tied to the intended billing mode. For Cyber, confirm access was approved. Never log the secret.
Model not found
Call GET /v1/models with the same key and base URL. Fail startup on a missing ID instead of silently switching models.
EU or EEA users cannot connect
Official availability is a stop, not a timeout. Do not proxy around a published regional restriction.
Unexpected cost
Compare the full usage object with the pricing formula. Check orchestration fields and whether the request crossed 272K context.
Looks right but is wrong
Do not retry the same prompt. Save the model ID, prompt, tools, and usage object, then score with the evaluation playbook.
The full failure tree is on the troubleshooting page.
Frequently asked questions
Is "Fugu AI" one model or a family?
It is a family. fugu is the default member, with fugu-ultra and fugu-cyber as separate models with distinct rules. sakana-namazu is a separate Japanese-specialized model outside the Fugu family.
Does Ultra always beat Fugu?
No. The vendor's own table shows Ultra ahead on many difficult suites but Fugu tying or leading on some science and long-context entries. Use a blind comparison on your own tasks.
How do I stop Fugu from using a provider I cannot accept?
On the default fugu model, use the console-side provider or model opt-out. Ultra's pool is fixed and does not offer opt-outs.
Where do I find the current model IDs?
On the Models page of the Sakana console, or at runtime with GET /v1/models. Cyber appears only for eligible pay-as-you-go keys.
Sources and verification boundary
- Sakana AI Models documentation: IDs, agent counts, supported fields, and usage shape
- Sakana AI Pricing documentation: Ultra rates and orchestration field billing
- Sakana AI Fugu product page: agent behavior, opt-outs, and update cadence
This page describes documented behavior as of the August 17, 2026 recheck. Recheck the official Models endpoint before a 2026 production release.