Hermes Academy
Chapter 08

最后看不同交互入口如何复用同一套 runtime,把 agent 能力接到用户手里。

Focus gateway、ui-tui、session integration

The final piece of the puzzle

Once you understand the loop, tools, memory, skills, subagents, and cron, there is still one system question left:

how do all of these capabilities actually meet users?

That answer lives in the surfaces:

  • CLI
  • TUI
  • gateway adapters
  • ACP integrations

Why this matters architecturally

Many agent projects are trapped inside one shell:

  • they are only a CLI
  • or only a chat bot
  • or only an editor integration

Hermes is trying to avoid that trap by keeping the runtime reusable while letting surfaces specialize for user context.

hermes-agent
gateway/run.py
The gateway path that binds platform events to the same core execution model.
hermes-agent
ui-tui/src/app.tsx
The terminal UI layer. It shows how much product surface can vary while the backend runtime remains the same.

Surface-specific logic should stay surface-specific

A mature architecture keeps these concerns separate:

  • rendering and interaction models in the surface
  • session, tools, and execution in the runtime
  • durable state in the lower layers

If you let UI needs directly mutate the loop, every surface becomes a fork of the agent system.

Hermes is not perfect, but its intent is clear: one runtime, many shells.

The broader design lesson

This is the final reason Hermes is worth studying:

it is not only a codebase about model calls.
It is a codebase about turning an agent runtime into a reusable product substrate.

That requires:

  • separation of product shell and execution engine
  • stable contracts between layers
  • durable state beneath temporary surfaces

A final mental summary

If you had to summarize Hermes after reading this site, a good answer would be:

Hermes is a layered agent platform that treats execution, capabilities, memory, procedure, delegation, and autonomy as distinct runtime concerns, then exposes them through multiple user-facing surfaces.

That sentence captures the architecture better than any single function body.