Skip to content

fix(databricks): always use OpenAI-compatible "parameters" for tools - #10101

Merged
DOsinga merged 1 commit into
aaif-goose:mainfrom
kyledef:kdefreitas/databricks-gemini-parameters
Jul 1, 2026
Merged

fix(databricks): always use OpenAI-compatible "parameters" for tools#10101
DOsinga merged 1 commit into
aaif-goose:mainfrom
kyledef:kdefreitas/databricks-gemini-parameters

Conversation

@kyledef

@kyledef kyledef commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Summary

Databricks serving endpoints — including Gemini-backed ones — speak the OpenAI-compatible chat format, so tool definitions must use the parameters field, not Google's native parametersJsonSchema.

The previous is_gemini branch in format_tools emitted parametersJsonSchema for any model name containing "gemini" (e.g. databricks-gemini-3-pro), which the Databricks endpoint rejects. This drops the branch so all Databricks tools use parameters.

Context

Split out of #9906 per @DOsinga's review feedback — this is the self-contained, unambiguous half that can land independently of the trickier summon.rs delegate-inheritance rework (which remains in #9906).

Testing

Updated test_format_tools to assert the OpenAI-compatible shape; cargo test -p goose --lib format_tools, fmt, and clippy all pass.

Databricks serving endpoints — including Gemini-backed ones — speak the
OpenAI-compatible chat format, so tool definitions must use the "parameters"
field, not Google's native "parametersJsonSchema". The previous is_gemini
branch emitted "parametersJsonSchema" for any model name containing "gemini"
(e.g. databricks-gemini-3-pro), which the endpoint rejects.

Drop the is_gemini branch so all Databricks tools use "parameters", and update
the format_tools test to assert the OpenAI-compatible shape.

Split out of aaif-goose#9906 per review feedback as a self-contained fix.

@DOsinga DOsinga left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Clean, focused bug fix — Databricks serving endpoints (even Gemini-backed ones) speak the OpenAI-compatible format, so always emitting parameters is correct. Nice that the existing test was updated to cover both the plain and databricks- prefixed gemini cases. LGTM.

@DOsinga
DOsinga added this pull request to the merge queue Jul 1, 2026
Merged via the queue into aaif-goose:main with commit 44869db Jul 1, 2026
23 checks passed
lifeizhou-ap added a commit that referenced this pull request Jul 1, 2026
* main:
  fix: tolerate partial Responses output items (#10108)
  fix(databricks): always use OpenAI-compatible "parameters" for tools (#10101)
  fix(providers): unescape shell-escaped image paths (#10098)
  chore(deps-dev): bump js-yaml from 4.1.1 to 4.2.0 in /documentation (#10107)
  regenerate schema (#10166)
  chore(deps): bump actions/stale from 10.1.1 to 10.3.0 (#10050)
  chore(deps): bump actions/attest-build-provenance from 4.1.0 to 4.1.1 (#10049)
  chore(deps): bump pnpm/action-setup from 6.0.8 to 6.0.9 (#9892)
  Update EmpirioLabs provider display name to EmpirioLabs AI (#10126)
  add declarative provider support to goose-providers crate (#9992)
  fix(desktop): seed mac auto-update config (#10132)
  Update release testing instructions (#10122)
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