Skip to main content

Getting Started

Create a class that extends ToolKit and mark methods with @tool to expose them to the agent.

Filtering Tools

Control which methods are registered at instantiation time.

include_tools — Add Non-Decorated Methods

Adds named methods to the tool set alongside any @tool-decorated ones.

exclude_tools — Remove Tools

Removes named methods. Always takes priority over include_tools and @tool.

Async Tools

Set use_async=True to register all public async methods and drop all sync methods.
Combine with include_tools to keep a specific sync method:

Configuration

Toolkit-Wide Defaults

Pass config fields to __init__ to apply them to every tool in the toolkit.

Per-Tool Config via @tool

Set config on individual methods. The toolkit __init__ overrides overlapping fields.

Building Reusable ToolKits

Accept **kwargs and forward to super().__init__() so users can pass filtering and config parameters without modifying the class.

Runtime Tool Management

Add or remove tools after agent creation.

Toolkit-Level Instructions

Inject custom guidance into the agent’s system prompt that applies to all tools in the toolkit. The LLM sees these instructions before making any tool calls.

Parameter Reference