Package com.embabel.agent.tools.math
Class MathTools
-
- All Implemented Interfaces:
-
com.embabel.agent.core.ToolGroup,com.embabel.agent.core.ToolPublisher,com.embabel.agent.core.ToolSpec,com.embabel.common.core.types.AssetCoordinates,com.embabel.common.core.types.HasInfoString,com.embabel.common.core.types.Named
public final class MathTools implements ToolGroup, AssetCoordinates
Math-related tools exposed as an UnfoldingTool.
When used as a tool group, exposes a single "math" UnfoldingTool. When the LLM invokes this tool, it reveals the individual math operations (add, subtract, multiply, divide, mean, min, max, floor, ceiling, round).
Can be used in two ways:
As a tool group - register with the platform for automatic resolution
Directly - use unfoldingTool or innerTools with PromptRunner
Example usage:
// As a tool group (exposes single UnfoldingTool) val toolGroup: ToolGroup = MathTools() // Direct use of the UnfoldingTool ai.withTool(MathTools().unfoldingTool) // Direct use of inner tools (bypasses UnfoldingTool) ai.withTools(MathTools().innerTools)
-
-
Field Summary
Fields Modifier and Type Field Description private final ToolGroupDescriptiongroupDescriptionprivate final Stringproviderprivate final Semverversionprivate final Stringnameprivate final Set<ToolGroupPermission>permissionsprivate final ToolGroupMetadatametadataprivate final List<Tool>innerToolsprivate final UnfoldingToolunfoldingToolprivate final List<Tool>tools
-
Constructor Summary
Constructors Constructor Description MathTools()
-
Method Summary
Modifier and Type Method Description final ToolGroupDescriptiongetGroupDescription()StringgetProvider()SemvergetVersion()StringgetName()final Set<ToolGroupPermission>getPermissions()ToolGroupMetadatagetMetadata()final List<Tool>getInnerTools()The inner tools - individual math operations. final UnfoldingToolgetUnfoldingTool()The UnfoldingTool facade that wraps all math operations. List<Tool>getTools()final UnfoldingToolcreate()Create the UnfoldingTool for math operations. final Doubleadd(Double a, Double b)final Doublesubtract(Double a, Double b)final Doublemultiply(Double a, Double b)final Stringdivide(Double a, Double b)final Doublemean(List<Double> numbers)final Doublemin(List<Double> numbers)final Doublemax(List<Double> numbers)final Doublefloor(Double number)final Doubleceiling(Double number)final Doubleround(Double number)-
-
Method Detail
-
getGroupDescription
final ToolGroupDescription getGroupDescription()
-
getProvider
String getProvider()
-
getVersion
Semver getVersion()
-
getPermissions
final Set<ToolGroupPermission> getPermissions()
-
getMetadata
ToolGroupMetadata getMetadata()
-
getInnerTools
final List<Tool> getInnerTools()
The inner tools - individual math operations. These are the tools that get revealed when the UnfoldingTool is invoked.
-
getUnfoldingTool
final UnfoldingTool getUnfoldingTool()
The UnfoldingTool facade that wraps all math operations.
-
create
final UnfoldingTool create()
Create the UnfoldingTool for math operations. Convenience method for Java interop.
-
-
-
-