Use this file to discover all available pages before exploring further.
Multi-environment agent setups create tool conflicts when different capabilities overlap or shadow each other. HERMES_ONLY_TOOLS provides deterministic tool filtering for production deployments.
HERMES_ONLY_TOOLS requires exact spelling matching registration names. Typos silently drop tools from availability.
# ✅ Correct - exact tool namesos.environ["HERMES_ONLY_TOOLS"] = "web_search,file_read,send_email"# ❌ Wrong - typos cause tools to be filtered outos.environ["HERMES_ONLY_TOOLS"] = "websearch,file-read,sendemail"
Set Before Agent Creation
Environment variables must be set before creating agents. Runtime changes don’t affect existing agents.
import osfrom praisonaiagents import Agent# ✅ Set before agent creationos.environ["HERMES_ONLY_TOOLS"] = "web_search,file_read"agent = Agent(name="Test") # Gets filtered tools# ❌ Setting after creation has no effectagent2 = Agent(name="Test2") # Gets all toolsos.environ["HERMES_ONLY_TOOLS"] = "web_search" # Ignored for agent2
Monitor Tool Availability
Log or validate that required tools are available after filtering to catch configuration issues.
import osimport loggingfrom praisonaiagents import Agentos.environ["HERMES_ONLY_TOOLS"] = "web_search,send_email"agent = Agent(name="Monitor Agent")available_tools = [tool.name for tool in agent.tools]required_tools = ["web_search", "send_email"]missing_tools = [t for t in required_tools if t not in available_tools]if missing_tools: logging.error(f"Missing required tools: {missing_tools}") raise ValueError(f"Required tools not available: {missing_tools}")
Use for Production Deployments
HERMES_ONLY_TOOLS is designed for production where deterministic behavior is critical. Consider cost, security, and reliability implications.
# Production configurationPRODUCTION_TOOLS = [ "web_search", # Core research "send_email", # Communication "file_read", # Data access "schedule_task" # Workflow]# Set in deployment configos.environ["HERMES_ONLY_TOOLS"] = ",".join(PRODUCTION_TOOLS)
# Error scenarioos.environ["HERMES_ONLY_TOOLS"] = "web_search"agent = Agent(name="Test")# Agent tries to use 'send_email' but it's filtered outresult = agent.start("Search web and send email") # Will fail or adapt
Solutions:
Add missing tool to whitelist: "web_search,send_email"
Update agent instructions to use only available tools