Experimental tools: add runTools page-side agent loop helper - #34
Merged
Conversation
- Introduced the `runTools` function to facilitate a structured loop for executing tools within the application, allowing for multiple rounds of tool calls and responses. - Implemented validation for input options, ensuring that required parameters such as messages and maxRounds are correctly provided. - Enhanced error handling for aborted requests and invalid tool calls, improving robustness during tool interactions. - Updated the global `inference` object to include the new `runTools` function, making it accessible for use in the application. These changes significantly improve the management of tool interactions, enabling more complex and flexible use cases in multi-turn conversations.
- Updated the `serializeToolResult` function in `run-tools.js` and `inject.js` to ensure that undefined values are serialized as the string "null" instead of returning undefined. This change improves consistency in the output of serialized tool results. - Added a test case in `run-tools.test.js` to verify the correct serialization of undefined values, ensuring robust functionality and preventing potential issues in tool interactions. These modifications enhance the reliability of tool result serialization, improving the overall handling of tool outputs in the application.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
window.inference.experimental.runToolsto orchestrate the multi-turn function-tool loop (page-ownedexecutehandlers; Bridge still does not run tools).src/run-tools.jswith unit tests (happy path, missing executor, maxRounds, abort, serialization).window.inference.requestunchanged.Resolves #26
Test plan
npm test(or project test script) and confirmtest/run-tools.test.jspasseswindow.inference.experimental.runToolswith a simpleexecutemap and verify tool rounds + final textexecutehandler andmaxRoundsexhaustion throw as expectedwindow.inference.requestbehavior is unchangedMade with Cursor