Summary
For the same agent configuration, the resolved Hermes tools and prompt must be deterministic across scheduled, direct, and mention wake paths. Clawdapus's governed Hermes image/profile should start from a bare, capability-coherent agent runtime. Consumer-assistant conveniences should be opt-in per service (or selected through an explicit interactive profile), not silently present in every scheduled or unattended agent.
Today a downstream governed pod has to source-patch the Hermes image to remove or suppress onboarding/profile construction, skill authoring guidance and tools, session search, clarify, cronjob, lifecycle/status delivery, and background-review output. Those patches are brittle across base-image releases and can differ by wake path.
Observed behavior
In a production multi-agent pod on 2026-09-04:
- The same funded Hermes service had one native tool manifest on scheduled wakes, but mention wakes additionally exposed
clarify and cronjob. Managed tools were identical. A wake mechanism should not silently change model capability.
- During the same incident, the model narrated confirmation tool calls instead of emitting them; a five-minute stale reminder kept the session warm for 23 reminders, a real-money entry remained stuck for two hours, and the agent accumulated 33 mixed native/managed tool-order conflicts plus 20.5M cumulative input tokens in 12 hours. The divergent mention-wake surface is a live suspect, not yet proven as the initiating cause, but the large and unstable native surface clearly amplified retries and cost without producing state changes.
- Whole-response control markers were emitted in truncated forms (
[SILENT and [MUTE) and reached Discord as user-visible messages.
- The stock image also enables context compression at consumer-oriented defaults and exposes auxiliary behavior/status paths that are undesirable in deterministic scheduled runners. Compression may remain necessary, but its threshold, model work, and delivery behavior should be explicit and quiet in the governed profile.
The current downstream Clawfile runs multiple idempotent source patches against Hermes Python modules. Successful image builds therefore depend on private implementation anchors rather than a supported product contract.
Proposed direction
Add an explicit Hermes runtime profile, with the Clawdapus governed/unattended path defaulting to bare (names negotiable):
services:
trader:
x-claw:
hermes:
profile: bare # default for governed Clawdapus services
enable-tools: [skill_view, skills_list]
The bare profile should:
- Derive the native tool manifest from resolved declared capabilities and keep it identical across cron, mention, and direct invocation paths.
- Omit consumer onboarding/profile building, self-improvement/background review, agent skill authoring, session-history search,
clarify, and agent-managed cronjob unless explicitly enabled.
- Remove prompt guidance for every omitted capability. The model-visible contract and actual tools must agree.
- Keep lifecycle, retry, compression, and auxiliary-task status in logs/telemetry by default rather than chat delivery.
- Treat exact whole-response control tokens robustly, including a bounded set of truncated variants, without suppressing prose that merely mentions a token.
- Make context-compression policy explicit and conservative for unattended runners (threshold/target/model/status delivery), rather than inheriting opaque interactive-assistant defaults.
- Preserve the current rich assistant behavior behind an explicit
interactive profile for compatibility.
This is deliberately an umbrella/profile request, not a replacement for the narrower implementation issues:
There is a related two-source-of-truth problem for turn budgets: downstream currently has to set both agent.max_turns in Hermes config and the HERMES_MAX_ITERATIONS environment bridge to keep cron and gateway execution aligned. The profile should resolve and expose one effective budget rather than require operators to synchronize both.
Acceptance criteria
- A newly generated governed Hermes service, with no extra image patching, exposes the documented minimal native-tool set.
- Scheduled, direct, and mention wakes produce the same native tool names and prompt guidance for the same service.
- Disabled features add neither schemas nor instructions to provider requests.
- No onboarding, background-review, retry, compression, or lifecycle text reaches the chat adapter unless opted in.
- Operators can opt into individual capabilities or select an interactive compatibility profile.
- The resolved profile and capability list are inspectable in generated/runtime metadata and covered by cross-wake tests.
- Upgrading the Hermes base image does not require downstream Python source rewriting to retain these semantics.
Environment
- Clawdapus 0.28.x plus current unreleased handleless-Hermes INVOKE support
- Hermes base
v2026.6.19-claw.3
- Unattended Discord agents with scheduled, event-driven, and mention wakes
Summary
For the same agent configuration, the resolved Hermes tools and prompt must be deterministic across scheduled, direct, and mention wake paths. Clawdapus's governed Hermes image/profile should start from a bare, capability-coherent agent runtime. Consumer-assistant conveniences should be opt-in per service (or selected through an explicit interactive profile), not silently present in every scheduled or unattended agent.
Today a downstream governed pod has to source-patch the Hermes image to remove or suppress onboarding/profile construction, skill authoring guidance and tools, session search,
clarify,cronjob, lifecycle/status delivery, and background-review output. Those patches are brittle across base-image releases and can differ by wake path.Observed behavior
In a production multi-agent pod on 2026-09-04:
clarifyandcronjob. Managed tools were identical. A wake mechanism should not silently change model capability.[SILENTand[MUTE) and reached Discord as user-visible messages.The current downstream Clawfile runs multiple idempotent source patches against Hermes Python modules. Successful image builds therefore depend on private implementation anchors rather than a supported product contract.
Proposed direction
Add an explicit Hermes runtime profile, with the Clawdapus governed/unattended path defaulting to
bare(names negotiable):The bare profile should:
clarify, and agent-managedcronjobunless explicitly enabled.interactiveprofile for compatibility.This is deliberately an umbrella/profile request, not a replacement for the narrower implementation issues:
disable-toolsso operators can extend the driver's disabled tool set #341 — operator-configurable native tool disable listThere is a related two-source-of-truth problem for turn budgets: downstream currently has to set both
agent.max_turnsin Hermes config and theHERMES_MAX_ITERATIONSenvironment bridge to keep cron and gateway execution aligned. The profile should resolve and expose one effective budget rather than require operators to synchronize both.Acceptance criteria
Environment
v2026.6.19-claw.3