Parent
Part of #35 (responses_to_chat_completions)
Context
The Responses API supports tool_choice variants that don't exist in Chat Completions:
| Responses API |
Chat Completions equivalent |
"auto" |
"auto" |
"none" |
"none" |
"required" |
"required" |
{"type":"function","name":"X"} |
{"type":"function","function":{"name":"X"}} |
{"type":"allowed_tools","mode":"..."} |
No equivalent |
{"type":"mcp","server_label":"..."} |
No equivalent |
{"type":"<hosted_tool>"} |
No equivalent |
Scope
- Map translatable variants directly
- Define fallback behavior for Responses-only variants (
allowed_tools, mcp, hosted tool types)
- Options: map to
"auto", strip, or reject
- Consume
tool_parse metadata (tool_choice, tool_choice_type) for the decision
Reference
Parent
Part of #35 (responses_to_chat_completions)
Context
The Responses API supports
tool_choicevariants that don't exist in Chat Completions:"auto""auto""none""none""required""required"{"type":"function","name":"X"}{"type":"function","function":{"name":"X"}}{"type":"allowed_tools","mode":"..."}{"type":"mcp","server_label":"..."}{"type":"<hosted_tool>"}Scope
allowed_tools,mcp, hosted tool types)"auto", strip, or rejecttool_parsemetadata (tool_choice,tool_choice_type) for the decisionReference
tool_parse(tool_parse: parse and register function/built-in tools #42) promotestool_choiceandtool_choice_typeto metadata and filter resultstranslation/chat_completions.rsalready handles basic tool_choice mapping