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:
- fn ( Callable[..., Any])
Returns: FunctionTool