Package com.embabel.agent.api.tool
Interface TypedToolFactory
-
- All Implemented Interfaces:
public interface TypedToolFactoryFactory interface for creating strongly typed tools. Extended by Tool.Companion to provide Tool.fromFunction methods.
Example (Java):
record AddRequest(int a, int b) {} record AddResult(int sum) {} Tool tool = Tool.fromFunction( "add", "Add two numbers", AddRequest.class, AddResult.class, input -> new AddResult(input.a() + input.b()) );Example (Kotlin):
data class AddRequest(val a: Int, val b: Int) data class AddResult(val sum: Int) val tool = Tool.fromFunction<AddRequest, AddResult>( name = "add", description = "Add two numbers", ) { input -> AddResult(input.a + input.b) }
-
-
Method Summary
Modifier and Type Method Description <I extends Any, O extends Any> ToolfromFunction(String name, String description, Class<I> inputType, Class<O> outputType, Function<I, O> function)Create a tool with strongly typed input and output (Java-friendly). <I extends Any, O extends Any> ToolfromFunction(String name, String description, Class<I> inputType, Class<O> outputType, Tool.Metadata metadata, Function<I, O> function)Create a tool with strongly typed input and output with custom metadata (Java-friendly). <I extends Any, O extends Any> ToolfromFunction(String name, String description, Class<I> inputType, Class<O> outputType, Tool.Metadata metadata, ObjectMapper objectMapper, Function<I, O> function)Create a tool with strongly typed input and output with custom ObjectMapper (Java-friendly). -
-
Method Detail
-
fromFunction
<I extends Any, O extends Any> Tool fromFunction(String name, String description, Class<I> inputType, Class<O> outputType, Function<I, O> function)
Create a tool with strongly typed input and output (Java-friendly).
- Parameters:
name- Tool namedescription- Tool descriptioninputType- Class of the input typeoutputType- Class of the output typefunction- Function that processes typed input and returns typed output- Returns:
A new Tool instance
-
fromFunction
<I extends Any, O extends Any> Tool fromFunction(String name, String description, Class<I> inputType, Class<O> outputType, Tool.Metadata metadata, Function<I, O> function)
Create a tool with strongly typed input and output with custom metadata (Java-friendly).
- Parameters:
name- Tool namedescription- Tool descriptioninputType- Class of the input typeoutputType- Class of the output typemetadata- Tool metadatafunction- Function that processes typed input and returns typed output- Returns:
A new Tool instance
-
fromFunction
<I extends Any, O extends Any> Tool fromFunction(String name, String description, Class<I> inputType, Class<O> outputType, Tool.Metadata metadata, ObjectMapper objectMapper, Function<I, O> function)
Create a tool with strongly typed input and output with custom ObjectMapper (Java-friendly).
- Parameters:
name- Tool namedescription- Tool descriptioninputType- Class of the input typeoutputType- Class of the output typemetadata- Tool metadataobjectMapper- ObjectMapper for JSON serialization/deserializationfunction- Function that processes typed input and returns typed output- Returns:
A new Tool instance
-
-
-
-