Skip to content

Add declarative Sakana AI provider for the OpenAI-compatible Fugu API - #10357

Merged
alexhancock merged 1 commit into
mainfrom
alexhancock/add-sakana-provider
Jul 17, 2026
Merged

Add declarative Sakana AI provider for the OpenAI-compatible Fugu API#10357
alexhancock merged 1 commit into
mainfrom
alexhancock/add-sakana-provider

Conversation

@alexhancock

Copy link
Copy Markdown
Collaborator

Summary

Simple one. Adds https://sakana.ai which is one I have been testing out, as a declarative provider.

Testing

Manual test

Related Issues

N/A

Screenshots/Demos (for UX changes)

Screenshot 2026-07-09 at 5 10 30 PM

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: cc2240f4c7

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread crates/goose-providers/src/declarative/definitions/sakana.json Outdated

@jamadeo jamadeo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

double check the name field but otherwise LGTM

@alexhancock
alexhancock force-pushed the alexhancock/add-sakana-provider branch from cc2240f to 37bb1c0 Compare July 10, 2026 15:09

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 37bb1c007c

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

@@ -0,0 +1,31 @@
{
"name": "sakana",
"engine": "openai",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Add Sakana's catalog provider id

Please set catalog_provider_id to sakana for this fixed provider. I checked declarative_inventory_identity, and when an OpenAI-compatible declarative config omits this field it records the inventory provider_family as openai, so the static fugu/fugu-ultra entries are enriched against the OpenAI catalog instead of the existing sakana/* canonical models; desktop model selection then gets reasoning: null from acpListProviderModels and hides thinking controls for these reasoning-capable models.

Useful? React with 👍 / 👎.

@alexhancock
alexhancock force-pushed the alexhancock/add-sakana-provider branch from 37bb1c0 to d13eeeb Compare July 14, 2026 17:43

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d13eeebd55

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

}
],
"headers": null,
"timeout_seconds": null,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Raise the Sakana request timeout

When a user runs fugu-ultra on long or complex tasks, leaving timeout_seconds as null falls back to the declarative OpenAI default of 600 seconds in from_declarative_config, and ApiClient::with_timeout_and_tls applies that as a reqwest request timeout. Sakana's own get-started guide warns that complex fugu-ultra tasks may need increased client-side timeouts and their Codex provider example hardens streams for up to 2h, so this bundled provider can abort valid long-running Fugu turns at 10 minutes unless it sets a much larger timeout.

Useful? React with 👍 / 👎.

"headers": null,
"timeout_seconds": null,
"model_doc_link": "https://console.sakana.ai/models",
"preserves_thinking": true,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Map Sakana thinking effort into requests

Setting preserves_thinking only keeps returned thinking blocks in conversation history; it does not send Sakana's reasoning.effort. The OpenAI request builders only attach reasoning fields for model names matched by is_openai_responses_model (o*/gpt-5*) or explicit provider-specific mapping, so GOOSE_THINKING_EFFORT/model-picker choices for fugu and fugu-ultra are silently dropped even though Sakana documents only high and xhigh as supported effort levels for both models.

Useful? React with 👍 / 👎.

@alexhancock
alexhancock force-pushed the alexhancock/add-sakana-provider branch from d13eeeb to 3b2e325 Compare July 15, 2026 15:43
@alexhancock
alexhancock force-pushed the alexhancock/add-sakana-provider branch from 3b2e325 to 6b750f8 Compare July 17, 2026 14:36

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6b750f8c7f

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

"display_name": "Sakana AI",
"description": "Sakana Fugu multi-agent system delivered as one OpenAI-compatible model API",
"api_key_env": "SAKANA_API_KEY",
"base_url": "https://api.sakana.ai/v1",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Route Sakana requests through Responses

With this base_url and no explicit base_path, openai::from_declarative_config derives v1/chat/completions, and should_use_responses_api_for_provider will not switch for fugu/fugu-ultra because they are not OpenAI responses-model names. In Goose sessions that use tools or images, Sakana then runs over Chat Completions even though its model docs recommend /v1/responses for tool use, multimodal input, and reasoning/function-call management (https://console.sakana.ai/models); add a base_path of v1/responses or provider-specific routing so Fugu uses the recommended agent wire shape.

Useful? React with 👍 / 👎.

@alexhancock
alexhancock added this pull request to the merge queue Jul 17, 2026
Merged via the queue into main with commit 248999c Jul 17, 2026
27 checks passed
@alexhancock
alexhancock deleted the alexhancock/add-sakana-provider branch July 17, 2026 18:12
michaelneale added a commit that referenced this pull request Jul 20, 2026
* origin/main: (24 commits)
  fix(session): create inventory tables atomically with schema version (#10586)
  fix(providers): rewrite oneOf to anyOf in tool schemas for OpenAI-compatible backends (#10571)
  fix(evals): report cache-aware Harbor costs (#10430)
  fix(acp): allow custom model as default for non-local providers (#10438)
  fix(config): require absolute goose path roots (#10454)
  chore(deps): bump astral-sh/setup-uv from 8.2.0 to 8.3.2 (#10541)
  fix(permissions): scope smart approval by request (#10457)
  fix(summon): preserve fixed subrecipe values (#10452)
  chore(deps): bump websocket-driver from 0.7.4 to 0.7.5 in /documentation (#10506)
  fix(flatpak): bundle git so hermit can clone its package registry (#10511)
  feat(hooks): pass working_dir to the Stop hook context (#10296)
  chore(deps): bump actions/setup-java from 5.5.0 to 5.6.0 (#10540)
  chore(deps): bump actions/setup-node from 6 to 7 (#10539)
  chore(deps): bump EmbarkStudios/cargo-deny-action from 2.0.20 to 2.1.1 (#10542)
  chore(deps): bump gradle/actions/setup-gradle from 4.4.3 to 6.2.0 (#10543)
  Add declarative Sakana AI provider for the OpenAI-compatible Fugu API (#10357)
  fix(developer): expose AGENT_SESSION_ID to shell commands (#10428)
  Clean up stale documentation audit findings (#10114)
  Restore model interactions viewer (#10205)
  fix(acp): forward image content chunks to client during live session (#10485)
  ...

# Conflicts:
#	crates/goose/src/session/session_manager.rs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants