Agents
Concept

Choose an Agent runtime

Compare Hermes and OpenClaw execution, approval, and runtime transport independently of Communication Connections.

For
Agent operators, Organization administrators, platform administrators, and self-hosted operators
On this page
  1. Overview
  2. Short answer
  3. Runtime comparison
  4. Runtime-neutral Communications
  5. Scheduled delivery
  6. Choose Hermes
  7. Choose OpenClaw
  8. What both runtimes provide
  9. Select a Runtime
  10. Changing Runtime
  11. Continue with the focused guides
  12. Troubleshooting
  13. Transport, SSE, and delivery leases
  14. Progress messages

Compare Hermes and OpenClaw by their execution behavior, configuration, command-approval controls, and operational contracts. Communication platforms are connected independently through Communication Connections and do not determine which Runtime an Agent can use.

An Agent Runtime loads the Agent’s pinned Template and Skill versions, calls its configured model through LiteLLM, exposes Runtime health, and exchanges messages through Agent Barn’s shared Communications protocol.

Overview

When an Agent starts, Agent Barn:

  1. Loads the exact pinned Template or Agent Template Override Version and exact pinned Skill Versions.
  2. Renders the Agent’s identity and operating instructions, then materializes permitted tool Integration artifacts and credentials.
  3. Generates fresh Runtime, Ingest, and Communications protocol credentials.
  4. Builds the selected Hermes or OpenClaw resources and starts the shared Communications Runtime adapter.

Communication Connection credentials remain inside Communications. Ingest receives Tool Call telemetry; Communications owns canonical Conversation Messages and Delivery state. Runtime configuration is regenerated when the Agent starts.

Short answer

Hermes is preselected in the current web hire flow, while both Hermes and OpenClaw are supported. Choose on Runtime-specific behavior, then select and manage Communication Connections separately after the Agent exists.

Runtime comparison

CapabilityHermesOpenClaw
Runtime valuehermesopenclaw
Web hire flowPreselectedSelectable
Command approvalAutomatic, Manual, or OffManaged by OpenClaw; explicit non-default mode is rejected and the effective default is AUTO
Generated configurationHermes configuration and Hermes pluginsOpenClaw configuration overlay and OpenClaw plugins
Skill mount root/workspace/skills/home/node/.openclaw/workspace/skills
Progress messagesSupported through Agent-level verbose modeUnavailable through the current adapter; explicit true is rejected
Scheduled-session behaviorIsolated session with persistent memory and user-profile contextIts own Runtime behavior
Persistent workspaceManaged Runtime workspace layoutManaged Runtime workspace layout
Health and telemetryAgent Barn-managed health and Runtime telemetry pluginsAgent Barn-managed health and Runtime telemetry plugins
CommunicationsShared runtime-neutral adapter and protocolShared runtime-neutral adapter and protocol

Neither Runtime is inherently superior. Choose the one whose documented execution behavior and operational contracts match the Agent’s work.

Runtime-neutral Communications

An Agent can have zero, one, or many Communication Connections, including multiple Connections for the same Communication Platform. Runtime selection and Connection selection are independent.

Both runtimes consume Agent Barn's shared Communications protocol, but the adapter invokes them differently. Hermes uses the asynchronous /v1/runs API and its event/approval endpoints. OpenClaw uses /v1/chat/completions. Provider credentials remain inside Communications and are not sent to either runtime.

Connection, location, and thread identity provide session continuity; the Delivery ID provides idempotency. Communication Connection credentials are never materialized into either Runtime.

Scheduled delivery

Agent Barn Communications supports ordinary replies and a separate initiated-message acceptance path. Interactive sends carry server-issued context for a live inbound execution and resolve only on that execution's Connection. Scheduled submissions use a recorded origin or the Agent's configured default. The model does not select a Connection ID. Only Slack currently advertises initiated delivery.

Hermes scheduled jobs created from a conversation retain its Connection, channel, and thread. Startup-created jobs use the default. OpenClaw uses the default only when a completion has no recorded origin. Its pinned cron hook can expose a delivery-channel label instead of the creating conversation; an unmappable origin is refused instead of being sent to the default.

See the runtime guide for capture, routing, and recovery.

Choose Hermes

Choose Hermes when Agent Barn-managed command approval is required, the Template and operational testing target Hermes, or the documented Hermes scheduled-session memory behavior is required.

Hermes startup submits non-empty BOOT.md as repeatable setup work in a session without a current conversation. Startup-created scheduled jobs use the configured default. See Runtime Assembly and Deployment for submission, completion, and silence-filter behavior.

Hermes command approval

ModeBehavior
AutomaticAutomatically approves low-risk commands.
ManualRequests approval before commands run.
OffSkips command-approval prompts.

