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.

usage
{
  "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 isStart withWhy
Interactive coding, chat, or a quick first reviewfuguDefault model balanced for latency and everyday work
Hard multi-step reasoning with published fixed ratesfugu-ultraFixed pool, one-to-three agents, budgetable rates
Authorized defensive security or vulnerability researchfugu-cyberSpecialized model, pay-as-you-go, access-gated
Exclude a specific provider but keep a managed poolfuguOpt-outs are a Fugu feature, not an Ultra feature
Pin an exact Ultra version for reproducible experimentsfugu-ultra-v1.1The moving fugu-ultra alias can drift
Name every worker in an audit logSelf-managedOfficial FAQ says the routing map is not exposed
Serve EU or EEA production usersNeitherOfficial product availability restriction
Budget a fixed per-token cost in advancefugu-ultraStandard 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.

client.py
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

This page describes documented behavior as of the August 17, 2026 recheck. Recheck the official Models endpoint before a 2026 production release.