diff --git a/packages/pi-ai/src/providers/anthropic-shared.ts b/packages/pi-ai/src/providers/anthropic-shared.ts index 342c3fa11..1e8f78f9b 100644 --- a/packages/pi-ai/src/providers/anthropic-shared.ts +++ b/packages/pi-ai/src/providers/anthropic-shared.ts @@ -473,7 +473,7 @@ export function buildParams( params.temperature = options.temperature; } - if (context.tools) { + if (context.tools && context.tools.length > 0) { params.tools = convertTools(context.tools, isOAuthToken, cacheControl); } diff --git a/packages/pi-ai/src/providers/azure-openai-responses.ts b/packages/pi-ai/src/providers/azure-openai-responses.ts index 9dac639d4..7067f728b 100644 --- a/packages/pi-ai/src/providers/azure-openai-responses.ts +++ b/packages/pi-ai/src/providers/azure-openai-responses.ts @@ -217,7 +217,7 @@ function buildParams( params.temperature = options?.temperature; } - if (context.tools) { + if (context.tools && context.tools.length > 0) { params.tools = convertResponsesTools(context.tools); } diff --git a/packages/pi-ai/src/providers/openai-codex-responses.ts b/packages/pi-ai/src/providers/openai-codex-responses.ts index fa130515b..9ff27b767 100644 --- a/packages/pi-ai/src/providers/openai-codex-responses.ts +++ b/packages/pi-ai/src/providers/openai-codex-responses.ts @@ -312,7 +312,7 @@ function buildRequestBody( body.temperature = options.temperature; } - if (context.tools) { + if (context.tools && context.tools.length > 0) { body.tools = convertResponsesTools(context.tools, { strict: null }); } diff --git a/packages/pi-ai/src/providers/openai-completions.ts b/packages/pi-ai/src/providers/openai-completions.ts index a67f9219d..cdeabccbf 100644 --- a/packages/pi-ai/src/providers/openai-completions.ts +++ b/packages/pi-ai/src/providers/openai-completions.ts @@ -344,7 +344,7 @@ function buildParams(model: Model<"openai-completions">, context: Context, optio params.temperature = options.temperature; } - if (context.tools) { + if (context.tools && context.tools.length > 0) { params.tools = convertTools(context.tools, compat); maybeAddOpenRouterAnthropicToolCacheControl(model, params.tools); } else if (hasToolHistory(context.messages)) { diff --git a/packages/pi-ai/src/providers/openai-responses.ts b/packages/pi-ai/src/providers/openai-responses.ts index d0e6222af..3e00f576c 100644 --- a/packages/pi-ai/src/providers/openai-responses.ts +++ b/packages/pi-ai/src/providers/openai-responses.ts @@ -156,7 +156,7 @@ function buildParams(model: Model<"openai-responses">, context: Context, options params.service_tier = options.serviceTier; } - if (context.tools) { + if (context.tools && context.tools.length > 0) { params.tools = convertResponsesTools(context.tools); }