feat: Implement automatic tool discovery for config-based agents #381
+732
−173
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.
feat: Implement automatic tool discovery for config-based agents
This change allows
ConfigAgentLoader
to scan agent YAML files for tool names that are fully qualified Java class or method/field references. It automatically registers these tools in theComponentRegistry
.The following patterns for tool names in the YAML are supported:
Class Name: e.g.,
com.example.MyTool
args
are provided in the YAML, a staticfromConfig(ToolArgsConfig)
method must exist.BaseTool
.Fully Qualified Static Field: e.g.,
com.example.MyTool.MY_TOOL_INSTANCE
MY_TOOL_INSTANCE
from the classcom.example.MyTool
.BaseTool
.Registry Name: e.g.,
my_custom_tool
ComponentRegistry
.ComponentRegistry
can be specified via the system property-Dregistry=com.example.CustomRegistry
.Usage Example: