Repository navigation
gpt-6-astra agents with actions fail: Azure Chat Completions rejects function tools at every reasoning effort #1606
Description
Issue
Local (Semantic Kernel) agents with actions fail on gpt-6-astra. SimpleChat sends agent tool calls through Chat Completions, and Azure rejects function tools for this model on Chat Completions at every reasoning effort the model accepts. Any agent or scheduled workflow that uses actions with a gpt-6-astra deployment fails with a 400 before it does any work.
gpt-6-sol has the same rule as GPT-5.6: tools work on Chat Completions only with reasoning_effort: none. gpt-6-sol isn't in the model catalog, so SimpleChat doesn't apply the existing toolReasoningEfforts rule, and a gpt-6-sol agent with actions fails unless its Reasoning Effort is explicitly set to None.
Observed on a SimpleChat POC deployment running the React V2 branch (0.261.219) with Azure OpenAI deployments gpt-6-astra (2026-09-03) and gpt-6-sol (2026-09-22). The model endpoint uses api-version 2024-05-01-preview.
Steps to Reproduce
- Deploy
gpt-6-astrain Azure OpenAI and add it to a model endpoint. - Create a local agent on
gpt-6-astrawith at least one action (for example, the SimpleChat action). - Chat with the agent, or run a workflow that uses it.
- Set the agent's Reasoning Effort to None and repeat.
Expected Behavior
The agent runs through an API that supports tools for this model. If that isn't possible, SimpleChat blocks the configuration up front with a clear message that this model can't use actions through Chat Completions.
Actual Behavior
| Model | Reasoning effort | Result |
|---|---|---|
gpt-6-astra |
Not set (model default) | 400: Function tools with reasoning_effort are not supported for gpt-6-astra in /v1/chat/completions. To use function tools, use /v1/responses or set reasoning_effort to 'none'. |
gpt-6-astra |
low |
400: same Function tools with reasoning_effort are not supported for gpt-6-astra error |
gpt-6-astra |
none |
400: Unsupported value: 'reasoning_effort' does not support 'none' with this model. Supported values are: 'low', 'medium', 'high', and 'xhigh'. |
gpt-6-sol |
Not set (model default) | 400: Function tools with reasoning_effort are not supported for gpt-6-sol in /v1/chat/completions. To use function tools, use /v1/responses or set reasoning_effort to 'none'. |
gpt-6-sol |
none |
Works |
In a workflow, the run shows only the generic task error (The task could not complete. Review its input, model availability, and run activity.). The provider error appears only in Application Insights.
Impact
gpt-6-astracan't be used for any agent with actions, including scheduled workflows.gpt-6-solagents with actions fail unless the admin knows to set Reasoning Effort to None.- The cause isn't visible to the user or admin who sees the failure.
Notes
- Local agents always use Chat Completions (
AzureChatCompletioninsemantic_kernel_loader.pyandfunctions_model_endpoint_runtime.py). The Responses API is used only for Foundry agents and image generation. - The documentation doesn't describe this rule for GPT-6. Azure's model table lists Chat Completions and "Functions, tools, and parallel tool calling" for
gpt-6-astraandgpt-6-sol, without the GPT-5.6 note that tools on Chat Completions requirereasoning_effort: none. OpenAI'sgpt-6-astrapage lists reasoning efforts low, medium, high, xhigh and max, with no none, which matches the rejection above. - The errors name
/v1/chat/completionsand give the fix (/v1/responsesornone), so this looks like a model-level rule rather than an effect of the older api-version. A newer api-version wasn't tested. - A model catalog update on the React V2 branch (0.261.220) records
gpt-6-astra's verified token limits, its reasoning efforts, and this restriction as notes. The currenttoolReasoningEffortsfield can't express "no effort supports tools", so the runtime still sends the request. - Related: GPT-6 models are sent max_tokens and rejected (not treated as reasoning models) #1605 (GPT-6 models sent
max_tokens).
Suggested Fix
- Add a catalog record for
gpt-6-solwith an Azure Chat CompletionstoolReasoningEfforts: ["none"]profile, so SimpleChat sendsnoneautomatically when tools are present, as it does for GPT-5.6. Addgpt-6-lunaonce its behavior is verified. Done on the React V2 branch in 0.261.221 (Fix group uploads, Call agent saves, scheduled-run identity and GPT-6 model handling #1608). - Let the catalog mark a model and protocol as not supporting function tools (for example, Azure Chat Completions for
gpt-6-astra). Fail early with a clear message in the agent editor and at run time instead of a provider 400. - Run local agents with tools through the Responses API for models that require it. This may need its own issue.
- Show a safe, specific reason in the workflow task error instead of the generic message.
- Add functional tests for the catalog rules and the early failure.
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsPending Evaluation
Activity
paullizer commentedon Oct 2, 2026
Progress on the React V2 branch (PR #1608):
gpt-6-astrahas verified token limits and a reasoning policy (low, medium, high, xhigh) in the model catalog, and the tool restriction is recorded in its notes. Chat now sends Low when None is selected.gpt-6-solis in the catalog with a Chat CompletionstoolReasoningEffortsofnonefor Azure and OpenAI. OpenAI documents the rule on the model page: "Chat Completions supports function calling only withreasoning_effortset tonone." Agents with tools and no effort now sendnone. Another explicit effort fails before the request with a clear message instead of a provider 400.gpt-6-astrarejects tools withreasoning_effort: lowtoo. The table above now includes it.Still open: a Responses API path, or an early and clear error, for
gpt-6-astraagents with actions. Auto model selection should also avoid routing tool-use steps to it, because the catalog derives tool-use suitability fromtoolCalling.Record verified GPT-6 Astra limits, reasoning efforts and Azure tool …
Add GPT-6 Sol to the model catalog so agent tools send reasoning effo…
Add release notes for 0.261.217 to 0.261.221