DEV Community

Cover image for Cách kiểm tra API Sakana Fugu bằng Apidog
Sebastian Petrus
Sebastian Petrus

Posted on • Originally published at apidog.com

Cách kiểm tra API Sakana Fugu bằng Apidog

Để kiểm tra API Sakana Fugu trong Apidog, hãy tạo một request HTTP POST tới endpoint /chat/completions tương thích OpenAI của Fugu, thêm header Authorization: Bearer <API_KEY>, rồi gửi payload chọn model fugu hoặc fugu-ultra. Vì Fugu cung cấp một endpoint tương thích OpenAI, bạn có thể dùng bất kỳ công cụ nào hiểu định dạng Chat Completions mà không cần đổi SDK. Với Apidog, bạn có thể lưu nhiều biến thể request, kiểm tra streaming SSE, đọc usage, và so sánh độ trễ giữa Fugu và Fugu Ultra trong cùng một workspace.

Thử Apidog ngay hôm nay

Nếu bạn muốn tích hợp theo hướng code-first thay vì kiểm thử bằng UI, hãy xem thêm hướng dẫn sử dụng Sakana Fugu API. Bài viết này tập trung vào cách thiết lập, chạy và quan sát request Fugu trong Apidog.

Bạn thực sự đang kiểm tra gì với Fugu?

Fugu không chỉ là một mô hình chat đơn lẻ. Theo Sakana, Fugu là một hệ thống điều phối đa tác nhân được trình bày như một model nền tảng duy nhất phía sau API. Nó có thể trả lời trực tiếp hoặc điều phối nhiều LLM phía sau, bao gồm cả các phiên bản đệ quy của chính nó.

Để hiểu bối cảnh điều phối, bạn có thể đọc thêm phần giải thích Sakana Fugu là gì.

Điểm này ảnh hưởng trực tiếp đến cách bạn test:

  • Độ trễ không chỉ phản ánh thời gian sinh token, mà còn có thể phản ánh một “orchestration hop”.
  • usage cho bạn biết token trên request cha gửi tới Fugu, không nhất thiết là toàn bộ chi phí nội bộ của các model hạ nguồn.
  • Streaming SSE giúp bạn quan sát thời điểm token đầu tiên xuất hiện, rất hữu ích khi so sánh Fugu và Fugu Ultra.

Hai biến thể chính dùng chung một endpoint:

  • Fugu: biến thể cân bằng, độ trễ thấp, phù hợp cho lập trình, review code, chatbot và dịch vụ tương tác.
  • Fugu Ultra: biến thể ưu tiên chất lượng câu trả lời, phù hợp cho nghiên cứu, tái tạo tài liệu, phân tích an ninh mạng, tài liệu hoặc bằng sáng chế.

Lưu ý: trong bản beta, biến thể nhỏ từng được gọi là “Fugu Mini”. Trang phát hành chính thức dùng tên “Fugu” và “Fugu Ultra”, vì vậy nên dùng các tên này trong request.

Lấy base URL và API key

Fugu yêu cầu đăng nhập. Truy cập console.sakana.ai, đăng nhập bằng Google hoặc email, rồi sao chép:

  • Base URL của API
  • API key

Tính đến ngày 22-06-2026, Sakana chưa công bố base URL trên trang public. Không nên tự đoán host. Trong hướng dẫn này, mọi chỗ có:

<YOUR_FUGU_BASE_URL_FROM_CONSOLE>
Enter fullscreen mode Exit fullscreen mode

hãy thay bằng base URL thực tế trong console của bạn.

Thiết lập request Fugu trong Apidog

Tải và mở Apidog, sau đó tạo:

  1. Một project mới.
  2. Một environment mới, ví dụ Fugu Prod.
  3. Một HTTP request mới.

1. Tạo biến môi trường

Trong environment Fugu Prod, thêm hai biến:

Biến Giá trị
fugu_base_url Base URL lấy từ Sakana console
fugu_key API key lấy từ Sakana console

Sau đó request của bạn sẽ dùng:

{{fugu_base_url}}/chat/completions
Enter fullscreen mode Exit fullscreen mode

và header:

Authorization: Bearer {{fugu_key}}
Enter fullscreen mode Exit fullscreen mode

Cách này giúp bạn đổi key staging/production mà không cần sửa từng request. Nếu bạn từng kết nối các provider tương thích OpenAI qua gateway, mô hình này giống cách dùng base URL và bearer token trong hướng dẫn Claude Code với OpenRouter.

2. Tạo request Chat Completions

Cấu hình request:

Method: POST
URL: {{fugu_base_url}}/chat/completions
Enter fullscreen mode Exit fullscreen mode

Headers:

Authorization: Bearer {{fugu_key}}
Content-Type: application/json
Enter fullscreen mode Exit fullscreen mode

Body JSON:

{
  "model": "fugu",
  "messages": [
    {
      "role": "system",
      "content": "You are a concise API testing assistant."
    },
    {
      "role": "user",
      "content": "Summarize what an SSE delta is in two sentences."
    }
  ],
  "stream": false
}
Enter fullscreen mode Exit fullscreen mode

Payload này theo cấu trúc Chat Completions API của OpenAI, vì Fugu cung cấp endpoint tương thích OpenAI.

Các model ID được nhắc đến khi ra mắt gồm:

fugu
fugu-ultra
Enter fullscreen mode Exit fullscreen mode

Một số ID có thể có dạng ngày tháng, ví dụ:

fugu-ultra-20260615
Enter fullscreen mode Exit fullscreen mode

Không nên hard-code ID có ngày tháng nếu console cung cấp tên mới hơn.

Sau khi gửi request, bạn sẽ nhận phản hồi dạng Chat Completion với:

  • choices
  • usage
  • metadata của completion

Lưu request này trong Apidog với tên:

Fugu balanced
Enter fullscreen mode Exit fullscreen mode

Tạo request cho Fugu Ultra

Nhân đôi request Fugu balanced, sau đó chỉ đổi trường model.

Body ví dụ:

{
  "model": "fugu-ultra",
  "messages": [
    {
      "role": "user",
      "content": "Reproduce the core result of the Trinity coordinator paper in plain language and note one limitation."
    }
  ],
  "stream": false
}
Enter fullscreen mode Exit fullscreen mode

Lưu request mới với tên:

Fugu Ultra
Enter fullscreen mode Exit fullscreen mode

Bây giờ bạn có hai request dùng cùng endpoint:

{{fugu_base_url}}/chat/completions
Enter fullscreen mode Exit fullscreen mode

Khác biệt duy nhất là:

"model": "fugu"
Enter fullscreen mode Exit fullscreen mode

hoặc:

"model": "fugu-ultra"
Enter fullscreen mode Exit fullscreen mode

Đây là cách đơn giản nhất để chạy cùng một prompt qua hai biến thể và so sánh:

  • Nội dung trả lời
  • Độ trễ
  • usage
  • Hành vi khi streaming

Nếu bạn muốn xây dựng workflow kiểm thử nhiều request và nhiều bước hơn, xem thêm hướng dẫn điều phối kiểm thử API.

Kiểm tra streaming SSE

Để kiểm tra streaming, đổi stream thành true:

{
  "model": "fugu-ultra",
  "messages": [
    {
      "role": "user",
      "content": "Walk through a one-shot chess opening analysis, step by step."
    }
  ],
  "stream": true
}
Enter fullscreen mode Exit fullscreen mode

Khi bật streaming, response sẽ là:

Content-Type: text/event-stream
Enter fullscreen mode Exit fullscreen mode

Các chunk trả về dưới dạng data::

data: {"id":"chatcmpl-xxx","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"The"},"finish_reason":null}]}

data: {"id":"chatcmpl-xxx","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":" Sicilian"},"finish_reason":null}]}

data: [DONE]
Enter fullscreen mode Exit fullscreen mode

Trong mỗi chunk:

  • delta chứa phần nội dung tăng dần.
  • Chunk đầu tiên thường có role.
  • Các chunk tiếp theo chứa content.
  • Stream kết thúc bằng data: [DONE].

Khi test Fugu Ultra, hãy chú ý khoảng thời gian trước delta đầu tiên. Nếu có một khoảng dừng dài rồi token bắt đầu stream đều, đó có thể là dấu hiệu Fugu đang điều phối nhiều tác nhân trước khi trả lời.

Đọc usage để theo dõi token

Với request không streaming, mở block usage trong response:

{
  "usage": {
    "prompt_tokens": 38,
    "completion_tokens": 412,
    "total_tokens": 450
  }
}
Enter fullscreen mode Exit fullscreen mode

Ý nghĩa:

Trường Mô tả
prompt_tokens Số token đầu vào
completion_tokens Số token đầu ra
total_tokens Tổng token của request

Cần hiểu đúng giới hạn của trường này: Fugu là một orchestrator có thể gọi nhiều model phía sau. usage bạn thấy là usage của request cha tới Fugu, không nhất thiết phản ánh toàn bộ hoạt động nội bộ của các model hạ nguồn.

Theo Sakana, cấu trúc giá gồm các gói thuê bao theo cấp bậc cho sử dụng hằng ngày và gói trả theo mức dùng cho workload nặng hơn hoặc doanh nghiệp.

Để có thêm baseline so sánh với một model đơn lẻ, bạn có thể xem hướng dẫn API Claude Fable 5. Mức giá công bố của Anthropic ngày 09-06-2026 đặt Fable 5 và Mythos 5 ở mức 10 USD cho 1 triệu token đầu vào và 50 USD cho 1 triệu token đầu ra.

Đo “orchestration hop” bằng độ trễ

Đây là bài test nên chạy trong Apidog:

  1. Mở request Fugu balanced.
  2. Gửi cùng một prompt.
  3. Ghi lại thời gian phản hồi.
  4. Mở request Fugu Ultra.
  5. Gửi lại đúng prompt đó.
  6. So sánh thời gian phản hồi và nội dung.

Ví dụ prompt:

Analyze this API design and suggest three improvements for reliability, observability, and backward compatibility.
Enter fullscreen mode Exit fullscreen mode

Bạn thường sẽ thấy:

  • fugu phản hồi nhanh hơn.
  • fugu-ultra có độ trễ cao hơn nhưng có thể trả lời sâu hơn.

Theo Sakana, Fugu cân bằng nhắm đến độ trễ thấp và dịch vụ tương tác, còn Ultra nhắm đến chất lượng tối đa cho công việc cấp nghiên cứu. Phần độ trễ tăng thêm là chỉ báo thực tế cho “orchestration hop”: Fugu có thể đang tập hợp hoặc điều phối nhiều model thay vì trả lời trong một lượt.

Để test rõ hơn, hãy dùng các tác vụ Sakana nhắc đến như:

  • AutoResearch
  • Thiết kế cơ khí
  • Dự đoán chuỗi thời gian tài chính
  • Phân tích cờ vua một nước

Theo Sakana, Fugu vượt Gemini 3.1 Pro, Opus 4.8 và GPT 5.5 trên một số ứng dụng cụ thể đó. Tuy nhiên, cần đọc đúng bản chất: Fugu có thể đạt kết quả bằng cách gọi các model khác và tổng hợp đầu ra. Vì vậy, một kết quả “đánh bại Opus 4.8” có thể là kết quả của một hệ thống model-của-các-model, không phải chiến thắng của một model đơn lẻ.

Khám phá routing và quản lý tác nhân

Trang phát hành của Fugu mô tả một số cơ chế đáng kiểm tra nếu console của bạn có hỗ trợ:

  • Nhóm tác nhân có thể thay đổi.
  • Một số tác nhân có thể bị loại vì lý do dữ liệu hoặc tuân thủ.
  • Fugu có thể tự định tuyến quanh giới hạn của provider.

Nếu console cho phép cấu hình agent pool, bạn có thể:

  1. Thay đổi danh sách model đủ điều kiện.
  2. Chạy lại request đã lưu trong Apidog.
  3. So sánh response, latency và usage.
  4. Ghi lại cấu hình nào tạo kết quả ổn định hơn.

Dòng nghiên cứu phía sau Fugu gồm hai bài ICLR 2026:

Hai bài này dùng phương pháp và kích thước model khác nhau, nên không nên gộp chung. Việc ánh xạ một số lượng tham số cụ thể vào sản phẩm Fugu đã phát hành là suy luận bên thứ ba, không phải con số chính thức.

Cách đưa Fugu vào workflow Apidog

