Skip to content

Conversation

@daniel-lxs
Copy link
Member

@daniel-lxs daniel-lxs commented Jan 28, 2026

This PR removes the multipleNativeToolCalls experiment and enables parallel tool calling by default across the entire codebase.

Changes

Core Updates

  • Task.ts: Changed all parallelToolCalls defaults from false to true (4 locations)
  • presentAssistantMessage.ts: Removed didAlreadyUseTool enforcement logic
  • converters.ts: Updated to enable parallel by default
  • index.ts: Updated JSDoc to reflect new default
  • system.ts: Removed experiments parameter from tool sections

API Provider Updates (13 providers)

Updated all providers to default parallelToolCalls to true:

  • openai-native, openai, openai-codex
  • cerebras, qwen-code, lm-studio
  • unbound, vercel-ai-gateway, zai
  • deepinfra, xai, deepseek
  • base-openai-compatible-provider

Test Updates

  • Updated 10+ test files to expect parallel tool calling by default
  • Updated Anthropic converter tests
  • Removed obsolete didAlreadyUseTool tests
  • Updated 9 prompt snapshot files

Cleanup

  • Removed MULTIPLE_NATIVE_TOOL_CALLS from all 17 i18n locale files
  • Removed multipleNativeToolCalls from experiments test file

Impact

  • Models can now call multiple tools in a single response by default
  • Improves efficiency by reducing back-and-forth
  • Maintains backward compatibility (can be disabled with parallelToolCalls: false)

@daniel-lxs daniel-lxs requested review from cte, jr and mrubens as code owners January 28, 2026 00:57
@dosubot dosubot bot added size:L This PR changes 100-499 lines, ignoring generated files. Enhancement New feature or request labels Jan 28, 2026
@roomote
Copy link
Contributor

roomote bot commented Jan 28, 2026

Rooviewer Clock   See task on Roo Cloud

PR Review Summary

Review Status: ✅ APPROVED

This PR removes the multipleNativeToolCalls experiment and enables parallel tool calling by default across all API providers.

Key Changes Verified

  1. Experiment Removal - Complete and consistent removal from types and config
  2. Provider Updates - All 13+ providers default parallel_tool_calls: true
  3. Task.ts - 4 locations now pass parallelToolCalls: true explicitly
  4. Anthropic Converter - Correctly handles the new default
  5. Tool Use Guidelines - Updated to encourage parallel tool use
  6. presentAssistantMessage.ts - Removed didAlreadyUseTool enforcement logic
  7. i18n Cleanup - All 17 locale files cleaned up
  8. Tests - All tests pass with updated expectations

Issues Found

None - This is a clean, well-structured PR.

Previous reviews

Mention @roomote in a comment to request specific changes to this pull request or fix all unresolved issues.

Copy link
Contributor

@roomote roomote bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thoroughly reviewed all changes. The PR cleanly removes the multipleNativeToolCalls experiment and enables parallel tool calls by default across all 13+ API providers. All tests pass. Well-structured implementation with complete cleanup of i18n files and experiment-related code.

- Remove multipleNativeToolCalls experiment
- Set parallelToolCalls default to true across all providers
- Remove didAlreadyUseTool enforcement in presentAssistantMessage
- Update convertOpenAIToolChoiceToAnthropic to enable parallel by default
- Update all tests to expect parallel tool calling
- Remove MULTIPLE_NATIVE_TOOL_CALLS from i18n locale files
@daniel-lxs daniel-lxs force-pushed the feat/enable-parallel-tool-calls-by-default branch from 291e195 to 6964f62 Compare January 28, 2026 01:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Enhancement New feature or request size:L This PR changes 100-499 lines, ignoring generated files.

Projects

Status: Triage

Development

Successfully merging this pull request may close these issues.

2 participants