Skip to main content
Tools Doctor diagnoses tool availability, checks dependencies, and reports issues with your PraisonAI tools setup — using the same ToolResolver source of truth as praisonai tools list.

Quick Start

How Tools Are Discovered

ToolsDoctor delegates to ToolResolver.list_available_sources() — the same resolution chain that praisonai tools list and resolve() use at run time. This guarantees that the doctor’s counts and listings match what actually loads when agents run. Bucket mapping:
Registered tools are now visible. As of PR #2642, tools registered via ToolRegistry.register_function() and core SDK entry-point plugins appear in the doctor’s output. Previously they were silently omitted — they resolved correctly at runtime but were invisible to diagnostics.See ToolResolver.list_available_sources() and the source label table for full details.

Fallback Behaviour

When ToolResolver cannot be imported (e.g. the praisonai wrapper package is not installed), the doctor falls back to:
  • _get_builtin_tools() → direct praisonaiagents.tools.TOOL_MAPPINGS scan (unsorted, legacy labels)
  • _get_praisonai_tools_list() → direct praisonai_tools module scan (unsorted, legacy labels)
The fallback path covers the same builtin and praisonai-tools sources, but misses the local, external (resolver-filtered), and registered buckets. Install the praisonai wrapper to get full resolver-backed diagnostics.

Python API

Diagnostic Results

The diagnose() method returns a dictionary with: builtin_tools and praisonai_tools_available are sorted alphabetically — matching praisonai tools list output order. The legacy fallback path returns them in dict-iteration order (unsorted).

Custom Tool Directories

The doctor checks these default directories for custom tools:
  • ~/.praison/tools (primary)
  • ~/.config/praison/tools (XDG-friendly)

Tool Dependencies

The doctor checks optional dependencies for known tools:

Issue Severity Levels

Tools Doctor CLI

Run diagnostics from the command line

Tool Resolver

list_available_sources() and source buckets

Tools

Source label table and CLI reference

Strict Tools Mode

Fail-fast dependency checking for templates