|
Download website/docs/developer-guide/architecture.md from lenson78/hermes: direct link, hf CLI and curl.
- Browser
- Download file 5.06 kB
-
https://huggingface.co/spaces/lenson78/hermes/resolve/main/website/docs/developer-guide/architecture.md
- Command line
-
hf download hf://spaces/lenson78/hermes/website/docs/developer-guide/architecture.md
-
curl -L -o architecture.md https://huggingface.co/spaces/lenson78/hermes/resolve/main/website/docs/developer-guide/architecture.md
5.06 kB
| sidebar_position: 1 | |
| title: "Architecture" | |
| description: "Hermes Agent internals β major subsystems, execution paths, and where to read next" | |
| # Architecture | |
| This page is the top-level map of Hermes Agent internals. The project has grown beyond a single monolithic loop, so the best way to understand it is by subsystem. | |
| ## High-level structure | |
| ```text | |
| hermes-agent/ | |
| βββ run_agent.py # AIAgent core loop | |
| βββ cli.py # interactive terminal UI | |
| βββ model_tools.py # tool discovery/orchestration | |
| βββ toolsets.py # tool groupings and presets | |
| βββ hermes_state.py # SQLite session/state database | |
| βββ batch_runner.py # batch trajectory generation | |
| β | |
| βββ agent/ # prompt building, compression, caching, metadata, trajectories | |
| βββ hermes_cli/ # command entrypoints, auth, setup, models, config, doctor | |
| βββ tools/ # tool implementations and terminal environments | |
| βββ gateway/ # messaging gateway, session routing, delivery, pairing, hooks | |
| βββ cron/ # scheduled job storage and scheduler | |
| βββ honcho_integration/ # Honcho memory integration | |
| βββ acp_adapter/ # ACP editor integration server | |
| βββ acp_registry/ # ACP registry manifest + icon | |
| βββ environments/ # Hermes RL / benchmark environment framework | |
| βββ skills/ # bundled skills | |
| βββ optional-skills/ # official optional skills | |
| βββ tests/ # test suite | |
| ``` | |
| ## Recommended reading order | |
| If you are new to the codebase, read in this order: | |
| 1. this page | |
| 2. [Agent Loop Internals](./agent-loop.md) | |
| 3. [Prompt Assembly](./prompt-assembly.md) | |
| 4. [Provider Runtime Resolution](./provider-runtime.md) | |
| 5. [Adding Providers](./adding-providers.md) | |
| 6. [Tools Runtime](./tools-runtime.md) | |
| 7. [Session Storage](./session-storage.md) | |
| 8. [Gateway Internals](./gateway-internals.md) | |
| 9. [Context Compression & Prompt Caching](./context-compression-and-caching.md) | |
| 10. [ACP Internals](./acp-internals.md) | |
| 11. [Environments, Benchmarks & Data Generation](./environments.md) | |
| ## Major subsystems | |
| ### Agent loop | |
| The core synchronous orchestration engine is `AIAgent` in `run_agent.py`. | |
| It is responsible for: | |
| - provider/API-mode selection | |
| - prompt construction | |
| - tool execution | |
| - retries and fallback | |
| - callbacks | |
| - compression and persistence | |
| See [Agent Loop Internals](./agent-loop.md). | |
| ### Prompt system | |
| Prompt-building logic is split between: | |
| - `run_agent.py` | |
| - `agent/prompt_builder.py` | |
| - `agent/prompt_caching.py` | |
| - `agent/context_compressor.py` | |
| See: | |
| - [Prompt Assembly](./prompt-assembly.md) | |
| - [Context Compression & Prompt Caching](./context-compression-and-caching.md) | |
| ### Provider/runtime resolution | |
| Hermes has a shared runtime provider resolver used by CLI, gateway, cron, ACP, and auxiliary calls. | |
| See [Provider Runtime Resolution](./provider-runtime.md). | |
| ### Tooling runtime | |
| The tool registry, toolsets, terminal backends, process manager, and dispatch rules form a subsystem of their own. | |
| See [Tools Runtime](./tools-runtime.md). | |
| ### Session persistence | |
| Historical session state is stored primarily in SQLite, with lineage preserved across compression splits. | |
| See [Session Storage](./session-storage.md). | |
| ### Messaging gateway | |
| The gateway is a long-running orchestration layer for platform adapters, session routing, pairing, delivery, and cron ticking. | |
| See [Gateway Internals](./gateway-internals.md). | |
| ### ACP integration | |
| ACP exposes Hermes as an editor-native agent over stdio/JSON-RPC. | |
| See: | |
| - [ACP Editor Integration](../user-guide/features/acp.md) | |
| - [ACP Internals](./acp-internals.md) | |
| ### Cron | |
| Cron jobs are implemented as first-class agent tasks, not just shell tasks. | |
| See [Cron Internals](./cron-internals.md). | |
| ### RL / environments / trajectories | |
| Hermes ships a full environment framework for evaluation, RL integration, and SFT data generation. | |
| See: | |
| - [Environments, Benchmarks & Data Generation](./environments.md) | |
| - [Trajectories & Training Format](./trajectory-format.md) | |
| ## Design themes | |
| Several cross-cutting design themes appear throughout the codebase: | |
| - prompt stability matters | |
| - tool execution must be observable and interruptible | |
| - session persistence must survive long-running use | |
| - platform frontends should share one agent core | |
| - optional subsystems should remain loosely coupled where possible | |
| ## Implementation notes | |
| The older mental model of Hermes as βone OpenAI-compatible chat loop plus some toolsβ is no longer sufficient. Current Hermes includes: | |
| - multiple API modes | |
| - auxiliary model routing | |
| - ACP editor integration | |
| - gateway-specific session and delivery semantics | |
| - RL environment infrastructure | |
| - prompt-caching and compression logic with lineage-aware persistence | |
| Use this page as the map, then dive into subsystem-specific docs for the real implementation details. | |