Skip to main content
Vendor tools are third-party API integrations you add to an agent with one pip install and a name in tools=[].

Quick Start

1

Install the plugin

2

Use it in your agent

The tool is auto-discovered by name after install — no imports needed.

How It Works

The agent resolves a tool name to a vendor plugin installed through pip, calls the vendor API, and replies with the result. Installed plugins register under the praisonai.tools entry-point group and become available by name — the same mechanism documented in Custom Tools.

Three-Tier Tool Ecosystem

PraisonAI tools live in three places. Pick the tier that matches where your tool belongs.
“Same shape as Tavily/Exa” is a consistency check, not a routing one. Do not propose a new connector for core on precedent alone.

Keep in Core or Route Out?

A tool only stays in praisonaiagents.tools if both left-column conditions hold. Any right-column condition routes it to PraisonAI-Tools.
A macro / FX data client that uses only urllib still routes to PraisonAI-Tools. The dependency is the external service plus credentials, not the HTTP library.
Your own project logic? Use a custom tool or single-file plugin instead.

Install Flow

Install one or more vendor plugins, then reference each by name.
1

Install plugins

2

Add tool names to your agent


How Auto-Discovery Works

Plugins declare a praisonai.tools entry point in their pyproject.toml; PraisonAI scans these on first use and registers each tool by name.
See the Creating a Pip-Installable Tool Package section for the full publish flow.

Routing is Not Fencing

Installing a vendor plugin decides where the code lives. It does not decide how the LLM treats its results. A vendor result is only fenced (wrapped in <external_tool_result> safety markers) when one of these is true:
  • the tool name is in the module-level EXTERNAL_TOOL_NAMES set, or
  • it was registered with ToolTrustLevel.EXTERNAL.
Register your vendor tool for fencing at startup:
See Prompt Injection Protection for the full trust layer.

Contributing a New Vendor Tool

New vendor integrations belong in PraisonAI-Tools, not in the core SDK. A PR that adds a new *_tools.py module to MervinPraison/PraisonAI core is flagged Repo routing ❌ by the merge gate and redirected. Matching an existing connector pattern (Tavily / Exa / You.com) does not exempt it.
Publish your plugin to PraisonAI-Tools and users install it with a single pip install.

Best Practices

Any public third-party API or SaaS integration goes in PraisonAI-Tools as an installable plugin, not in core.
After pip install, add the tool name to tools=[] — no import line is required.
Read API keys from environment variables inside the plugin; never hard-code credentials.
Project-specific logic belongs in a custom tool or single-file plugin, not a published vendor package.

Custom Tools

Build and publish your own tools

Single-File Plugins

Drop-in local Python plugins

Tools Overview

Browse PraisonAI tool documentation

MCP

Connect external tool servers