ToolResolver.list_available_sources() is the single entry point for discovering tools from every source — local tools.py, built-in agents tools, the praisonai-tools package, and registered or plugin tools.
As of PR #2642,
praisonai tools discover surfaces the registered bucket in addition to installed packages — including tools contributed by third-party praisonai.tool_sources entry points. A tool that resolves at run time is guaranteed to appear here.Quick Start
Filter by Source Bucket
| Source | What it includes |
|---|---|
local | Functions and classes from your local tools.py |
builtin | Tools shipped with praisonaiagents.tools |
external | Tools from the optional praisonai-tools package |
registered | Tools added via ToolRegistry.register_function() or a praisonai.tool_sources entry-point plugin |
Check a Single Tool
CLI Equivalent
How It Works
list_available_sources() reflects the same four-source chain that resolve() uses at run time. Every name returned can be passed to resolve(name) and will load successfully — no more “visible in list, fails at runtime” mismatches.
Legacy Discovery (Pre-#2476)
Raw importlib / TOOL_MAPPINGS pattern (deprecated)
Raw importlib / TOOL_MAPPINGS pattern (deprecated)
Before Use
ToolResolver.list_available_sources() was introduced in PR #2476, each surface walked its own partial subset:ToolResolver.list_available_sources() instead — it covers all four sources in a single call.Related
Tools
Source label table and —source filter
Tool Resolver
Full resolver API and source buckets
Tools Doctor
Diagnostic output backed by the resolver

