Sakana AI

Models

Fugu

Fugu

Fugu balances strong performance with low latency, making it the ideal default for everyday work. Fugu routes to the best model based on the task at hand. You can also opt specific agents out of its pool to meet data, privacy, and compliance constraints.

Fugu Ultra

Fugu Ultra coordinates a deeper pool of expert agents to maximize answer quality on hard, high-stakes problems. Fugu Ultra focuses on maximizing performance, for a higher cost.

Fugu Max

Fugu Max orchestrates our largest pool of models to push the cost–performance Pareto frontier. It dynamically finds efficient combinations of expert agents, aiming to improve model performance and cost efficiency together.

Fugu Ultra and Fugu Max use fixed model pools. Fugu Ultra relies on its full agent pool for answer quality, while Fugu Max optimizes for both cost and performance. For enterprise requests involving specific model or provider configurations, please contact us.

Fugu Cyber

Fugu Cyber is specialized for cybersecurity reasoning tasks. It brings orchestration to security analysis, vulnerability research, threat investigation, and other cyber workflows where depth and precision matter. Fugu Cyber is available only through pay-as-you-go billing. Make sure your API key's "Billing mode" is set to "Pay as you go".

In order to use Fugu Cyber, users must submit an access request form detailing their intended use case and providing verified contact information. Our team will manually review and approve each application before granting access to the endpoint.

Benchmark comparison

Fugu Ultra (v2.0)

For complex multi-step reasoning, autonomous research, and full-stack software development, Fugu Ultra sets our new benchmark for raw output quality. In summary, Fugu Ultra

  • Performance: Achieves the best or joint-best score on five of eight benchmarks: GDP.pdf, Chartography, DeepSWE, Toolathon, and SWEFish, our internal benchmark reflecting Sakana AI’s own coding challenges and use-cases.
  • Consistency: Places in the top 2 on seven of eight benchmarks, demonstrating strong performance across a broad range of agentic tasks.
  • Frontier: With a focus different from Fugu Max, Fugu Ultra pushes the Pareto frontier in the performance direction, providing a higher-capability option for workloads where quality is the priority.

Fugu Ultra does not rely on individual proprietary frontier models to deliver frontier output. By orchestrating a swappable pool of open and specialized models, it outperforms closed ecosystems while protecting users from vendor lock-in, API revocations, geopolitical turbulence, and sudden service cutoffs.

Fugu Ultra v2.0 benchmark results across eight benchmarks

Our flagship Fugu Ultra model continues to deliver a performance that is better or on-par with frontier models. Note: Fugu Ultra’s training cutoff date is 20260828, Fable 5, Fable 5.1 and GPT-6-Astra are NOT in Fugu-Ultra’s model pool.

Fugu Max (v1.0)

Fugu Max expands the pool of models Sakana Fugu can orchestrate, integrating an unprecedented number of open-weights and specialized models, including NVIDIA's Nemotron family through our collaboration with NVIDIA. It sits at a point on the Pareto frontier that single-model providers cannot reach. Concretely,

  • Performance: Fugu Max achieves best overall score on six benchmarks, including Terminal Bench 2.1, GPQAD, AA-LCR, GDP.pdf, AutomationBench, and SWEFish, our internal benchmark reflecting Sakana AI’s own coding challenges and use-cases.
  • Cost: At $2 per million input tokens and $6 per million output tokens, Fugu Max’s output pricing is 40-60% lower than Sonnet 5, GPT 5.6 Terra, and Kimi K3.
  • Efficiency: Fugu Max expands the cost-performance Pareto frontier on seven out of ten benchmarks, delivering performance beyond the existing baseline efficiency envelope.
Fugu Max v1.0 cost-performance Pareto frontier across ten benchmarks

Among frontier models in a similar price range, Fugu Max expands the pareto frontier formed by single models and places itself in a cost-performance efficient position across multiple benchmarks.

Fugu Cyber (v1.0)

