They're built from the same brick: a model running in a loop. The difference is what's wrapped around it. A coding agent is the bare loop. An AI assistant is that loop plus a "gateway" so you can reach it from anywhere.
Strip away the branding and a coding agent is one simple thing:
a model being called over and over, allowed to call tools, until the job is done.
The model looks at the task, picks a tool (read a file, run a command, search the web), sees the result, then decides the next move. That repeats until it's finished, and then it stops. You drive it, usually from a terminal or IDE.
Claude Code and Codex are this. Same engine, different names.
flowchart LR
Task[Task / prompt] --> M[Model thinks]
M --> D{Done?}
D -->|"no — call a tool"| C[Run a tool]
C --> O[See the result]
O --> M
D -->|yes| F[Finish and stop]
That cycle in the middle (think to tool to result and back) is the agent. Nothing more mysterious than that.
The bare loop lives in your terminal. You sit at the keyboard and type at it, and when the task is done it stops.
An AI assistant is that same loop, but wrapped in a gateway: a long-running process that plugs it into the outside world. The gateway connects it to chat apps like Telegram, Slack, Discord, and WhatsApp, routes your message in, sends the answer back out, and keeps the session alive between messages so it's always on.
So the simple formula:
AI assistant = coding agent + gateway
The agent is the brain (the loop). The gateway is how you reach it from anywhere, all day, like messaging a person. Hermes and OpenClaw are this.
flowchart TB
subgraph Surfaces["Reach it from anywhere"]
T1[Telegram]
T2[Slack]
T3[Discord]
T4[WhatsApp]
end
GW["GATEWAY
routes messages in and out
keeps the session alive"]
subgraph Loop["THE CODING AGENT = the loop"]
M[Model decides] --> C[Calls a tool]
C --> R[Gets the result]
R --> M
end
Surfaces <--> GW
GW <--> Loop
| Coding agent | AI assistant | |
|---|---|---|
| What it is | The bare loop: model + tools | The loop + a gateway |
| Where you use it | Terminal / IDE | Your chat apps, from anywhere |
| How it runs | You start a task, it finishes, it stops | Always on, persistent across messages |
| Feels like | A power tool you operate | A teammate you message |
| Examples | Claude Code, Codex | Hermes, OpenClaw |
Both are AI assistants (both are "agent + gateway"), open-source and self-hosted. The only difference is which part sits at the center:
- Hermes (Nous Research, Python) is agent-first. The loop is the star; the gateway is an optional add-on. It also tries to improve itself as it goes.
- OpenClaw (TypeScript) is gateway-first. The gateway is the star — one long-running process that owns routing, sessions, and state, built to coordinate many agents across many channels.
One-liner to remember:
Hermes wraps a gateway around an agent. OpenClaw wraps an agent around a gateway.
Same Lego bricks, stacked in a different order.