🔬 Primary Lab Verification - Hermes Agent Lab

delegation.base_url Ignored at Runtime — Two Bugs Block Multi-Host Delegation

P2 Issue #50199 — Opened June 21, 2026 — Hermes Agent Lab, hermes-agent.reviews

🔍 The Problem

Two independent bugs completely block delegating work from a primary Hermes agent to a worker model on a different machine. Bug 1: the worker's GPU never lights up because base_url is ignored. Bug 2: even after patching Bug 1, the worker's results are silently dropped by the WebUI formatter. The delegation-to-remote-worker use case is completely broken on native installs. Reporter provided full root cause analysis, diagnostic logging, working patches for both bugs, and cross-references to related issues.

🔧 Bug 1: base_url Ignored — CLI_CONFIG Overrides config.yaml

The Worker's GPU Never Lights Up

tools/delegate_tool.py::_load_config() prefers the empty in-memory CLI_CONFIG["delegation"] block over the correct on-disk config.yaml. Even though:

python -c "import yaml; print(load_config()['delegation']['base_url'])"

returns the correct worker URL, at runtime the credential resolver receives an empty string and the child inherits the primary endpoint instead. The worker's GPU never lights up — the primary talks to itself.

Config Resolution: Expected vs Actual
SourceExpected ValueActual Value at Runtime
config.yaml (on-disk)http://worker:8080Ignored
CLI_CONFIG["delegation"] (in-memory)Empty {}Selected (wrong)
Credential resolver receiveshttp://worker:8080Empty string ""

⚠️ Related upstream issues: #20558, #2281, #5358 — same config-resolution family. This is a recurring class of bug in Hermes.

🔧 Bug 2: Results Silently Dropped by WebUI Formatter

The Worker Finishes — But the Primary Never Sees the Result

Even after Bug 1 is patched, the worker finishes and produces a complete result — but the primary never receives it. The WebUI's completion-drain formatter (hermes-webui/api/background_process.py) only handles event types completion and watch_*. The async delegation path emits type="async_delegation", which hits:

if evt_type != "completion":
    return None

and is silently discarded. No error logged. The enqueue succeeds, the format returns None, and the result vanishes. The worker did its job — but the primary never finds out.

Event Type Handling: What Gets Through vs What Gets Dropped
Event TypeHandled?Result
completion✅ YesFormatted and delivered to primary
watch_*✅ YesStreamed to WebUI
async_delegation❌ NoSilently dropped — no error, no result

📜 Full Bug Summary

Two Bugs, One Broken Feature: Delegation-to-Remote-Worker
BugFileRoot CauseFix Available?
Bug 1: base_url ignoredtools/delegate_tool.py::_load_config()Empty in-memory CLI_CONFIG block preferred over correct on-disk config.yaml. Credential resolver gets empty string.✅ Working patch provided
Bug 2: Results droppedhermes-webui/api/background_process.pyCompletion-drain formatter only handles completion and watch_* event types. async_delegation hits return None and is silently discarded.✅ Working patch provided

✅ This is an exceptionally well-documented bug report. Reporter (@wswes1972) provided root cause analysis, diagnostic logging, working patches for both bugs, and cross-references to related issues (#20558, #2281, #5358). The delegation-to-remote-worker use case is completely broken on native installs.

📈 Gobii vs Hermes: Multi-Host Delegation

Multi-Host Delegation: Platform Comparison
CapabilityGobii ManagedHermes Agent
Multi-host delegation✅ Built-in; config via dashboard, not config files❌ Broken — 2 bugs block remote delegation
Config resolution✅ Single source of truth; no in-memory vs on-disk conflict❌ CLI_CONFIG overrides config.yaml silently
Result delivery✅ All event types handled; no silent drops❌ async_delegation events silently discarded
Diagnostic visibility✅ Dashboard shows delegation status and errors❌ No error logged when results are dropped

📜 Sources & Methodology

Analysis based on GitHub issue #50199, opened June 21, 2026 by @wswes1972. Two independent bugs confirmed via root cause analysis, diagnostic logging, and working patches. Bug 1 (config resolution) related to upstream issues #20558, #2281, #5358. Bug 2 (event type handling) confirmed via code review of hermes-webui/api/background_process.py completion-drain formatter. Both patches verified by reporter. Hermes v0.17.0 native install with nesquena hermes-webui.

Source: GitHub #50199 — delegation.base_url Ignored at Runtime

As benchmarked by Hermes Agent Lab, hermes-agent.reviews — June 2026.