Tools Module
The tools module provides a comprehensive system for creating and using tools with agents. It includes built-in tools, a decorator for creating custom tools, and a plugin system for extensibility.Installation
Quick Start
Using the @tool Decorator
Using Built-in Tools
Classes
BaseTool
Abstract base class for creating custom tools.Attributes
| Attribute | Type | Description |
|---|---|---|
name | str | Unique identifier for the tool |
description | str | Human-readable description (used by LLM) |
version | str | Tool version string (default: “1.0.0”) |
parameters | dict | JSON Schema for parameters (auto-generated if not provided) |
Methods
| Method | Description |
|---|---|
run(**kwargs) | Execute the tool (must be implemented) |
get_schema() | Get OpenAI-compatible function schema |
validate() | Validate tool configuration |
FunctionTool
A BaseTool wrapper for plain functions, created automatically by the@tool decorator.
ToolResult
Wrapper for tool execution results.Attributes
| Attribute | Type | Description |
|---|---|---|
output | Any | The tool’s output |
success | bool | Whether execution succeeded |
error | str | None | Error message if failed |
metadata | dict | Additional metadata |
ToolValidationError
Exception raised when a tool fails validation.Decorators
@tool
Convert a function into a tool.Parameters
| Parameter | Type | Description |
|---|---|---|
name | str | Override the tool name (default: function name) |
description | str | Override description (default: function docstring) |
version | str | Tool version (default: “1.0.0”) |
Built-in Tools
Search Tools
| Tool | Description | API Key Required |
|---|---|---|
duckduckgo | DuckDuckGo web search | No |
tavily_search | Tavily AI search | TAVILY_API_KEY |
exa_search | Exa semantic search | EXA_API_KEY |
ydc_search | You.com search | YDC_API_KEY |
searxng_search | SearXNG search | No |
search_web | Unified search (auto-fallback) | Varies |
Knowledge Tools
| Tool | Description |
|---|---|
wiki_search | Wikipedia search |
wiki_summary | Wikipedia summaries |
search_arxiv | arXiv paper search |
get_arxiv_paper | Get arXiv paper details |
Web Crawling Tools
| Tool | Description |
|---|---|
crawl4ai | Async web crawling |
scrape_page | Scrape web pages |
extract_links | Extract links from pages |
get_article | Extract article content |
File Tools
| Tool | Description |
|---|---|
read_file | Read file contents |
write_file | Write to files |
list_files | List directory contents |
read_csv | Read CSV files |
write_csv | Write CSV files |
read_json | Read JSON files |
write_json | Write JSON files |
read_yaml | Read YAML files |
read_xml | Read XML files |
read_excel | Read Excel files |
Data Tools
| Tool | Description |
|---|---|
query | DuckDB SQL queries |
filter_data | Pandas data filtering |
get_summary | Data summaries |
pivot_table | Create pivot tables |
Calculator Tools
| Tool | Description |
|---|---|
evaluate | Evaluate math expressions |
solve_equation | Solve equations |
convert_units | Unit conversion |
calculate_statistics | Statistical calculations |
Shell Tools
| Tool | Description |
|---|---|
execute_command | Execute shell commands |
list_processes | List running processes |
get_system_info | Get system information |
Code Tools
| Tool | Description |
|---|---|
execute_code | Execute Python code |
analyze_code | Analyze code structure |
format_code | Format Python code |
lint_code | Lint Python code |