Mục tiêu của việc test Fugu trong Apidog không phải là gửi một request thử một lần. Mục tiêu là tạo một workflow lặp lại được:

  1. Lưu base URL và API key trong environment.
  2. Tạo request Fugu balanced.
  3. Nhân đôi thành request Fugu Ultra.
  4. Chạy cùng prompt trên cả hai.
  5. So sánh response, latency và usage.
  6. Bật stream: true để quan sát SSE delta.
  7. Lưu lịch sử response để kiểm tra lại khi prompt, model ID hoặc provider thay đổi.

Khi Sakana thay đổi model ID hoặc bạn đổi từ staging key sang production key, bạn chỉ cần sửa biến môi trường. Các request đã lưu sẽ tiếp tục hoạt động.

Sakana lấy tên từ tiếng Nhật có nghĩa là cá, và hình ảnh “đàn cá” phù hợp với ý tưởng điều phối nhiều model thành một câu trả lời duy nhất. Fugu, cá nóc, là món ăn cần được chế biến cẩn thận. Ẩn dụ này hợp với việc định tuyến tác vụ giữa nhiều tác nhân, miễn là bạn xem đó là cách mô tả sản phẩm, không phải một benchmark.

Nếu bạn đang đánh giá Fugu, hãy bắt đầu bằng cách trỏ endpoint tương thích OpenAI vào Apidog, lưu hai request fugufugu-ultra, rồi gửi cùng một prompt qua cả hai để tự quan sát “orchestration hop”.

Các câu hỏi thường gặp

Tôi dùng base URL nào để kiểm tra Fugu trong Apidog?

Sao chép base URL từ console.sakana.ai sau khi đăng nhập. Tính đến ngày 22-06-2026, Sakana chưa công bố host trên trang public, vì vậy không nên tự đoán. Lưu nó thành biến môi trường Apidog và dùng:

{{fugu_base_url}}/chat/completions
Enter fullscreen mode Exit fullscreen mode

Tôi có cần SDK riêng để gọi Fugu không?

Không. Fugu cung cấp endpoint tương thích OpenAI, nên bất kỳ client OpenAI nào hoặc công cụ nào hiểu định dạng Chat Completions đều có thể dùng được bằng cách đổi base URL và API key. Cách chuyển hướng này tương tự hướng dẫn Claude Code với OpenRouter.

Làm thế nào để kiểm tra streaming từ Fugu?

Đặt:

"stream": true
Enter fullscreen mode Exit fullscreen mode

Response sẽ trả về dạng text/event-stream với các chunk data: chứa delta, kết thúc bằng:

data: [DONE]
Enter fullscreen mode Exit fullscreen mode

Apidog hiển thị luồng SSE trực tiếp để bạn quan sát token xuất hiện theo thời gian thực.

Khác biệt giữa Fugu và Fugu Ultra là gì?

Fugu là biến thể cân bằng, độ trễ thấp, phù hợp cho coding, review code và chatbot. Fugu Ultra ưu tiên chất lượng câu trả lời cho nghiên cứu, tái tạo tài liệu và phân tích bảo mật. Cả hai dùng cùng endpoint, chỉ khác trường:

"model": "fugu"
Enter fullscreen mode Exit fullscreen mode

hoặc:

"model": "fugu-ultra"
Enter fullscreen mode Exit fullscreen mode

Vì sao Fugu Ultra chậm hơn?

Theo Sakana, Fugu có thể trả lời trực tiếp hoặc điều phối một nhóm model. Fugu Ultra nghiêng về điều phối sâu hơn để tối đa hóa chất lượng. Vì vậy, độ trễ cao hơn trong Apidog là tín hiệu thực tế cho thấy có thể đã xảy ra “orchestration hop”.

Các kết quả benchmark của Fugu có phải từ một model đơn lẻ không?

Không nên hiểu như vậy. Fugu là một orchestrator có thể gọi các model tiên tiến của nhà cung cấp khác, bao gồm cả chính nó theo cách đệ quy. Vì vậy, một kết quả “đánh bại Opus 4.8”, theo Sakana, có thể đến từ việc gọi Opus và tổng hợp đầu ra. Hãy xem các kết quả đó như kết quả của một hệ thống model-của-các-model và luôn kiểm chứng bằng prompt của riêng bạn.

Top comments (0)