V2: Preserve explicit reasoning None across existing tool paths
メンテナーはふだん 1 日以内に返信
@paullizer がすでに取り組んでいます。
2026年10月27日 から。
評価
この issue はまだ評価されていません。
説明
Issue
Finish consistent reasoning-None handling across the existing GPT-5.6 tool-execution paths on paullizer-react-v2-ui. This is a request-shape consistency bug, not a claim that Sol, Luna, Terra, YAMCS, or database actions are universally broken: existing V2 agent deployments already execute those actions successfully.
V2's reasoning UI preserves explicit none, and budgeted agent execution applies the Azure tool restriction. However, the retained direct tabular/Semantic Kernel analysis path constructs function-tool settings without applying that policy. An actual SDK request-shape probe against the latest reviewed V2 source still omitted reasoning_effort while sending function tools.
Azure GPT-5.6 Chat Completions requires explicit reasoning_effort: "none" when function tools are present. Omitting the parameter is not equivalent to disabling reasoning; the provider's default can cause a 400. Main also strips explicit None in its older model behavior helper.
Steps to Reproduce
- Review V2 commit
11daaaa85c39d836347e2d3bc2d7512bfaadea38. - Load the production
execution_settingsassignment inrun_tabular_sk_analysisfromapplication/single_app/route_backend_chats.py(line 13398 at that commit). - Execute those settings through the real
AzureChatCompletion/OpenAI SDK with a small function plugin and anhttpx.MockTransport. - Observe that the outgoing request contains
toolsbut noreasoning_effort.
This reproduced the wire shape without a live Azure model call. It does not establish that every UI request enters this retained path or that this caused the customer's reported symptoms.
Expected Behavior
All applicable existing tool paths honor the selected model/provider/protocol policy and preserve explicit None. Supported combinations continue working without requiring users to understand the difference between omission and the literal none value.
Actual Behavior
Correct None handling exists in the frontend and budgeted agent wrapper, but it is not consistently applied at every tool-enabled model boundary. The direct tabular request can bypass it. Retries that merely remove the parameter do not resolve this Azure restriction.
Impact
Equivalent model/tool work can behave differently depending on whether it executes through a normal agent, a tabular helper, a fallback, or orchestration. Users can see errors, unnecessary retries, or slow analysis despite other actions working with the same model family.
Acceptance Criteria
- Reuse the shared model/provider/protocol tool policy at every relevant existing tool-enabled invocation boundary, including retained tabular/fallback paths and applicable agent/orchestration execution.
- Preserve explicit
nonethrough settings, adapters, SDK serialization, streaming, retries, and saved request metadata. Do not normalize it to omission. - Where the documented policy allows filling an unset effort with None, make the effective effort observable. Never silently replace an explicitly requested positive effort with None.
- Give an actionable, safe configuration error for unsupported reasoning-plus-tools combinations rather than repeatedly dropping the parameter or changing API versions.
- Preserve already-working Sol/Luna/Terra, GPT-5.1, YAMCS, SQL/database, and other existing action paths. Action plugins should not implement model-specific reasoning logic.
- Add actual SDK wire-level regressions for each applicable GPT-5.6 catalog profile, with tools present/absent and omitted/None/positive effort, and cover affected active callers rather than only testing a standalone helper.
- Update related documentation and apply the required application version bump when implementing.
Notes
Target: React V2 branch. Priority: P1. Assignee: @paullizer. Roadmap size: M.
Primary areas: model_endpoint_clients.py, functions_model_capabilities.py, functions_model_budget_runtime.py, functions_model_endpoint_runtime.py, semantic_kernel_loader.py, agent_logging_chat_completion.py, and route_backend_chats.py.
Broad reasoning-with-tools support belongs to #472. The GPT-6-specific restriction is tracked in #1606. This issue is the first, narrower compatibility fix and must not wait for or duplicate a full Responses migration.
Official contract: https://learn.microsoft.com/en-us/azure/foundry/openai/how-to/reasoning#tool-calling-with-reasoning-models
No customer deployment changes or live performance claims are part of this reproduction.
- 主要言語
- Python
- スター
- 157
- フォーク
- 117
- 平均マージ
- 3時間 6分
- マージ済み PR(30日)
- 219
環境構築
このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
microsoft/simplechat のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
microsoft/simplechat#1491 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
microsoft/simplechat#1370 ·
メンテナーはふだん 1 日以内に返信
-
Fix mixed-source chat excerpt truncation, default system prompt suppression, bracketed citations, and Semantic Ranker quota fallback対応中かも @paullizer が 4 日前に担当しました。 オープンbug P1
microsoft/simplechat#1855 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
Add support for extracting comments from Word documents (.docx, .docm, .doc, .dotx)対応中かも @paullizer が 6 日前に担当しました。 オープンenhancement P2
microsoft/simplechat#1850 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
V2: Make Azure OpenAI v1 routing and API-version guidance consistent対応中かも @paullizer が 6 日前に担当しました。 オープンbug P1
microsoft/simplechat#1845 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
microsoft/simplechat の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
enhancement good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
elviskahoro/sdk-python-attio#144 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
メンテナーはふだん 1 日以内に返信
-
RenyiELBO raises TypeError when model has no sample sites対応中かも @alibb007 が今日担当しました。 オープン
難易度 1/5 1時間未満 初心者へのやさしさ 85/100
メンテナーはふだん 1 日以内に返信
-
[Bug]: Four evaluation scripts unpack init_memmachine_params's five return values into three namesオープン
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
MemMachine/MemMachine#1911 ·
メンテナーはふだん 3 日以内に返信