SI
Sentinel Integrations
← Back to Research Index

Research Brief: Hermes Agent /loop Architecture and Execution Patterns


1. Architectural Overview & Taxonomy

Hermes Agent introduces distinct execution paradigms based on operational requirements:

- Purpose: Observes external, asynchronous state changes on an automated recurring interval.

- Context: Executes inside an active terminal/interactive session.

- Control Flow: Wakes on a timer, reads current state, evaluates stop conditions, executes actions or reports deltas, and returns to sleep.

- Primary Heuristic: "Watching something that changes on its own schedule."

- Purpose: Drives multi-step execution towards a deterministic terminal condition.

- Context: Active session iteration with feedback loops.

- Control Flow: Runs continuous problem-solving loops until an evaluator (internal or judge model) validates task completion.

- Primary Heuristic: "Fixing or building something until verified done."

- Purpose: Background recurring task execution detached from user session lifecycle.

- Context: Independent headless daemon sessions (~/.hermes/cron/).

- Control Flow: Fires at fixed cron expressions/intervals, delivers output to configured destinations, survives terminal exit.

- Primary Heuristic: "Scheduling recurring jobs that must persist independently."


2. /loop Mechanics & Operational Controls

Configuration Parameters

A profile or loop specification configures backoff, rate bounds, and fail-safes:

# Profile Configuration Snippet: ~/.hermes/profiles/loop-demo/config.yaml
model:
  provider: custom
  model: llama.cpp/local-model
  context_length: 8192

loop:
  min_interval: 30s        # Minimum interval floor (prevents tight looping)
  max_interval: 2m         # Maximum backoff ceiling
  backoff_strategy: adaptive # Scales interval upwards when no state change is detected
  max_ticks: 100           # Hard boundary stop condition to prevent token runaway

Stop Conditions

1. Natural Language / Regex Assertion: The loop evaluates output against target string (e.g. stop when status is live or ending response with loop complete).

2. Deterministic Evaluator / Judge Model: Evaluator runs post-tick to score task termination.

3. Autonomous Agent Decision: The agent inspects tool results (e.g., file state or API response) and issues loop-stop directives.

4. Hard Limit Safeguard: Reaching max_ticks automatically pauses or terminates the run.


3. Tool Deduplication & Smart Polling

During recurring observation loops, models frequently hit cached or deduplicated read buffers when polling static files. Modern Hermes loop agents handle this by falling back from standard whole-file reads to filesystem metadata inspection (stat modification timestamps, incremental log cursors, or hash checks) before reading payloads.


4. Practical Loop Patterns

Pattern 1: Multi-Stage Deployment Watcher

# Terminal command inside Hermes CLI
/loop "Check deployment status at /tmp/deploy_stage.txt every 30s. If status is 'live', report deploy summary and finish with 'loop complete'."

Pattern 2: Local llama.cpp Health & Queue Watchdog

# Monitor local inference server health endpoint
/loop "Poll http://127.0.0.1:8080/health every 45s. Alert if queue > 5 or slot saturation occurs. Stop when queue drains to 0."

Pattern 3: Log Ingestion & Error Delta Tracker

# Monitor log file mtime and report only new ERROR entries
/loop "Check /var/log/app/service.log for new error entries every 60s. Summarize regressions. Exit after 20 ticks if clean."

5. Local Hardware & Model Viability