Toolkit class provides a way to group and manage multiple tools (functions) together. It handles tool registration, filtering, caching, and execution control.
Import
from agno.tools.toolkit import Toolkit
Constructor
Parameters
| Parameter | Type | Description |
|---|---|---|
name | str | A descriptive name for the toolkit. |
tools | List[Callable] | List of callable functions to include in the toolkit. |
instructions | str | Instructions for using the toolkit. Can be added to agent context. |
add_instructions | bool | Whether to add toolkit instructions to the agent’s context. |
include_tools | list[str] | List of tool names to include from the toolkit. If specified, only these tools will be registered. |
exclude_tools | list[str] | List of tool names to exclude from the toolkit. These tools will not be registered. |
requires_confirmation_tools | list[str] | List of tool names that require user confirmation before execution. |
external_execution_required_tools | list[str] | List of tool names that will be executed outside of the agent loop. |
stop_after_tool_call_tools | List[str] | List of tool names that should stop the agent after execution. |
show_result_tools | List[str] | List of tool names whose results should be shown to the user. |
cache_results | bool | Enable in-memory caching of function results. |
cache_ttl | int | Time-to-live for cached results in seconds (default: 1 hour). |
cache_dir | str | Directory to store cache files. Defaults to system temp directory. |
auto_register | bool | Whether to automatically register all tools in the toolkit upon initialization. |
Usage Examples
Basic Toolkit
from agno.tools.toolkit import Toolkit
class WebSearchTools(Toolkit):
def __init__(self, **kwargs):
tools = [
self.search_web,
]
super().__init__(name="web_search_tools", tools=tools, **kwargs)
def search_web(self, query: str) -> str:
"""Search the web for information."""
return f"Searching for: {query}"
Toolkit with Instructions
class CalculatorTools(Toolkit):
def __init__(self, **kwargs):
tools = [
self.add,
self.subtract,
self.multiply,
self.divide,
]
instructions = "Use these tools to perform calculations. Always validate inputs before execution."
super().__init__(name="calculator_tools", tools=tools, instructions=instructions, **kwargs)
def add(self, a: float, b: float) -> float:
"""Add two numbers and return the result."""
return a + b
def subtract(self, a: float, b: float) -> float:
"""Subtract two numbers and return the result."""
return a - b
def multiply(self, a: float, b: float) -> float:
"""Multiply two numbers and return the result."""
return a * b
def divide(self, a: float, b: float) -> float:
"""Divide two numbers and return the result."""
return a / b