-
-
Notifications
You must be signed in to change notification settings - Fork 505
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
Enhance agent tool function registration with direct function support #402
Conversation
- Added support for directly registering tool functions without global declaration - Implemented auto-generation of tool definitions for registered functions - Created new example scripts demonstrating direct function tool registration - Updated package version to 1.0.18 - Expanded Agent configuration to support `toolFunctions` property - Added type exports for improved type safety
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.
Hello @MervinPraison, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!
Summary of Changes
This pull request enhances the agent tool function registration process by allowing direct registration of tool functions without requiring global declaration. It implements auto-generation of tool definitions for registered functions, adds example scripts demonstrating the new functionality, updates the package version, expands the Agent configuration to support a toolFunctions
property, and adds type exports for improved type safety. The changes primarily affect the src/agent/proxy.ts
and src/agent/simple.ts
files, along with the addition of new example files.
Highlights
- Direct Tool Function Registration: The pull request introduces the ability to directly register tool functions within the Agent configuration using the
toolFunctions
property, eliminating the need for global declarations. - Auto-generation of Tool Definitions: The system now automatically generates tool definitions for registered functions if they are not already provided, simplifying the tool registration process.
- New Example Scripts: New example scripts, such as
direct-function-tools.ts
, demonstrate the usage of direct function tool registration. - Agent Configuration Update: The Agent configuration is expanded to include the
toolFunctions
property, allowing for direct registration of tool functions.
Changelog
Click here to see the changelog
- src/praisonai-ts/examples/simple/direct-function-tools.ts
- Added a new example demonstrating direct function registration for agent tools. The example defines
getWeather
andgetTime
functions and registers them directly with the agent, showcasing how to use tool functions without global declarations (lines 1-35).
- Added a new example demonstrating direct function registration for agent tools. The example defines
- src/praisonai-ts/examples/simple/multi-tool-call.ts
- No functional changes, only adding a new example file.
- src/praisonai-ts/examples/simple/single-agent-tool-call.ts
- No functional changes, only adding a new example file.
- src/praisonai-ts/package.json
- Updated the package version from 1.0.17 to 1.0.18 (line 3).
- Updated praisonai dependency from 1.0.12 to 1.0.17 (line 65).
- src/praisonai-ts/src/agent/index.ts
- Added type exports for
ProxyAgentConfig
andSimpleAgentConfig
to improve type safety (lines 9, 12).
- Added type exports for
- src/praisonai-ts/src/agent/proxy.ts
- Added
toolFunctions
property to theProxyAgentConfig
interface, allowing for direct registration of tool functions (line 9). - Modified the Agent constructor to pass the
toolFunctions
configuration to the SimpleAgent (line 40).
- Added
- src/praisonai-ts/src/agent/simple.ts
- Added
toolFunctions
property to theSimpleAgentConfig
interface (line 14). - Modified the Agent constructor to register directly provided tool functions and auto-generate tool definitions if not already provided (lines 44-54).
- Added
hasToolDefinition
method to check if a tool definition exists for a given function name (lines 75-89). - Added
addAutoGeneratedToolDefinition
method to auto-generate a tool definition based on the function's parameters (lines 91-143).
- Added
- src/praisonai-ts/tests/development/simple/direct-function-tools.ts
- Added a new test file demonstrating direct function registration for agent tools. This mirrors the example in
src/praisonai-ts/examples/simple/direct-function-tools.ts
but is located in the test directory (lines 1-35).
- Added a new test file demonstrating direct function registration for agent tools. This mirrors the example in
Using Gemini Code Assist
The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.
Invoking Gemini
You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command>
or @gemini-code-assist <command>
. Below is a summary of the supported commands.
Feature | Command | Description |
---|---|---|
Code Review | /gemini review |
Performs a code review for the current pull request in its current state. |
Pull Request Summary | /gemini summary |
Provides a summary of the current pull request in its current state. |
Comment | @gemini-code-assist | Responds in comments when explicitly tagged, both in issue comments and review comments. |
Help | /gemini help |
Displays a list of available commands. |
Customization
To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/
folder in the base of the repository. Detailed instructions can be found here.
Limitations & Feedback
Gemini Code Assist is currently in preview and may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments to provide feedback.
You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.
Did you know?
The first high-level programming language was Fortran, created in the mid-1950s by John Backus and his team at IBM.
Footnotes
-
Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩
✅ Deploy Preview for praisonai canceled.
|
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.
Code Review
This pull request introduces a significant enhancement by allowing direct registration of tool functions, simplifying the agent configuration and improving code clarity. The auto-generation of tool definitions is a valuable addition. The examples provided are helpful in understanding the new feature. Overall, the changes are well-structured and contribute positively to the project.
Merge Readiness
The changes introduced in this pull request are well-structured and enhance the functionality of the agent framework. The addition of direct function registration simplifies agent configuration and improves code clarity. The auto-generation of tool definitions is a valuable feature. The provided examples are helpful in understanding the new functionality. I am unable to approve this pull request, and recommend that others review and approve this code before merging. Given the absence of any CRITICAL or HIGH severity issues, the pull request appears to be in good shape for merging.
toolFunctions
property