Skip to main content
Give an Agent a tool and it can search, fetch, and act — pass any Python function or built-in tool through tools=[...].

Quick Start

1

Write a tool function

A tool is any typed Python function with a docstring:
2

Give it to an Agent

Inbuild Tools

  • CodeDocsSearchTool
  • CSVSearchTool
  • DirectorySearchTool
  • DirectoryReadTool
  • DOCXSearchTool
  • FileReadTool
  • GithubSearchTool
  • SerperDevTool
  • TXTSearchTool
  • JSONSearchTool
  • MDXSearchTool
  • PDFSearchTool
  • PGSearchTool
  • RagTool
  • ScrapeElementFromWebsiteTool
  • ScrapeWebsiteTool
  • SeleniumScrapingTool
  • WebsiteSearchTool
  • XMLSearchTool
  • YoutubeChannelSearchTool
  • YoutubeVideoSearchTool
Need parameter limits that change at runtime? See Dynamic Tool Schemas to make your tools reflect current configuration.

Example Usage

How It Works

The Agent decides when to call a tool, runs the function, and feeds the result back into the model to complete its answer.

How Tool Names Are Resolved

Pass a tool as a string like tools=["internet_search"] and the core SDK resolves it through a three-step chain, first match wins. An unresolved name is skipped with a warning — it never aborts agent construction:
Graceful skip means a typo or a tool from an uninstalled package no longer crashes your agent — the run continues with the tools that did resolve. Install the missing package (or fix the name) and the next run picks it up.
Resolve names yourself to check before a run:

Best Practices

Add type hints and a one-line docstring to every tool. The Agent uses these to build the tool schema the model sees.
Give each tool one clear job. Small, single-purpose tools are easier for the model to call correctly.
Import ready-made tools from praisonaiagents.tools before writing your own — for example from praisonaiagents.tools import duckduckgo.
Return lists of dicts or plain strings so the model can read the result. Avoid returning large objects or binary blobs.

Quick Start

Build your first agent with a tool.

Models

Choose the model that calls your tools.