|
| 1 | +--- |
| 2 | +description: Enable parallel tool execution in Roo Code with the experimental Parallel Tool Calls feature. Execute multiple tools in a single assistant turn when using native protocol. |
| 3 | +keywords: |
| 4 | + - parallel tool calls |
| 5 | + - native protocol |
| 6 | + - tool execution |
| 7 | + - experimental features |
| 8 | + - multiple tools |
| 9 | + - performance optimization |
| 10 | +image: /img/social-share.jpg |
| 11 | +--- |
| 12 | + |
| 13 | +# Parallel Tool Calls |
| 14 | + |
| 15 | +Execute multiple tools in a single assistant message turn—cut wait time when Roo needs to call several tools at once. |
| 16 | + |
| 17 | +:::warning Experimental Feature |
| 18 | +This feature is experimental and only works with native tool protocol (not XML). It may have edge cases or change behavior in future updates. |
| 19 | +::: |
| 20 | + |
| 21 | +--- |
| 22 | + |
| 23 | +## Why It Matters |
| 24 | + |
| 25 | +By default, Roo executes one tool per assistant turn. With Parallel Tool Calls enabled, the native protocol can execute multiple tools in a single turn—for example, reading three files and running a command all at once instead of waiting for four separate approval cycles. |
| 26 | + |
| 27 | +This speeds up tasks that require multiple independent operations. |
| 28 | + |
| 29 | +--- |
| 30 | + |
| 31 | +## How to Enable |
| 32 | + |
| 33 | +1. Open Roo Code settings (gear icon in the top right) |
| 34 | +2. Navigate to the "Experimental" tab |
| 35 | +3. Find "Parallel tool calls" in the list |
| 36 | +4. Toggle the setting to enable it |
| 37 | + |
| 38 | +--- |
| 39 | + |
| 40 | +## Prerequisites |
| 41 | + |
| 42 | +- **Native tool protocol required**: Your model must use native tool calling (OpenAI, Anthropic with native tools, etc.). XML protocol does not support parallel execution. |
| 43 | +- **Model support**: Works with models that support native tool calls (Claude 3.5+, GPT-4+, and compatible providers) |
| 44 | + |
| 45 | +#### Check if you're using native protocol |
| 46 | + |
| 47 | +Go to Settings → your active profile. If the "Tool Protocol" is set to "Native" or the model defaults to native tools, you're compatible. |
| 48 | + |
| 49 | +--- |
| 50 | + |
| 51 | +## Trade-offs |
| 52 | + |
| 53 | +**Benefits:** |
| 54 | +- Faster execution for multi-tool tasks |
| 55 | +- Fewer back-and-forth cycles with the model |
| 56 | +- More efficient use of API requests |
| 57 | + |
| 58 | +**Costs:** |
| 59 | +- More complex to review (multiple tools at once) |
| 60 | +- Harder to troubleshoot if one tool in the batch fails |
| 61 | +- May increase cognitive load during approval |
| 62 | + |
| 63 | +--- |
| 64 | + |
| 65 | +## When to Use |
| 66 | + |
| 67 | +Enable this when: |
| 68 | +- Using capable native protocol models |
| 69 | +- Working on tasks that frequently need multiple independent operations |
| 70 | +- Speed matters more than granular control |
| 71 | + |
| 72 | +Keep disabled when: |
| 73 | +- Using XML protocol models |
| 74 | +- Prefer reviewing each tool use individually |
| 75 | +- Troubleshooting complex workflows where sequential execution helps debugging |
| 76 | + |
| 77 | +--- |
| 78 | + |
| 79 | +## Limitations |
| 80 | + |
| 81 | +- **Protocol dependency**: Only works with native tool calling. If your model uses XML, this setting has no effect. |
| 82 | +- **Disabled by default**: You must explicitly enable it in experimental settings. |
| 83 | +- **Experimental status**: Behavior may evolve as the feature matures. |
| 84 | + |
| 85 | +--- |
| 86 | + |
| 87 | +## Troubleshooting |
| 88 | + |
| 89 | +### Parallel calls not happening despite being enabled |
| 90 | + |
| 91 | +**Cause**: Your model is using XML protocol, not native. |
| 92 | +**Fix**: Check Settings → your profile → Tool Protocol. Switch to a model/provider that supports native tools. |
| 93 | +**Prevention**: Verify your model supports native protocol before enabling this feature. |
| 94 | + |
| 95 | +### 400 errors with parallel tool calls |
| 96 | + |
| 97 | +**Cause**: Bug in v3.35.0-v3.35.3 where tool_result blocks weren't preserved during context condensation. |
| 98 | +**Fix**: Update to v3.35.4 or later, which fixes the issue. |
| 99 | +**Prevention**: Keep Roo Code up to date. |
| 100 | + |
| 101 | +--- |
| 102 | + |
| 103 | +## See Also |
| 104 | + |
| 105 | +- [Experimental Features Overview](/features/experimental/experimental-features) |
| 106 | +- [Native Tool Calling](/providers/openai-compatible#native-tool-calling-openai-native-endpoint) |
| 107 | +- [v3.35 Release Notes](/update-notes/v3.35) - Mentions parallel tool calls bug fixes |
0 commit comments