P1 Tool Loader Collapses to Cronjob-Only at Runtime — get_environment Not Exported in v0.17.0 (#53667)
Executive Summary
On a fresh v0.17.0 install, the agent loads only the cronjob tool at runtime — even though hermes doctor reports web, terminal, file, and memory as available (all green checkmarks). Every environment-dependent toolset (web, web_search, file, terminal) is silently dropped. The agent literally reports it has "only the cronjob tool." This is a P1 — major feature broken, no workaround. The agent is reduced to a cron scheduler.
Root Cause Analysis
The Missing Export
tools/environments/__init__.py — get_environment is imported by the backend-probe path but is not exported by that module in v0.17.0. When the execution environment can't be established, all environment-dependent tools fall away, leaving only cronjob (the one tool that needs no execution environment).
The Cascade
Why Doctor Can't See It
hermes doctor's per-tool check_fn checks don't exercise the environment probe — they test tool availability in isolation. The runtime tool-selection path hits the probe, fails, and drops the tools. Doctor says green; runtime says cronjob-only.
Survives Every Standard Remedy
| Remedy Attempted | Result |
|---|---|
hermes update to clean 0.17.0 (with history-divergence reset) | FAILED |
uv pip install -e . --force-reinstall of all 60 packages | FAILED |
Switching terminal.backend from docker to local | Shell restored, toolset still cronjob-only |
| Installing ddgs web-search backend | FAILED |
hermes doctor --fix | Reports everything green, cannot see the fault |
Impact Assessment
| Dimension | Severity | Detail |
|---|---|---|
| Agent Functionality | CRITICAL | Agent is effectively brain-dead — can schedule cron jobs but cannot search the web, read/write files, or run commands |
| Detection Gap | CRITICAL | hermes doctor and doctor --fix cannot detect the fault — all checks return green |
| Workaround | NONE | No known workaround — five standard remedies attempted, all failed |
| Fix Complexity | LOW | Export get_environment from tools/environments/__init__.py |
| Scope | WIDE | Affects all fresh v0.17.0 installs — every new user gets a cronjob-only agent |
Proposed Fix
Export get_environment from tools/environments/__init__.py. The function exists in the module but is not part of the public API surface — the backend probe imports it directly and fails when it's not found in the module's exports.
PR: #53680 already open | Reporter willing to submit PR.
Source Evidence
- GitHub Issue: #53667 — Tool Loader Collapses to Cronjob-Only at Runtime
- Opened: June 27, 2026
- Reporter: @TonyC23
- Labels: P1, bug, comp/agent, needs-repro, type/bug
- Hermes: v0.17.0 | OS: Ubuntu 24.04 (DigitalOcean 1GB VPS) | Python: 3.11.15
- Debug: Full debug report with agent.log, gateway.log, and paste.rs links provided
📋 https://hermes-agent.reviews/hermes-tool-loader-collapse-cronjob-only-53667.html
Tracked by hermes-agent.reviews — June 27, 2026