Python API
DependencyChecker
Checking Individual Dependencies
Tool Source Values
check_tool() delegates to ToolResolver.list_available_sources() — the same resolution chain used at agent run time. The source field reflects where the tool actually comes from:
| Source | Where it comes from | Notes |
|---|---|---|
local | Your local tools.py (via ToolResolver) | Requires PRAISONAI_ALLOW_LOCAL_TOOLS=true |
builtin | praisonaiagents.tools (via ToolResolver) | No extra install needed |
external | praisonai-tools package (via ToolResolver) | Requires pip install praisonai-tools |
registered | Wrapper ToolRegistry or core SDK entry-point plugin (via ToolResolver) | Tools registered via register_function() |
resolver | Resolvable but not attributed to a bucket (rare) | Conservative fallback |
custom | Custom tool directories (custom_tool_dirs=[...]) | Always honored unconditionally |
builtin / praisonai-tools / custom | Legacy fallback path | Only appears when ToolResolver cannot be imported |
Tools registered via
ToolRegistry.register_function() and core SDK entry-point plugins are now correctly reported as available. Before PR #2642, these tools resolved correctly at agent run time but were reported as “not installed” by the dependency checker. The checker now delegates to ToolResolver — the same source of truth used by resolve() — so diagnostic output matches runtime behaviour.If you are migrating from an earlier version and previously saw tools reported as missing in strict mode, verify those tools are registered via ToolRegistry or a praisonai.tool_sources entry-point plugin — they will now appear as available with source: "registered".Getting Install Hints
ToolRegistry or entry-point plugins will not trigger install hints.
StrictModeError
When strict mode fails,StrictModeError is raised with:
| Attribute | Type | Description |
|---|---|---|
message | str | Human-readable error message |
missing_items | dict | Dict with ‘tools’, ‘packages’, ‘env’ lists |
Custom Tool Directories
The checker always honorscustom_tool_dirs on top of the resolver’s chain:
ToolResolver chain — they are checked unconditionally so template-local tool directories always resolve regardless of resolver availability.
Related
Tools Doctor
Full tool availability diagnostics
Tool Resolver
Resolution chain and source labels
Tools
Source label table and CLI reference

