Class SimpleAwaitableTypedTool

  • All Implemented Interfaces:
    com.embabel.agent.api.tool.Tool , com.embabel.agent.api.tool.ToolInfo

    
    public final class SimpleAwaitableTypedTool<I extends Object, O extends Object, P extends Object>
    extends TypedTool<I, O>
                        

    Simple implementation of AwaitableTypedTool using functional factories.

    Example:

    val tool = SimpleAwaitableTypedTool(
        name = "delete_file",
        description = "Delete a file",
        inputType = DeleteRequest::class.java,
        outputType = DeleteResult::class.java,
        awaitableFactory = { input ->
            ConfirmationRequest(input, "Delete ${input.path}?")
        },
        executor = { input ->
            DeleteResult(deleted = true, path = input.path)
        }
    )