Fugu-Cyber achieves state-of-the-art performance on the industry's most challenging security benchmarks, reaching a success rate of 86.9% on CyberGym and 72.1% on CTI-REALM, comparable to leading cybersecurity-focused frontier models such as GPT-5.5-Cyber and Mythos-Preview.

Fugu-Cyber benchmark results on CyberGym and CTI-REALM compared with GPT-5.5-Cyber and Mythos-Preview

Example Usage

These examples use the OpenAI-compatible Responses API. Set your environment variables once, then copy and run the Python or cURL example you need.

# pip install openai
import os
from openai import OpenAI

base_url = os.environ["FUGU_BASE_URL"].rstrip("/")
if not base_url.endswith("/v1"):
    base_url = f"{base_url}/v1"

client = OpenAI(
    api_key=os.environ["FUGU_API_KEY"],
    base_url=base_url,
)

with client.responses.stream(
    model="fugu-ultra-v2.0",
    input="Explain why streaming is useful in three short bullets.",
) as stream:
    for event in stream:
        if event.type == "response.output_text.delta":
            print(event.delta, end="", flush=True)

    # Full response object assembled from the stream.
    response = stream.get_final_response()

print()
print(response)

Supported endpoints

Fugu currently supports the OpenAI-compatible Chat Completions, Responses, and Models APIs, as well as the Anthropic-compatible Messages API. For generation requests, we strongly recommend using the Responses API, for better performance.

Responses API

Use /v1/responses when you want the Responses API shape, especially for tool use, multimodal input, and proper reasoning or function calls management.

For more details, see the OpenAI Responses API reference.

Supported request fields

FieldTypeDescription
modelstringRequired. Model ID to use, such as fugu orfugu-ultra.
inputstring | arrayRequired. A string or an array of Responses-style input items. A string input is treated as a user message.
instructionsstringSystem / developer message passed to the model.
metadataobjectArbitrary key-value pairs attached to the request.
streambooleanStream the response.
max_output_tokensnumberMaximum number of tokens to generate. Note for fugu-ultra, this is applied only to the final model response, orchestrator model still uses maximum token limit.
reasoningobjectReasoning controls with an effort value ofhigh, xhigh, or max. xhigh and max are aliases of the same reasoning effort. Default is xhigh for fugu-ultra, high for fugu.
toolsarrayTool definitions the model may call.
tool_choicestring | objectControls whether and which tool is called.
text.formatobjectStructured output with text,json_object, or json_schema.
temperaturenumberAccepted but ignored.
parallel_tool_callsbooleanAccepted but ignored. Set to True on the server side for models that support it.
previous_response_idstringNot accepted. Send the full conversation history directly in input instead.

Chat Completions

Use /v1/chat/completions when you want the OpenAI Chat Completions API shape.

For more details, see the OpenAI Chat Completions API reference.

Supported request fields

FieldTypeDescription
modelstringRequired. Model ID to use, such as fugu orfugu-ultra.
messagesarrayRequired. An array of chat messages with a role (such as system, developer, user, assistant, or tool) and content. User message content can be a string or an array of content parts, depending on the selected model.
metadataobjectArbitrary key-value pairs attached to the request.
streambooleanStream the response.
stream_optionsobjectStreaming options such as include_usage. Only set this when stream is true.
max_completion_tokensnumberMaximum number of tokens to generate. Note for fugu-ultra, this is applied only to the final model response; the orchestrator model still uses its maximum token limit.
max_tokensnumberLegacy token limit field. Prefer max_completion_tokens for new integrations.
reasoning_effort / reasoningstring | objectReasoning controls. Use reasoning_effort or a reasoning object with an effort value of high, xhigh, or max. xhigh and max are aliases of the same reasoning effort. Default is high.
toolsarrayTool definitions the model may call.
tool_choicestring | objectControls whether and which tool is called.
response_formatobjectStructured output with text,json_object, or json_schema.
top_pnumberAccepted but ignored.
stopstring | arrayAccepted but ignored.
seednumberAccepted but ignored.
frequency_penaltynumberAccepted but ignored.
presence_penaltynumberAccepted but ignored.
temperaturenumberAccepted but ignored.
parallel_tool_callsbooleanAccepted but ignored. Always applied to models that support it.

