Skip to content

fix: omit tools param when empty instead of sending None#3820

Merged
teknium1 merged 1 commit intomainfrom
hermes/hermes-b2abefdf
Mar 29, 2026
Merged

fix: omit tools param when empty instead of sending None#3820
teknium1 merged 1 commit intomainfrom
hermes/hermes-b2abefdf

Conversation

@teknium1
Copy link
Copy Markdown
Contributor

When self.tools is empty, the chat completions kwargs were sending tools=None, which the OpenAI SDK serializes as "tools": null in JSON. Some providers (Fireworks AI) reject this.

PR #3736 proposed changing to tools=[], but that trades one breakage for another — Anthropic and other strict providers reject empty arrays.

The correct fix: don't include the tools key at all. The SDK treats a missing parameter as NOT_GIVEN and omits it from the request entirely. Works with all providers.

Inspired by #3736 (@kelsia14 identified the issue).

Some providers (Fireworks AI) reject tools=null, and others (Anthropic)
reject tools=[]. The safest approach is to not include the key at all
when there are no tools — the OpenAI SDK treats a missing parameter as
NOT_GIVEN and omits it from the request entirely.

Inspired by PR #3736 (@kelsia14).
@teknium1 teknium1 merged commit 68d5472 into main Mar 29, 2026
4 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant