from Instance
fun fromInstance(instance: Any, objectMapper: <Error class: unknown class> = jacksonObjectMapper()): MatryoshkaTool
Create a MatryoshkaTool from an instance annotated with @MatryoshkaTools.
The instance's class must be annotated with @MatryoshkaTools and contain methods annotated with @LlmTool. If any @LlmTool methods have a category specified, a category-based MatryoshkaTool is created; otherwise, all tools are exposed when the facade is invoked.
Example - Simple facade:
@MatryoshkaTools(
name = "database_operations",
description = "Database operations. Invoke to see specific tools."
)
public class DatabaseTools {
@LlmTool(description = "Execute a SQL query")
public QueryResult query(String sql) { ... }
@LlmTool(description = "Insert a record")
public InsertResult insert(String table, String data) { ... }
}
MatryoshkaTool tool = MatryoshkaTool.fromInstance(new DatabaseTools());Content copied to clipboard
Example - Category-based:
@MatryoshkaTools(
name = "file_operations",
description = "File operations. Pass category to select tools."
)
public class FileTools {
@LlmTool(description = "Read file", category = "read")
public String readFile(String path) { ... }
@LlmTool(description = "Write file", category = "write")
public void writeFile(String path, String content) { ... }
}
MatryoshkaTool tool = MatryoshkaTool.fromInstance(new FileTools());
// Automatically creates category-based selection with "read" and "write" categoriesContent copied to clipboard
Return
A MatryoshkaTool wrapping the annotated methods
Parameters
instance
The object instance annotated with @MatryoshkaTools
object Mapper
ObjectMapper for JSON parsing (optional)
Throws
if the class is not annotated with @MatryoshkaTools or has no @LlmTool methods