-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Add native tool call support #9159
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
e4b8841 to
11b0d4f
Compare
Reviewed commit e8d52f1. This commit contains only a typo fix in the Indonesian localization file. No new issues found. Mention @roomote in a comment to request specific changes to this pull request or fix all unresolved issues. |
| allow_fallbacks: false, | ||
| }, | ||
| }), | ||
| parallel_tool_calls: false, // Ensure only one tool call at a time |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Someday...
mrubens
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I left a couple nitpicky comments but looks good to me overall! Feel free to merge once the conflicts are resolved and the worthwhile parts of my and the bots' comments are addressed 🚀
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
- Add protocol detection in Task.ts to prevent merging parsed tool blocks with native tool blocks when using XML protocol - Fix approval feedback flow in presentAssistantMessage.ts to add feedback directly without calling pushToolResult - Resolves bug introduced in PR #9159 where tool blocks were duplicated, causing false 'already used' errors
Add native tool call support to RCC and OpenRouter, work in progress
Changes
It also includes changes to make the conversation look like this when using native tool calls (without the parallel tool calls since Roo only supports one tool call at a time for now):

Testing
To test native tool call support:
src/core/prompts/toolProtocolResolver.tsImportant
Adds native tool call support, refactoring tools to support both XML and native protocols, and updates system configurations and tests accordingly.
RCCandOpenRouter.tool_callchunk type inApiStreamandsupportsNativeToolsflag inModelInfo.NativeToolCallParserfor converting native tool calls toToolUseformat.RooHandlerandTask.tsto handletool_callchunks and stream processing.RooHandler.ApplyDiffTool,AskFollowupQuestionTool) to support both XML and native protocols.toolProtocolsetting inpackage.jsonto switch between XML and native protocols.ToolProtocolhandling inTask.tsand other files to support new configuration.README.mdand other documentation to reflect new tool call support.This description was created by
for af31053. You can customize this summary. It will automatically update as commits are pushed.