Messages API

Use /v1/messages when you want the Anthropic-compatible Messages API shape. Requests are forwarded with the standard Messages request fields, such as model, messages, max_tokens, stream, and tools.

For more details, see the Anthropic Messages API reference.

Models API

Use /v1/models to list the models available through the API. This OpenAI-compatible endpoint returns the supported model IDs. Note: fugu-cyber is returned only through pay-as-you-go billing.

For more details, see the OpenAI Models API reference.

Supported models

Model IDDescription
fuguThe default Fugu model.
fugu-ultraThe Fugu Ultra model, defaults to fugu-ultra-v2.0.
fugu-ultra-v2.0V2.0 of Fugu Ultra.
fugu-ultra-v1.0V1.0 of Fugu Ultra, also known as fugu-ultra-20260615.
fugu-ultra-v1.1V1.1 of Fugu Ultra.
fugu-maxThe Fugu Max model, defaults to fugu-max-v1.0.
fugu-max-v1.0V1.0 of Fugu Max, optimized for cost-performance.
fugu-cyberThe Fugu Cyber model, defaults to fugu-cyber-v1.0.
fugu-cyber-v1.0V1.0 of Fugu Cyber model.
sakana-namazu-v1.0V1.0 of the Sakana Namazu model. A Japanese-specialized LLM.
sakana-namazuAlias that points to the latest version (currently sakana-namazu-v1.0).

Built-in tools

Fugu models support OpenAI-compatible built-in tools in the Responses API. To let the model search the web, add the web_search tool to your request's tools array, just as you would with OpenAI models.

When web search is used, the response can include web search call output. Advance options for the tool are not supported. For more details see the OpenAI web search guide.

For fugu-max, built-in tools follow the OpenAI standard described above. Because we use open-source models without native web search support, these models use our internal web tools. Each internal tool call costs $0.007, and a single query may require multiple calls to produce a complete answer. Send the generated web search items back through the API in subsequent requests so the model can keep track of previous internal tool calls.

# pip install openai
import os
from openai import OpenAI

base_url = os.environ["FUGU_BASE_URL"].rstrip("/")
if not base_url.endswith("/v1"):
    base_url = f"{base_url}/v1"

client = OpenAI(
    api_key=os.environ["FUGU_API_KEY"],
    base_url=base_url,
)

response = client.responses.create(
    model="fugu",
    tools=[{"type": "web_search"}],
    input="Search the web for today's top AI news and summarize it with citations.",
)

print(response.output_text)

Usage fields for Fugu Ultra and Fugu Cyber

Outside of standard Responses API output, Fugu Ultra and Fugu Cyber return usage fields that separate user-visible model work from orchestration work. Note that different to OpenAI, even though the orchestration tokens are stored in token_details fields. They represent real token usage outside of the input, output tokens, and will be counted in the final price of the request. The price will be the same as standard input and output tokens.

{
  "usage": {
    "input_tokens": 120,
    "output_tokens": 80,
    "total_tokens": 200,
    "input_tokens_details": {
      "cached_tokens": 0,
      "orchestration_input_tokens": 0,
      "orchestration_input_cached_tokens": 0
    },
    "output_tokens_details": {
      "orchestration_output_tokens": 0
    }
  }
}
FieldDescription
input_tokensTokens from the user input sent to the first model.
input_tokens_details.cached_tokensCached input tokens for the user input.
input_tokens_details.orchestration_input_tokensSum of all input tokens used for orchestration.
input_tokens_details.orchestration_input_cached_tokensCached input tokens from orchestration.
output_tokensTokens in the final output.
output_tokens_details.orchestration_output_tokensOutput tokens from the orchestration.
total_tokensTotal token count returned for the request (including orchestration).
Ask Sakana Chat