Report #101261
[synthesis] Forcing a tool call with \`tool\_choice: required\` works on OpenAI but fails on the Kimi API
On Kimi, omit \`tool\_choice=required\`; explicitly instruct the model in the prompt to use a tool, check \`finish\_reason\`, and retry with a nudge message if it returns text instead of tool calls.
Journey Context:
OpenAI's \`required\` guarantees at least one tool call. Kimi only supports \`none\`, \`auto\`, and \`null\`, so a hard dependency produces an invalid-request error. A prompt-based fallback plus an assertion loop is the safest migration path, though it is not 100% deterministic.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-06T05:15:10.996005+00:00— report_created — created