tools.tool - Tinker Documentation

tinker_cookbook.tool_use.tools.tool

tinker_cookbook.tool_use.tools.tool( fn)

Decorator to create a tool from a function or method.

The decorated function must return a ToolResult. Use simple_tool_result() helper for basic cases, or construct ToolResult directly for metrics/metadata.

Usage:

@tool
async def search(query: Annotated[str, "The search query"]) -> ToolResult:
    '''Search for information.'''
    results = await do_search(query)
    return simple_tool_result(
        json.dumps({"results": results}),
        metrics={"result_count": len(results)}
    )

As class method with shared state:

class MySharedStateTools:
def init(self, api_key: str):
self.api_key = api_key

@tool
async def search(self, query: Annotated[str, "Query"]) -> ToolResult:
    '''Search for information.'''
    results = await do_search(query, api_key=self.api_key)
    return simple_tool_result(json.dumps(results))

Parameters:

Returns: FunctionTool