Hermes Agent

Hermes proposes opt-in webhook history so replies can see delivered alerts

A Hermes proposal would copy successfully delivered webhook text into the destination chat's history. It stays off by default and follows the route's profile. The trade-off is explicit: mirrored text enters as a labeled user turn, so enabling it also changes which external content the conversation will trust.

← Back to homeOriginal source ↗

A new Hermes proposal addresses an awkward conversational failure: an alert arrives in a chat, the user replies to it, and the agent cannot tell what the reply refers to. The underlying webhook run has its own temporary session. Delivering its text to another platform does not automatically place the text in that destination conversation's history.

PR 120825 proposes a route-level opt-in that mirrors the delivered text after a successful send. The patch does not merely add storage. It makes the profile boundary and the authority of the inserted message explicit, which matters on a host running several bots that can all address the same person.

The facts

- The proposal remains open and unmerged at inspection; the available release baseline does not imply it includes this setting. - Only an actual boolean true enables mirror_to_session; the default is off. - The patch mirrors after adapter.send reports success and labels the inserted text with the webhook route. - The insertion uses the user role, including raw rendered payload text for deliver-only routes. - The mirror executes within the route's profile scope and skips a target that has no existing gateway session. - The authors report a two-profile probe that reproduced cross-profile leakage when the mirror was deliberately moved outside that scope.

Why it matters

A message can be delivered correctly and still fail as part of a conversation. This proposal treats continuity as a separate contract rather than asking the model to infer missing history. But continuity is not free: adding external text as a user turn can give it more apparent authority than an ordinary tool result. The default-off choice is therefore part of the feature's meaning, not a nuisance to remove during setup.

Current

Checked September 24, 2026. The inspected release baseline is v2026.9.21. The primary source is open proposal. Package availability and development-source state are separate: a tag does not establish that an open proposal is usable, and a merge does not establish that every installation has received it.

Evidence

Primary: NousResearch/hermes-agent PR #120825 (https://github.com/NousResearch/hermes-agent/pull/120825). Supporting context: NousResearch/hermes-agent PR #120825 — implementation diff (https://github.com/NousResearch/hermes-agent/pull/120825/files); Hermes — webhook routing documentation (https://hermes-agent.nousresearch.com/docs/user-guide/messaging/webhooks/). Source pages and available diffs were inspected; test and live-account results remain attributed to their authors, not independently repeated measurements.

Operator take

Assess which routes contain material the user actually trusts before considering the option. A private service's brief and an arbitrary public issue description should not receive the same treatment. Acceptance should cover the destination profile, thread and existing-session behavior, plus failed sends and false-looking string values. Keep delivery success separate from mirror success: the proposed best-effort copy should not turn a successfully sent alert into a delivery failure just because history insertion fails.

Caveat

This is development-source behavior, not a shipped capability claim. The reported 1,491 passing tests and live CLI-to-delivery probe belong to the contributor's branch. Desktop and dashboard creation forms do not yet expose the switch. The implementation calls the mirror synchronously, so the author's broad claim that it never delays delivery should not be read as a measured zero-latency guarantee.

This is development-source behavior, not a shipped capability claim. The reported 1,491 passing tests and live CLI-to-delivery probe belong to the contributor's branch. Desktop and dashboard creation forms do not yet expose the switch. The implementation calls the mirror synchronously, so the author's broad claim that it never delays delivery should not be read as a measured zero-latency guarantee.