You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: remove XML tool calling references from openai-compatible page
XML tool calling was removed in v3.42.0 and remaining code paths
cleaned up in v3.43.0. Updates the openai-compatible provider docs to:
- Remove all references to XML-based tool format as a fallback
- Remove the mention of a tool protocol selector setting
- Clarify native tool calling is the only supported protocol
- Add warning that models without native tool calling cannot be used
- Add troubleshooting entry for tool-calling errors
Copy file name to clipboardExpand all lines: docs/providers/openai-compatible.md
+15-14Lines changed: 15 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -48,29 +48,30 @@ You'll find these settings in the Roo Code settings panel (click the <Codicon na
48
48
49
49
---
50
50
51
-
## Native Tool Calling (OpenAI-Native Endpoint)
51
+
## Native Tool Calling
52
52
53
-
When you connect this provider directly to the official OpenAI API (or an endpoint that mirrors it exactly), Roo Code can use OpenAI's **native tool-calling** protocol instead of the XML-based tool format.
53
+
Roo Code uses the **native tool-calling** protocol exclusively. Models must support native tool calling to work with Roo Code.
54
54
55
55
At a high level:
56
56
57
-
-**Tool definitions** are sent to the model using OpenAI's native tools schema.
57
+
-**Tool definitions** are sent to the model using the native tools schema.
58
58
-**Tool calls** stream back as dedicated tool events, including the tool name, arguments, and metadata.
59
59
-**Tool arguments** are streamed incrementally, which reduces latency between the model deciding to use a tool and Roo Code executing it.
60
60
61
-
### When native tools are used
61
+
### Requirements
62
62
63
-
Roo Code uses native tool calling when **all** of the following are true:
63
+
For native tool calling to work, the following must be true:
64
64
65
-
1. The selected provider is configured for the OpenAI-native protocol (OpenAI or an OpenAI-compatible endpoint that fully supports native tools).
66
-
2. The active profile's tool protocol is set to allow native tools (or left at its default, which prefers native tools when supported).
67
-
3. The selected model supports native tool calling.
65
+
1. The provider endpoint fully supports native tool calling (OpenAI or an OpenAI-compatible endpoint that implements the tools API).
66
+
2. The selected model supports native tool calling.
68
67
69
-
If any of these conditions aren't met, Roo Code falls back to its XML-based tool protocol instead.
68
+
:::warning Model Compatibility
69
+
Models that do not support native tool calling **cannot be used with Roo Code**. There is no fallback protocol. If you see tool-related errors, verify that your model supports native function/tool calling and that your provider endpoint implements the tools API correctly.
70
+
:::
70
71
71
72
### Example: simple native tool flow
72
73
73
-
Here's a simplified example of how a file-reading tool might be exposed when using an OpenAI-native endpoint:
74
+
Here's a simplified example of how a file-reading tool might be exposed:
74
75
75
76
```json
76
77
{
@@ -102,11 +103,10 @@ When the model decides to use `read_file`, Roo Code surfaces **streamed tool eve
102
103
103
104
This gives you lower-latency feedback on which tools are being used and with what arguments.
104
105
105
-
### Settings and limitations
106
+
### Limitations
106
107
107
-
-**Tool protocol selector:** In advanced settings, you can choose which tool protocol Roo Code should prefer (XML vs native). If you disable native tools here, Roo Code will always use XML even if the provider supports native tools.
108
-
-**Model support:** Not all OpenAI-native or compatible models support tools. If a model doesn't support tools, Roo Code will not attempt to send tool definitions for it.
109
-
-**Provider quirks:** Some OpenAI-compatible providers only partially implement the native tools API. If Roo Code detects protocol errors, it may fall back to XML tools automatically.
108
+
-**Model support:** Not all models support native tool calling. If a model doesn't support tools, it cannot be used with Roo Code. Check your provider's documentation to confirm tool-calling support for your chosen model.
109
+
-**Provider quirks:** Some OpenAI-compatible providers only partially implement the native tools API. If you encounter tool-related errors, verify that your provider fully supports the native tools specification.
110
110
111
111
For a deeper overview of how tools work in Roo Code in general, see the [Tool Use Overview](/advanced-usage/available-tools/tool-use-overview).
112
112
@@ -117,6 +117,7 @@ For a deeper overview of how tools work in Roo Code in general, see the [Tool Us
117
117
***"Invalid API Key":** Double-check that you've entered the API key correctly.
118
118
***"Model Not Found":** Make sure you're using a valid model ID for your chosen provider.
119
119
***Connection Errors:** Verify the Base URL is correct and that your provider's API is accessible.
120
+
***Tool-calling errors:** Roo Code requires native tool calling. If your model does not support native tool calling, you must switch to a model that does. There is no XML or fallback tool protocol.
120
121
***Unexpected Results:** If you're getting unexpected results, try a different model.
121
122
122
123
By using an OpenAI-compatible provider, you can leverage the flexibility of Roo Code with a wider range of AI models. Remember to always consult your provider's documentation for the most accurate and up-to-date information.
0 commit comments