LABEL CHECK / DOSSIER
Hermes Agent
closure trend: high release velocity; vendor closes surface bugs (Telegram pool drain, Slack channel IDs) while structural deltas (skill auto-invocation, single event loop, 13.9K overhead floor) remain open through v0.18.2
Verdict
A fast-moving, well-connected personal agent chassis whose headline self-improvement claim is not functional in any released version.
Claim ledger — 14 rows
Delta ledger — 6 open
Skill auto-invocation non-functional — self-improvement loop has no completion path
closes when:`skill_view()` auto-triggers reliably across N conversations, re-verified
evidence:[1]Re-verified open 2026-06-28 against v0.17.0Re-verified OPEN 2026-07-09 against v0.18.2 (state=open, last activity 2026-06-30)
Single event loop is a systemic root cause — originally 7 P1/P2 blocking bugs; 5 of 7 now closed (#29184/#20525 via PRs, #28300/#20269 sweeper, #25351 not-planned), #13281 and root-cause #21026 remain open
closes when:All 7 issues closed and re-verified, or architecture change ships
evidence:All 7 confirmed open 2026-06-08Re-verified open 2026-06-28 against v0.17.0Re-verified 2026-07-09 against v0.18.2: #28300/#20525/#29184/#20269/#25351 CLOSED (June 2026); #13281 and root-cause #21026 still OPEN — falsification (all 7 closed OR architecture change) not met[4][5]
13.9K-token fixed overhead floor contradicts marketed savings
closes when:Overhead floor materially reduced, re-measured on a real session
evidence:[1]Re-verified open 2026-06-28 against v0.17.0Re-verified OPEN 2026-07-09 against v0.18.2 (state=open, updated 2026-06-30)
Compression threshold_percent not updated on model switch/fallback (wrong compression trigger after `/model`)
closes when:`threshold_percent` recalculates (or is re-read from per-model config) on every model switch, fallback activation, and primary restore; re-verified
evidence:[1]Re-verified open 2026-06-28 against v0.17.0Re-verified OPEN 2026-07-09 against v0.18.2; corrected mechanism: issue is per-model threshold_percent sync on model switch, NOT integer 75→75-token coercion (that earlier characterization is unverified)
`delegate_task` costs never persisted — 79% billing undercount
closes when:Subagent costs flush to state.db; recorded ≈ actual
evidence:unverified source, single measurement (no primary issue URL as of 2026-07-09)Re-verified open 2026-06-28 against v0.17.0Re-check 2026-07-09 against v0.18.2: gh search for delegate_task cost/billing/state.db found no matching issue; related open delegate_task bugs exist (#59386 schema, #52484 recursion, etc.) but not the 79% undercount. Delta retained open; primary-source gap remains.
Env override re-enables explicitly disabled platforms
closes when:`platforms.X.enabled: false` survives presence of the platform's bot-token env var (Telegram/Feishu and peers); re-verified
evidence:[1][2]Prior 2026-06-28 note citing #53697 was a mis-attribution (#53697 is Telegram streaming default bypass, not platform enable override)Re-verified OPEN 2026-07-09 against v0.18.2: #55113 (TELEGRAM_BOT_TOKEN forces platform on despite platforms.telegram.enabled: false) OPEN; #47804 (Feishu env forces enable) OPEN; #48820 (Windows env override ignores yaml) OPEN
Closed deltas — 8 (falsification-gated)
`skills_guard` "ask" verdict hard-blocks agent-created skills
closed by:Closed not-planned + implemented-on-main 2026-06 (#13686); behavior change not TD-re-verified
Gateway deadlock on background skill creation, no recovery path
closed by:PR #39737 merged 2026-06 (#10138)
Telegram FD/pool exhaustion wedges gateway while reporting connected — vendor pool-drain fix shipped; TD soak not re-run
closed by:PR #54121 merged 2026-06-28 (#53524 closed completed); pool-timeout drain ships, but 48h soak criterion not TD-re-verified → closed_partial
Slack cross-channel send silently fails (`isdigit()` on alphanumeric channel IDs)
closed by:PR #16198 merged (#15927) — channel ID validation fixed
Docker `--insecure` was default
closed by:v0.15.1 — now explicit env opt-in
WhatsApp accepted all senders by default
closed by:v0.13.0 — unknown senders rejected by default
Secret redaction was opt-in
closed by:v0.13.0 — on by default
Per-turn token cost (variable portion)
closed by:v0.15.0 — 47% reduction (399K→213K, 31-turn chat)
Methodology
- sampling
- Label-check methodology (D0086) — material-claims rule: a claim is sampled if it appears in the product's own description of itself and would plausibly influence an adoption decision. Claims sampled from official docs (hermes-agent.nousresearch.com), release notes, and the project README.
- verification depth
- source-reviewed — not executed by Theory Delta
- verification statement
- Evidence is drawn from the project's own code, issue tracker, release notes, and production reports filed by third parties; select claims depth-verified against source on 2026-06-08; re-verified against the issue tracker and v0.17.0 releases on 2026-06-28; re-verified again on 2026-07-09 against v0.18.2 (tag v2026.7.7.2) via `gh issue view` / `gh api` on every open-delta backing issue and key claim issues (#4589, #21026, #13281, #4379, #18617, #17244, #50918, #53524/#54121, #55113, #47804) plus hermes-agent-self-evolution README/push date. Theory Delta has not executed Hermes in its own environment for this dossier. Star counts (~212K as of 2026-07-09) are recorded in the backing block only and remain excluded from the adoption assessment.
- backing confidence
- secondary-research
- strongest case against
- Hermes's release cadence is fast enough that any specific issue may close within weeks; v0.15–v0.18 refactors and the PR #54121 Telegram pool drain may have changed runtime behavior not fully reflected in older open threads. The self-improvement bugs may be model-size or configuration-sensitive rather than universal. HM-09 (delegate_task billing undercount) still lacks a primary issue URL. Re-verification cadence for this tool should remain high (decay_class: volatile). Note 2026-06-28: prior delta HM-11 (claimed P0 session-auth exposure) was removed because no primary-source URL was ever attached.