Skip to main content

How to Use Tools Doctor

1

Run Tools Doctor

praisonai tools doctor
2

Check Specific Tool

praisonai tools info shell_tool
3

Review Diagnostics

Doctor output shows:
  • Tool availability
  • Missing dependencies
  • Configuration issues
  • Import errors
4

Fix Identified Issues

Install missing packages or fix configuration based on doctor output.

How to Debug Tool Resolution

1

Resolve Tool Name

praisonai tools resolve my_tool
2

Check Tool Sources

praisonai tools show-sources
3

Discover Available Tools

praisonai tools discover
4

Search for Tools

praisonai tools search "search"

How to Debug Tools with Python

1

Test Tool Directly

from my_tools import my_custom_tool

# Test with sample input
result = my_custom_tool("test query")
print(f"Result: {result}")
print(f"Type: {type(result)}")
2

Check Tool Signature

import inspect

sig = inspect.signature(my_custom_tool)
print(f"Parameters: {sig.parameters}")
print(f"Return annotation: {sig.return_annotation}")
3

Validate Docstring

print(f"Docstring: {my_custom_tool.__doc__}")
4

Test with Agent

from praisonaiagents import Agent
import logging

logging.basicConfig(level=logging.DEBUG)

agent = Agent(
    name="tester",
    tools=[my_custom_tool]
)

result = agent.start("Test the tool")

How to Debug Tool Registry

1

Create Registry

from praisonai.templates.tool_override import create_tool_registry_with_overrides

registry = create_tool_registry_with_overrides(include_defaults=True)
2

List All Tools

print("Available tools:")
for name in sorted(registry.keys()):
    print(f"  - {name}")
3

Check Specific Tool

tool_name = "shell_tool"
if tool_name in registry:
    tool = registry[tool_name]
    print(f"Found: {tool}")
    print(f"Module: {tool.__module__}")
else:
    print(f"Tool '{tool_name}' not found")

Common Tool Issues

IssueCauseSolution
Tool not foundNot in registryAdd to tools list or tools_sources
Import errorMissing dependencyInstall required package
Type errorWrong parameter typesAdd proper type hints
No docstringMissing documentationAdd docstring with Args section
Not serializableComplex return typeReturn dict/list/str instead

Debug CLI Commands

praisonai tools doctor              # Run diagnostics
praisonai tools list                # List all tools
praisonai tools info <name>         # Get tool details
praisonai tools resolve <name>      # Resolve tool location
praisonai tools search <query>      # Search for tools
praisonai tools show-sources        # Show tool sources
praisonai tools discover            # Discover from packages