Tool Reliability
How PraisonAI tools handle errors, retries, and edge cases
from praisonaiagents import Agent, duckduckgo
agent = Agent(name="Researcher", tools=[duckduckgo])
agent.start("Find recent news about tool reliability in AI agents")The user relies on search tools; PraisonAI retries and fallbacks keep the agent run stable when a provider fails.
PraisonAI tools are designed with reliability-first principles.
Search Provider Priority
Automatic Fallback
search_web tries providers in order until one succeeds
Each provider retries 3 times with exponential backoff
Quick Start
- Simple Usage
python from praisonaiagents.tools import search_web # Automatically uses best available provider results = search_web("AI news 2024") - With Configuration
python from praisonaiagents.tools import internet_search # Direct DuckDuckGo access with retry results = internet_search("Python tutorials", retries=3)
Error Handling
Check for errors
results = search_web("query")
if results and "error" in results[0]:
print(f"Failed: {results[0]['error']}")list_processes handles None
System processes may return None for CPU/memory. Defaults to 0.0.
API Keys
| Provider | Environment Variable | Quality |
|---|---|---|
| Tavily | TAVILY_API_KEY | ⭐⭐⭐ Best |
| Exa | EXA_API_KEY | ⭐⭐⭐ Best |
| You.com | YDC_API_KEY | ⭐⭐ Good |
| DuckDuckGo | None needed | ⭐ Basic |
Auto-Approve Tools
approve:
- write_file
- execute_command
agents:
writer:
tools:
- write_fileSchema-level Reliability
Runtime reliability (error handling, retries, fallbacks) complements schema-time reliability for comprehensive tool safety.
Schema validation catches broken tools at development time:
- Invalid OpenAI function schemas
- Missing required fields like
properties - Non-JSON-serializable values
- Duplicate tool names in lists
Runtime reliability handles execution errors:
- Network failures and timeouts
- API rate limits and retries
- Provider fallbacks
- Process crashes
For schema validation details and fixing validation errors, see Tool Schema Validation.