Add validation for Tool annotation names#3887
Closed
academey wants to merge 2 commits intospring-projects:mainfrom
Closed
Add validation for Tool annotation names#3887academey wants to merge 2 commits intospring-projects:mainfrom
academey wants to merge 2 commits intospring-projects:mainfrom
Conversation
- Add regex pattern validation for tool names in ToolUtils - Tool names can only contain alphanumeric characters, underscores, hyphens, and dots - Add comprehensive unit tests for tool name validation - Update @tool annotation documentation with naming constraints - Throw IllegalArgumentException for invalid tool names with clear error message This prevents runtime failures when LLMs (like GPT 4.1-mini) encounter tool names with spaces or special characters that they cannot process. Fixes spring-projects#3832 Signed-off-by: Hyunjoon Park <academey@gmail.com>
Based on feedback, the validation has been changed from throwing an exception to logging a warning. This approach is more flexible as the Tool annotation is generic and not specific to any particular LLM. Changes: - Modified ToolUtils to log warnings instead of throwing exceptions - Updated Tool annotation JavaDoc to recommend naming conventions - Adjusted tests to verify tool names are returned (no exceptions thrown) - Added test for unicode characters to support non-English contexts The warning message guides users toward compatible naming while allowing flexibility for different LLMs and use cases. Fixes spring-projects#3832 Signed-off-by: Hyunjoon Park <academey@gmail.com>
Contributor
Author
|
@ilayaperumalg thanks for review! |
Member
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.
Add warning-based validation for tool names in ToolUtils to help users avoid compatibility issues with certain LLMs.
What this PR does:
validateToolName()method in ToolUtils that logs warnings for non-recommended tool namesImplementation details:
Example warning:
Tool name 'invalid tool name' may not be compatible with some LLMs (e.g., OpenAI). Consider using only alphanumeric characters, underscores, hyphens, and dots.
Fixes #3832
Signed-off-by: Hyunjoon Park academey@gmail.com