Command approvals render interactive clickable buttons across supported platforms—including Web Chat, Slack, and Discord. In Web Chat and chat platforms, buttons represent offered choices (such as once, session, or deny); clicking an option submits the answer with its approval identity and disables subsequent duplicate clicks.

Choose OpenClaw

Choose OpenClaw when the deployment already operates OpenClaw Agents, the Template and operational testing target OpenClaw behavior, or an OpenClaw-specific Runtime capability is required.

Agent Barn does not expose configurable command approval for this Runtime:

OpenClaw command approval
Managed by OpenClaw

The API rejects an explicit non-default command-approval mode for OpenClaw and reports the effective AUTO default.

What both runtimes provide

  • The Agent’s rendered identity and operating instructions.
  • Its exact pinned Template and Skill Versions.
  • Its configured model and per-Agent LiteLLM identity.
  • Permitted tool Integration artifacts and Agent Secrets.
  • Per-start Ingest and Communications protocol identities.
  • The same unconditional Agent Barn Runtime behavior policies.

Neither Runtime receives Communication Connection credentials. Communications writes Conversations; Runtime telemetry covers Tool Calls and their results.

Select a Runtime in the web hire wizard

The web hire flow preselects Hermes and keeps OpenClaw selectable. Select a Runtime for its execution behavior; Communication Connections are added and managed independently after the Agent exists.

Select a Runtime through the Agent API

The creation field is agent_type, with supported values:

Supported agent_type values
hermes
openclaw

API clients should always send the intended Runtime explicitly:

Agent creation request
{
  "agent_type": "hermes"
}

Changing Runtime

Runtime is selected when an Agent is created. The Agent update API does not change it; use a replacement Agent when changing between Hermes and OpenClaw.

Communication Connections cannot be moved to another Agent through a reparent operation. Configure new Connections on the replacement Agent. If reusing a provider identity, retire the old Connection before claiming an identity whose uniqueness rules would otherwise conflict. Follow the provider's setup requirements for the new Connection.

Replacement does not transfer Connection IDs, provider conversation history, runtime memory, or allocated Email addresses. Email addresses are never reissued after retirement. Keep any old history you need according to the existing retention and lifecycle behavior.

For compatible image and adapter rollout, see Hermes session continuity.

Continue with the focused guides

Troubleshooting

The Agent was created with OpenClaw unexpectedly

The API defaults an omitted agent_type to OpenClaw

Send the intended value explicitly:

Hermes runtime
{ "agent_type": "hermes" }
OpenClaw runtime
{ "agent_type": "openclaw" }

An existing Agent’s Runtime cannot be changed through update; create a replacement Agent if the wrong Runtime was selected.

Command approval settings are missing

Available for Hermes only

Agent Barn exposes Automatic, Manual, and Off only for Hermes. OpenClaw is shown as Managed by OpenClaw.

Runtime and Connection health disagree

They are separate operational boundaries

Diagnose Runtime health through Runtime logs and lifecycle guidance; diagnose Connection provider health, Delivery, reconnects, retries, and journal state through Communication diagnostics.

Transport, SSE, and delivery leases

Protocol version 2 uses an authenticated outbound Server-Sent Events control stream to notify the runtime adapter of durable work. The adapter claims an inbound Delivery, invokes the selected runtime, submits the reply against the source Delivery, and completes the Delivery.

PostgreSQL owns delivery state, claims, leases, idempotency, and cancellation. Redis Streams provide content-free wakeups rather than authoritative message state. Reconnect replay and bounded fallback wakeups recover durable work when a signal is missed or Redis is unavailable. The adapter retains a five-second safety claim poll.

Claims last 120 seconds. Hermes renews its live claim every 60 seconds while its asynchronous run or approval is active. OpenClaw retains the bounded-turn behavior of its chat-completions path. Do not infer that both runtimes have the same progress, approval, or abort transport merely because they share Communications.

Version-1 claim/reply/complete routes remain accepted while older Agents are rebuilt. Updating a Connection reconciles provider connectivity separately from restarting the runtime.

Communications → shared adapter → Hermes /v1/runs; shared adapter → OpenClaw /v1/chat/completions. The control stream announces durable work; it is not token-by-token model response streaming.

Progress messages

Hermes supports an Agent-level verbose_mode setting for progress updates while work is in progress. OpenClaw does not have a supported progress relay through its current external HTTP path; the API rejects verbose_mode=true for an OpenClaw Agent.

Progress visibility is separate from command approval. Email suppresses progress updates even when Agent-level verbosity is enabled, but approval prompts can still be delivered. Existing running Agents need a rebuilt runtime configuration to receive changed adapter behavior.

Documentation