Agentic AI Atlasby a5c.ai
OverviewWikiGraphFor AgentsEdgesSearchWorkspace
/
GitHubDocsDiscord
iiRecord
Agentic AI Atlas · Hermes Agent -- Layer Analysis
page:docs-hermes-research-layer-analysisa5c.ai
Search record views/
Record · tabs

Available views

II.Record viewspp. 1 - 1
overviewarticlejsongraph
II.
Page JSON

page:docs-hermes-research-layer-analysis

Structured · live

Hermes Agent -- Layer Analysis json

Inspect the normalized record payload exactly as the atlas UI reads it.

File · wiki/docs/hermes-research/layer-analysis.mdCluster · wiki
Record JSON
{
  "id": "page:docs-hermes-research-layer-analysis",
  "_kind": "Page",
  "_file": "wiki/docs/hermes-research/layer-analysis.md",
  "_cluster": "wiki",
  "attributes": {
    "nodeKind": "Page",
    "sourcePath": "docs/hermes-research/layer-analysis.md",
    "sourceKind": "repo-docs",
    "title": "Hermes Agent -- Layer Analysis",
    "displayName": "Hermes Agent -- Layer Analysis",
    "slug": "docs/hermes-research/layer-analysis",
    "articlePath": "wiki/docs/hermes-research/layer-analysis.md",
    "article": "\n# Hermes Agent -- Layer Analysis\n\nSystematic mapping of Hermes Agent subsystems to the atlas agentic stack layers (L1-L14).\n\n---\n\n## L1 -- Model\n\n**What Hermes has:** No model layer; Hermes is model-agnostic.\n\n**Mapping:** Identical posture to our stack -- both consume models, neither own one.\n\n---\n\n## L2 -- Provider\n\n**What Hermes has:** A plugin-based provider runtime resolver (`hermes_cli/runtime_provider.py`, `hermes_cli/auth.py`) supporting 30+ provider integrations. Providers are declared as plugins in `plugins/model-providers/<name>/` and register via `register_provider()`. Each plugin specifies `api_mode`, `base_url`, `env_vars`, and `fallback_models`. Nous Portal acts as a meta-provider routing 300+ models through a single OAuth login.\n\n**Our equivalent:** The adapters proxy (`packages/adapters/proxy/`) handles provider routing for multi-harness scenarios. Individual harnesses own their own provider resolution.\n\n**Unique to Hermes:**\n- First-class fallback provider chains with ordered `(provider, model)` pairs tried sequentially on errors.\n- Three API modes (`chat_completions`, `codex_responses`, `anthropic_messages`) with automatic base-URL heuristic detection.\n- Credential scoping per base URL to prevent API key leakage to wrong endpoints.\n- OAuth-based Nous Portal meta-provider covering 300+ models.\n- Auxiliary model routing for side tasks (vision, summarization, memory) independent of the primary provider.\n\n**Gaps in Hermes we cover:** Our adapters proxy provides a cross-harness provider routing layer; Hermes provider resolution is internal to a single agent instance.\n\n**Integration opportunities:** Hermes provider resolution could feed into our adapters proxy as a provider backend, exposing its 30+ provider catalog to babysitter-orchestrated runs.\n\n---\n\n## L3 -- Transport\n\n**What Hermes has:** Three wire protocols exposed through the `AIAgent`:\n- `chat_completions` -- OpenAI-compatible via `openai.OpenAI` client\n- `codex_responses` -- OpenAI Codex/Responses API via `openai.OpenAI` client\n- `anthropic_messages` -- Native Anthropic Messages API via `anthropic.Anthropic` client\n\nResolution order: explicit arg > provider detection > base URL heuristics > default `chat_completions`.\n\n**Our equivalent:** `packages/adapters/transport/` owns transport engines and codecs for different agent harnesses. Each harness adapter in `packages/adapters/hooks/adapter-*` bridges harness-native events to unified format.\n\n**Unique to Hermes:**\n- Interruptible API calls via background threads with interrupt event monitoring -- the main thread can abandon an in-flight API call cleanly without injecting partial responses into conversation history.\n- Streaming with `stream_delta_callback` and `tool_gen_callback` for real-time token and tool-call previews.\n\n**Gaps in Hermes we cover:** Our transport layer is multi-harness and can bridge across different agent products. Hermes transport is tightly coupled to its single agent runtime.\n\n---\n\n## L4 -- Agent-Core\n\n**What Hermes has:** The `AIAgent` class in `run_agent.py` (~4,400 lines) is the core agent loop. It implements:\n\n- **Prompt assembly:** `prompt_builder.py` constructs ordered tiers (identity > context > volatile), applies Anthropic cache breakpoints, and summarizes when context exceeds thresholds.\n- **Turn lifecycle:** Generate task_id > append user message > build/reuse cached system prompt > preflight compression check (>50%) > build API messages > inject ephemeral prompt layers > apply prompt caching > make interruptible API call > parse response (tool calls loop, text response returns).\n- **Tool dispatch:** Central registry auto-discovering 70+ tools at import time. Sequential for single calls, `ThreadPoolExecutor` for multiple. Pre/post tool-call plugin hooks. Agent-level tools (todo, memory, session_search, delegate_task) intercepted before general dispatch.\n- **Subagent delegation:** `delegate_task` tool spawns child agents with isolated context and independent iteration budgets (capped at `delegation.max_iterations`, default 50).\n- **Context compression:** Preflight at 50% context window usage, gateway auto-compression at 85%. Memory flushed before compression, middle turns summarized, last N messages preserved intact, tool call/result pairs kept together.\n- **Budget management:** Default 90 iterations, configurable. Subagents get independent budgets.\n\n**Our equivalent:** `packages/genty/platform/` is the platform API for harness integration. The agent core itself lives in the upstream harness (Claude Code, Codex, etc.). For babysitter-orchestrated runs, the `packages/babysitter-sdk/` runtime drives the turn lifecycle via task definitions and effects.\n\n**Unique to Hermes:**\n- Single monolithic `AIAgent` class that works identically across CLI, gateway, ACP, batch, and API -- true platform-agnostic core.\n- Iteration budget tracking across parent-child agent hierarchy.\n- Agent-intercepted tools (todo, memory, session_search) that never reach the general tool dispatch path.\n- Fallback model switching mid-conversation when primary model fails.\n\n**Gaps in Hermes we cover:**\n- Our multi-harness architecture lets the orchestrator drive different agent products (Claude Code, Codex, Gemini CLI, Hermes) through the same babysitter process definition. Hermes core is limited to its own runtime.\n- Our effect system (journal, effects, breakpoints, completion proof) provides durable state tracking that Hermes lacks at the core level.\n- Our governance engine (`packages/genty/platform/src/governance/`) provides structured approval, permission, and decision-trail capabilities beyond Hermes' simple `approval_callback`.\n\n**Integration opportunities:** The `AIAgent.chat()` and `AIAgent.run_conversation()` entry points could be wrapped by our adapter-hermes to drive Hermes as a babysitter task executor, passing task instructions as user messages and collecting results.\n\n---\n\n## L5 -- Agent-Runtime\n\n**What Hermes has:**\n- **Session persistence:** SQLite storage (`hermes_state.py`) with lineage tracking, platform isolation, contention handling, and FTS5 full-text search with LLM summarization.\n- **Built-in tools:** 70+ tools across 28 toolsets spanning terminal, browser, web, MCP, and file operations. Terminal backends support local, Docker, SSH, Daytona, Modal, and Singularity.\n- **Hook system:** Plugin hooks with `pre_tool_call` and `post_tool_call` events.\n- **Approval system:** `approval_callback` for dangerous command gating.\n- **Callback surfaces:** 8 callback types (tool_progress, thinking, reasoning, clarify, step, stream_delta, tool_gen, status).\n- **Streaming:** Real-time token streaming and tool call preview.\n\n**Our equivalent:**\n- `packages/genty/platform/src/harness/` -- harness adapters, adapter bridge, event mapper, stdin reader.\n- `packages/babysitter-sdk/src/` -- core runtime with storage, tasks, hooks, profiles, plugins, compression.\n- `packages/genty/platform/src/governance/` -- approval, permission, decision trail.\n\n**Unique to Hermes:**\n- 6 terminal backend options (local, Docker, SSH, Daytona, Modal, Singularity) providing execution environment diversity.\n- Tool auto-discovery via import-time registration -- zero manual imports needed.\n- 8 distinct callback surfaces for fine-grained runtime observability.\n- Session search with FTS5 and LLM-powered summarization.\n- Trajectory generation (ShareGPT format) from sessions for training data.\n\n**Gaps in Hermes we cover:**\n- Our hooks-adapter architecture normalizes hook events across 10+ agent products. Hermes hooks are internal only.\n- Our journal and event-sourced state transitions provide replay and audit capabilities.\n- Our streaming renderer provides unified streaming across different harness outputs.\n- Our daemon (`packages/genty/platform/src/daemon/`) provides durable background execution, timer scheduling, and webhook listening.\n\n---\n\n## L6 -- Agent-Platform\n\n**What Hermes has:**\n- **Plugin system:** Three discovery sources (user `~/.hermes/plugins/`, project `.hermes/plugins/`, pip-installed). Plugins register tools, hooks, and commands. Specialized discovery for memory providers, model backends, context engines, and image generators.\n- **Skills framework:** Compatible with agentskills.io standards. Agent-created skills with auto-curation and archival of stale skills. Skills Hub for community sharing.\n- **MCP integration:** Support for Model Context Protocol servers configured via `config.yaml`.\n- **Gateway (20+ platform adapters):** Telegram, Discord, Slack, WhatsApp, Signal, Matrix, Email, SMS, Mattermost, and more. Unified `MessageEvent` format, authorization (per-platform allowlists, DM pairing), slash command dispatch, hooks, and cron integration.\n- **Cron scheduler:** First-class durable SQLite scheduler supporting duration phrases, \"every\" patterns, cron expressions, and one-shot ISO timestamps. 3-minute hard interrupt for runaway loops. Multi-platform delivery.\n- **Self-evolution:** Separate companion repo using DSPy + GEPA for evolutionary optimization of skills, tool descriptions, system prompts, and code through reflective evolutionary search.\n\n**Our equivalent:**\n- `packages/adapters/extensions/` -- portable plugin/extension system targeting multiple agent products.\n- `packages/adapters/gateway/` -- adapters gateway with auth, fanout, kanban, notifications, pairing.\n- `packages/adapters/hooks/` -- hook normalization across 10+ agent adapters.\n- `.claude/` plugin structure with skills, commands, hooks, agents.\n- `packages/genty/platform/src/daemon/` -- automation executor, timer scheduler, webhook listener.\n\n**Unique to Hermes:**\n- 20+ messaging platform adapters in a single gateway process -- far broader platform reach than our current gateway.\n- DM pairing authorization flow for onboarding new users.\n- Self-evolution system for automated skill/prompt/tool optimization.\n- Skills Hub (agentskills.io) community marketplace.\n- Cron scheduler with natural-language schedule definition.\n\n**Gaps in Hermes we cover:**\n- Our multi-harness adapter architecture lets plugins work across Claude Code, Codex, Gemini CLI, Hermes, and others. Hermes plugins work only within Hermes.\n- Our babysitter plugin governance provides structured policy, risk, and audit controls.\n- Our process definition system (tasks, effects, breakpoints, journals) provides durable orchestration absent from Hermes.\n- Our atlas graph provides structured metadata about the entire agent ecosystem.\n\n**Integration opportunities:** Hermes gateway adapters could serve as delivery channels for babysitter-orchestrated results. A babysitter process could use Hermes as the execution harness and route results to Telegram/Discord/Slack via the gateway.\n\n---\n\n## L7 -- Workspace\n\n**What Hermes has:** Working directory binding through sessions. ACP sessions carry editor workspace context via task-scoped terminal/file overrides. Terminal backends (Docker, SSH, etc.) provide different workspace materialization strategies.\n\n**Our equivalent:** Our workspace layer is handled by the upstream harness (git worktrees via Claude Code, sandbox directories via Codex, etc.).\n\n**Unique to Hermes:** Multi-backend workspace materialization (local, Docker, SSH, Daytona, Modal, Singularity) as first-class runtime options.\n\n---\n\n## L8 -- Execution\n\n**What Hermes has:** Tool execution via 70+ tools across 28 toolsets. Sequential execution for single calls, `ThreadPoolExecutor` for concurrent calls. Terminal backends for diverse execution environments. Browser automation, web scraping, image generation, TTS.\n\n**Our equivalent:** `packages/genty/platform/src/harness/agenticTools/` -- background tools, browser tools, config tools, discovery tools, code tools.\n\n**Unique to Hermes:** 6 terminal backend options with environment isolation. Broader tool count (70+ vs our focused set).\n\n---\n\n## L9 -- Sandbox\n\n**What Hermes has:** Docker and Singularity terminal backends provide sandboxed execution. `approval_callback` gates dangerous commands.\n\n**Our equivalent:** `packages/genty/platform/src/governance/sandboxPolicy.ts`, `sandboxBridge.ts` -- sandbox policy enforcement. Docker-based execution via `packages/adapters/docker/`.\n\n---\n\n## L10 -- Interaction\n\n**What Hermes has:**\n- CLI slash commands with autocomplete (`/help`, `/tools`, `/model`, `/personality`, `/resume`, `/retry`, `/undo`, `/stop`, `/new`, `/reset`).\n- Gateway slash commands with authorization and running-agent guard.\n- Voice mode with real-time interaction via CLI, Telegram, Discord.\n- Multiline input (Alt+Enter, Ctrl+J, Shift+Enter).\n- Interruption via new message or Ctrl+C.\n\n**Our equivalent:** `packages/genty/platform/` interaction primitives. Atlas `interaction-primitives/` YAML definitions.\n\n**Unique to Hermes:** Voice mode with real-time TTS and transcription. Mid-task model hot-swapping via `/model` slash command.\n\n---\n\n## L11 -- Presentation\n\n**What Hermes has:**\n- Classic CLI using Rich panels and prompt_toolkit with animated spinner.\n- Modern TUI -- Node.js Ink-based React frontend communicating via JSON-RPC with Python backend.\n- Dashboard that embeds the real TUI through PTY bridging.\n- API server with OpenAI-compatible HTTP endpoints + SSE streaming.\n- ACP adapter for IDE integration (VS Code, Zed, JetBrains).\n\n**Our equivalent:** `packages/genty/tui-plugins/` -- TUI panels for status, cost, governance. Atlas `presentations/` YAML definitions.\n\n**Unique to Hermes:** Dual CLI/TUI rendering with PTY bridging for dashboard. Three programmatic integration protocols (ACP, TUI Gateway JSON-RPC, API Server).\n\n---\n\n## L12 -- Knowledge Fabric\n\n**What Hermes has:**\n- **Built-in memory:** `MEMORY.md` (project-scoped) and `USER.md` (user profile) with automatic extraction and persistence.\n- **Memory provider plugin system:** Single-select pluggable backends implementing the `MemoryProvider` ABC. Lifecycle hooks: `system_prompt_block()`, `prefetch()`, `queue_prefetch()`, `sync_turn()`, `on_session_end()`, `on_pre_compress()`, `on_memory_write()`.\n- **Supermemory integration:** Optional cloud-backed long-term memory.\n- **Session search:** FTS5 full-text search across sessions with LLM summarization.\n- **Profile isolation:** Each profile gets dedicated config, memory, and sessions.\n- **Self-evolution memory:** The companion repo uses execution traces and reflective search to improve skills and prompts.\n\n**Our equivalent:**\n- `packages/babysitter-sdk/src/` -- memoryExtraction, crossRunState for durable memory across babysitter runs.\n- CLAUDE.md / MEMORY.md file conventions.\n- Atlas graph as structured organizational knowledge.\n\n**Unique to Hermes:**\n- Pluggable memory provider architecture with rich lifecycle hooks (prefetch, queue_prefetch, sync_turn, on_pre_compress, on_memory_write).\n- `on_pre_compress` hook to save insights before context compression discards conversation turns.\n- Memory flushed to disk before any context compression -- no data loss.\n- Cloud-backed memory integration (Supermemory, Honcho).\n\n**Gaps in Hermes we cover:**\n- Our crossRunState provides structured state propagation across babysitter orchestration runs.\n- Our atlas graph provides graph-structured organizational knowledge, not just flat file memory.\n- Our run-history-insights aggregation provides structured learning from completed runs.\n\n**Integration opportunities:** Hermes memory provider plugin architecture could be exposed as a babysitter plugin that synchronizes memory between babysitter crossRunState and Hermes' `MEMORY.md`/`USER.md` files.\n\n---\n\n## L13 -- Orchestration\n\n**What Hermes has:**\n- Subagent delegation via `delegate_task` tool with isolated context and iteration budgets.\n- Cron scheduler for recurring tasks.\n- Gateway message routing and session management.\n- Basic iteration budget enforcement (90 turns default, configurable).\n\n**Our equivalent:**\n- `packages/babysitter-sdk/` -- full orchestration runtime with task definitions, effects, breakpoints, journals, completion proof, state replay.\n- `packages/genty/platform/src/daemon/` -- durable queue, automation executor, timer scheduler.\n- Babysitter process definitions with phases, subtasks, and multi-agent coordination.\n\n**Unique to Hermes:**\n- Gateway-level orchestration routing messages across 20+ platforms with session continuity.\n- Cron scheduler with natural-language schedule definitions.\n\n**Gaps in Hermes we cover:**\n- Durable orchestration with journals, effects, and state replay. Hermes has no equivalent to our run journals.\n- Multi-step process definitions with breakpoints, approval gates, and completion proof.\n- Multi-agent orchestration across different harness products (not just subagents within Hermes).\n- Cross-run state propagation.\n\n---\n\n## L14 -- Governance\n\n**What Hermes has:**\n- `approval_callback` for dangerous command gating.\n- Profile isolation for multi-instance safety.\n- Gateway authorization with per-platform allowlists and DM pairing.\n- Dependency pinning with upper bounds and commit SHA requirements (supply-chain protection).\n- Self-evolution guardrails: 100% test pass, size constraints, semantic preservation, human code review.\n\n**Our equivalent:**\n- `packages/genty/platform/src/governance/` -- authority, mandate, decision trail, permission events, permission propagation, posture bridge, sandbox bridge, sandbox policy.\n- Babysitter plugin governance.\n\n**Gaps in Hermes we cover:**\n- Structured governance engine with policy evaluation, categories, and decision trail logging.\n- Permission propagation across multi-agent hierarchies.\n- Posture-based governance with configurable safety profiles.\n- Audit evidence and compliance controls.\n\n---\n\n## Summary: Key Architectural Differences\n\n| Dimension | Hermes | Our Stack |\n|-----------|--------|-----------|\n| Core philosophy | Single monolithic agent with gateway | Multi-harness orchestration platform |\n| Agent loop | One `AIAgent` class, all surfaces | Upstream harness owns the loop, we wrap |\n| Provider breadth | 30+ providers, 50+ integrations | Provider-agnostic via harness delegation |\n| Platform reach | 20+ messaging platforms via gateway | Gateway + multi-harness adapters |\n| Plugin scope | Hermes-internal plugins | Cross-harness portable plugins |\n| Memory | Pluggable providers with rich hooks | crossRunState + atlas graph |\n| Orchestration | Subagent delegation + cron | Durable runs, journals, effects, breakpoints |\n| Governance | Approval callbacks + allowlists | Structured engine with decision trails |\n| Self-improvement | DSPy + GEPA evolutionary optimization | Manual + LLM-assisted via skills |\n",
    "documents": []
  },
  "outgoingEdges": [],
  "incomingEdges": [
    {
      "from": "page:docs-hermes-research",
      "to": "page:docs-hermes-research-layer-analysis",
      "kind": "contains_page"
    }
  ]
}

Shortcuts

Back to overview
Open graph tab