Skip to main content
Tools let agents read data, call APIs, and run code—this hub links every tools how-to.
from praisonaiagents import Agent, tool

@tool
def ping() -> str:
    """Health check tool."""
    return "pong"

agent = Agent(name="Tools Intro", tools=[ping])
agent.start("Run the ping tool.")
The user follows a tools guide, attaches capabilities to agents, and validates behaviour with doctor.

Quick Start

1

Simple Usage

Decorate a function with @tool and hand it to an agent.
from praisonaiagents import Agent, tool

@tool
def ping() -> str:
    """Health check tool."""
    return "pong"

agent = Agent(name="Tools Intro", tools=[ping])
agent.start("Run the ping tool.")
2

With Configuration

Add tools from a package or file with the CLI, then verify resolution.
praisonai tools add ./my_tools.py
praisonai tools doctor

How It Works


Tools Guides

Learn how to create, configure, debug, and manage tools in PraisonAI.

Create Custom Tools

Build your own tools from scratch

Assign Tools to Templates

Configure tools for templates

Debug Tools

Troubleshoot tool issues

Different Ways to Create

Explore all tool creation methods

Remote Tools from GitHub

Use tools from GitHub and remote URLs

Quick Reference

TaskCommand
List toolspraisonai tools list
Add packagepraisonai tools add pandas
Add filepraisonai tools add ./my_tools.py
Add from GitHubpraisonai tools add github:user/repo
Add sourcepraisonai tools add-sources <source>
Get infopraisonai tools info <name>
Searchpraisonai tools search <query>
Doctorpraisonai tools doctor
Resolvepraisonai tools resolve <name>
Discoverpraisonai tools discover
Show sourcespraisonai tools show-sources

Best Practices

@tool registers a function as agent-callable and reads its type hints and docstring to build the schema — the fastest path to a working tool.
The model relies on type hints to call tools correctly. Include them, plus a JSON-serializable return type.
praisonai tools doctor walks the full resolver chain, so it confirms a tool is reachable before an agent tries to call it.