Back to Signal Feed
CodeTracked since May 20, 2026

Canonicalize HERMES_ONLY_TOOLS filtering to prevent tool shadowing

This change adds a single authoritative `HermesToolFilter` implementation and integrates it into PraisonAI’s tool registry, CLI loading, and export flow so `HERMES_ONLY_TOOLS` now has deterministic behavior. It specifically addresses overlapping tool names across environments by defining clear visibility rules and diagnostics, with unknown or invalid tool lists handled consistently.

HERMES_ONLY_TOOLSHermesToolFilterpraisonaiagents/hermes_filter.pytool registry

What Happened

  • This change adds a single authoritative `HermesToolFilter` implementation and integrates it into PraisonAI’s tool registry, CLI loading, and export flow so `HERMES_ONLY_TOOLS` now has deterministic behavior. It specifically addresses overlapping tool names across environments by defining clear visibility rules and diagnostics, with unknown or invalid tool lists handled consistently.
  • This change adds a single authoritative `HermesToolFilter` implementation and integrates it into PraisonAI’s tool registry, CLI loading, and export flow so `HERMES_ONLY_TOOLS` now has deterministic behavior. It specifically addresses overlapping tool names across environments by defining clear visibility rules and diagnostics, with unknown or invalid tool lists handled consistently.
  • 1 evidence item attached for review.

What is Different

Before

Scattered source updates, isolated context, and manual follow-up across multiple feeds.

Now

Implemented the canonical filter module for tool whitelisting in `praisonaiagents/hermes_filter.py`, defined concrete semantics for unset/empty/explicit values, added startup diagnostics, integrated filtering into tool registry and CLI loading paths, and added unit/integration test coverage and configuration docs.

Why Track This

Why It Matters

Operators running PraisonAI across multiple environments should get more predictable tool behavior, because overlapping tool names are now filtered consistently and agents are less likely to execute the wrong tool in production workflows. Technically, PR #1700 introduces centralized whitelisting via `HERMES_ONLY_TOOLS` (all tools vs. explicit list), logs startup diagnostics for collisions, and applies dev-mode warning+strip plus CI-mode strict-fail behavior for unknown tool names. Watch next how existing deployments with legacy environment setups react to the stricter unknown-tool checks and whether onboarding docs and env files are updated before broad rollout.

Impact

Operators running PraisonAI across multiple environments should get more predictable tool behavior, because overlapping tool names are now filtered consistently and agents are less likely to execute the wrong tool in production workflows. Technically, PR #1700 introduces centralized whitelisting via `HERMES_ONLY_TOOLS` (all tools vs. explicit list), logs startup diagnostics for collisions, and applies dev-mode warning+strip plus CI-mode strict-fail behavior for unknown tool names. Watch next how existing deployments with legacy environment setups react to the stricter unknown-tool checks and whether onboarding docs and env files are updated before broad rollout.

What To Watch Next

  • Watch whether HERMES_ONLY_TOOLS becomes a repeated pattern.
  • Track follow-up changes around Tool Calling.
  • Compare future signals against this evidence trail.
  • Re-check risk flags: ci_strict_unknown_tool_failures, empty_how_many_tools_env_breaks_startup.
Open Topic TimelineOpen Technical EventOpen Original Sourceci_strict_unknown_tool_failures / empty_how_many_tools_env_breaks_startup / legacy_env_shadowing_assumptions_in_existing_deployments

Supporting Evidence