Aielia
CASE STUDY · THREE OF THE MOST-USED OPEN-SOURCE AI AGENTS

Three popular agents.
One thin harness, three ways.

Hermes Agent, Kilo Code, and OpenClaw all run the same commodity ReAct loop — as their own architecture docs and independent analyses describe. Mapped against the eleven-layer harness architecture, here's what each one actually built around that loop, and what all three still leave thin. Read the loop-first version on Design a Loop →

8/11 harness layers where none of the three agents reaches full coverage
3 layers where any of the three reaches full coverage at all — Execution (Kilo), Memory and Learning (both Hermes)
0/3 ship a formal output/reviewer-pass quality gate before a reply goes out

Three agents, three very different scales.

Each project reports its own headline numbers in its own units — stars, users, tokens — so the cards below show each on its own terms.

Hermes Agent
MakerNous Research
LaunchedFeb 2026
LicenseMIT
GitHub stars~235,000 (Aug 2026)
OpenRouter volume770B tokens/day
Primary interfaceCLI · messaging · IDE · API
Kilo Code
MakerKilo (fork of Roo/Cline)
LaunchedMar 2025
LicenseOpen source + hosted gateway
Users1.5M+ (3M+ "Kilo Coders")
Tokens processed40T+ (cumulative)
OpenRouter volume235B tokens/day
Primary interfaceVS Code · JetBrains · CLI · mobile
OpenClaw
MakerPeter Steinberger
LaunchedNov 2025 (as Clawdbot)
LicenseMIT
GitHub stars~387,000 (Aug 2026) — most-starred repo on GitHub
OpenRouter volume161B tokens/day
Primary interfaceMessaging apps · device nodes
OpenRouter daily token volume — global app rankings
Hermes Agent
770B/day
Kilo Code
235B/day
OpenClaw
161B/day
Live figures from OpenRouter's global app rankings (openrouter.ai/apps), accessed July 2026 — all three now report through OpenRouter, correcting an earlier assumption on this page that Kilo Code was gateway-only. Hermes overtook OpenClaw on this metric back in mid-May 2026 and has grown substantially since. For context, Claude Code (not one of the three agents covered here) sits at #2 on OpenRouter's all-time app leaderboard, above Kilo Code.

Mapped against the eleven-layer harness.

Each agent's documented behavior mapped against the same eleven canonical layers used across Build A Harness — not an ad hoc feature list.

present — a real, documented mechanism partial — an ad hoc or static substitute not described in public docs
Harness layer Hermes Agent Kilo Code OpenClaw Aielia (reference)
1. Caller State Not described Agent "modes" (code/ask/plan/debug) fix tools + instructions per task Messaging channel/persona selects context — not a formal constraint system Per-turn intent classification sets risk level + tool scope; not a formal mode system
2. World Model Static profile + identity-document config; no typed belief model Static Memory Bank files Static persona/bootstrap files Typed beliefs with provenance + staleness, rebuilt each turn from the persisted fact store
3. Reasoning Not described Not described Not described Hypothesis + evidence + contradiction layers run on every non-trivial turn
4. Control State Dangerous-command detection + approval callback; binary, not a tiered resolver Binary approval gate, not a tiered resolver Queueing prevents races, isn't a risk control 5-tier resolver → NORMAL / CAUTIOUS / BLOCKED, checked before every read-only tool call
5. Planning Subagents get their own capped budget via delegate_task — no full dependency graph Subagent delegation for isolated subtasks Not described Task-graph decomposition + templated plans; dependency-aware, not a full scheduler
6. Execution 70+ tools, ~28 toolsets, 6 backends, concurrent dispatch Git-snapshot checkpoints + diff-repair + tool-call translation Broadest action surface (device/OS tools), weakly gated ~7 tools (read / list / write / shell / web_search / fetch_url / send_email) — every mutating one staged for approval
7. Verification Not described Informal completion check + diff-repair Not described 9-layer verification pass before a result is accepted
8. Recovery Provider fallback, fixed iteration budget Checkpoint rollback, diff-repair Auto-compaction retry + provider fallback; no checkpoint rollback Replanning + recovery-sequence memory + crash-safe checkpoint resume
9. Memory SQLite+FTS5, context compression with a 20-message floor Memory Bank, context condensing Raw JSONL transcript, token-limit + compaction reserve Cross-session transcript + typed fact store; linear search (an inverted index is planned)
10. Learning Self-improving skills — the project's headline differentiator Not described Explicitly static — no self-improvement ExperienceStore tunes strategy weights / decompositions / recovery sequences — internal, not authored skills
11. Output & Reviewer Pass Not described Not described — human review substitutes Reply shaping is cosmetic, not a quality gate 3-lens reviewer (consistency, adversarial, abstraction fit) + output-contract validation before a reply leaves

Reading the pattern: Across the three most-used agents, Execution, Memory, and Learning are the only layers where any reaches full coverage — Kilo's checkpoints, and Hermes's persistent memory and self-improving skills, respectively. Reasoning and Output & Reviewer Pass get zero coverage from all three. Of the remaining layers, none is built out to full coverage by any of the three — they're a patchwork of static substitutes, partial mechanisms, and outright gaps, with World Model and Recovery the only two where all three have at least something, thin as it is. Which is a fair description of where most production agents are today, popular or not. The Aielia column is the reference point — Build A Harness's own assistant, included to show what the thin layers look like when something actually ships them (Reasoning, Control State, Verification, and the Reviewer Pass at full coverage); it is the newest and least battle-tested of the four.

What it's actually like to run one.

Beyond the layer-by-layer mapping, each project reads differently in practice:

Practical dimension Hermes Agent Kilo Code OpenClaw Aielia (reference)
Model / provider breadth 18+ providers, open-weight models 500+ models, 60+ providers via the Kilo Gateway Claude, GPT, DeepSeek, or local — OAuth piggyback on existing subscriptions Any Anthropic or OpenAI-compatible endpoint; 300+ models via the OpenRouter backend; keyless through a local claude CLI
Primary reach CLI, 20 messaging platforms, IDE (ACP), API, cron VS Code, JetBrains, CLI, cloud agent, mobile WhatsApp, Telegram, Discord, Signal, iMessage, Slack, Teams, native device apps CLI, browser (hosted /try), Tauri desktop — no messaging or IDE surface yet
Business model Free, MIT; runs on a few-dollar-a-month VPS Free/BYOK or Kilo credits, zero markup on provider rates; $8M seed round Free, MIT, self-hosted; foundation stewardship after the founder joined OpenAI Free, Apache 2.0, self-hosted; BYO key or keyless via claude-cli; no funding round
Known risk Newest of the three (Feb 2026) — memory and self-improving skills lack a long track record Parsing reliability is a constant fight across a 500-model matrix — not a novel loop, an inherited one Critical CVEs up to 9.9 CVSS, 341 malicious marketplace skills disclosed, prompt-injection susceptible; restricted for state use in China Newest and least battle-tested of the four; early-stage (v0.2.1), not an audited security product — the harness reduces blast radius, it doesn't eliminate it
In Build A Harness

All 11 layers ship as drawable, composable canvas nodes — Reasoning, a tiered Control State, Verification, and a formal Output & Reviewer Pass included, the layers thinnest across all three agents above. See the full architecture →

Same commodity loop, underneath all three.

Every layer above wraps around a loop that, on its own, isn't a differentiator — a point the projects' architecture docs and independent write-ups broadly agree on. Mapped against the same seven-stage loop, the pattern is clear.

present partial not described
Loop stage Hermes Agent Kilo Code OpenClaw
1. Perceive Session history + static profile/identity config; no typed beliefs Static Memory Bank files Static bootstrap/persona files
2. Reason Not described Not described Not described
3. Decide Dangerous-command approval gate; no risk-tiering Binary human-approval gate Queueing, not risk-tiering
4. Act Concurrent dispatch; binary dangerous-command gate only Git checkpoint before every edit Broad device/OS action surface
5. Verify Not described Informal check + diff-repair Cosmetic reply shaping only
6. Recover Fallback provider, iteration budget Checkpoint rollback, diff-repair Auto-compaction retry + provider fallback
7. Learn & Repeat Persistent memory + self-improving skills Memory Bank persists across sessions Static — explicitly no self-improvement

Reading the pattern: Execution and Memory/Learning are the only two stages where any agent reaches full (●) coverage — Kilo's checkpoints and Hermes's persistent memory, respectively. Reasoning is not described by any of the three. This isn't a knock on any one project; it's a reasonably faithful reading of what's in their own public documentation, and it's exactly the gap the eleven-layer harness above is meant to close.

See each agent's full, unsimplified step list
Hermes Agent — 8 steps
  1. Generate a task ID, append the user message
  2. Build or reuse the cached system prompt
  3. Check whether preflight compression is needed (>50% context full)
  4. Build API messages per API mode
  5. Inject ephemeral prompt layers (budget/context warnings)
  6. Apply prompt caching markers (Anthropic)
  7. Make an interruptible API call
  8. Parse response: execute tool calls and loop to step 4, or persist + return
Kilo Code — 7 steps
  1. User gives a task, selects an agent mode (code/ask/plan/debug)
  2. Kilo assembles context: system prompt, auto-found files, @-mentions, Memory Bank
  3. Prompt + tools sent to the configured model via the Kilo Gateway
  4. Model replies with reasoning plus typically one tool call
  5. State-changing actions pause for user approval unless auto-approved
  6. Approved action executes; result captured
  7. If complete, present for review; else append observation and loop to step 3
OpenClaw — 7 steps
  1. Intake — Gateway RPC/CLI validates params, returns {runId, acceptedAt} immediately
  2. Queue & resolve — serialize via per-session + global queues, resolve model/auth
  3. Session & workspace prep — resolve workspace, load skills, inject bootstrap files
  4. Prompt assembly — base + skills + bootstrap context, token limits enforced
  5. Model inference ⇄ tool execution — stream text/tool-call deltas, execute, repeat
  6. Reply shaping — assemble final payload, filter internal tokens
  7. Persist & emit — write transcript to JSONL, emit lifecycle:end
Hermes Agent

Its loop is a refined ReAct implementation — Observation → Reasoning → Action — the same call-model / run-tools / append-results shape Claude Code and most agents use. Nous's own framing puts the differentiation in memory and self-improving skills, not the loop.

Kilo Code

Kilo is a fork of Roo Code, itself a fork of Cline — the loop is inherited essentially unchanged across the whole lineage. Kilo's stated edge is pricing, model breadth and reliability plumbing, not the loop.

OpenClaw

Independent architecture write-ups describe OpenClaw's runtime as "just a ReAct loop, a filesystem, sessions, and plain API calls" — the simplicity is deliberate, and by broad agreement the loop is not where its traction comes from.

Questions, answered.

Why compare Hermes Agent, Kilo Code, and OpenClaw specifically?

They're three of the most-used open-source AI agents running today, each with public architecture documentation detailed enough to map against a common harness taxonomy — and each one's loop is a conventional ReAct pattern, per the projects' own architecture docs and independent analyses.

Which of the three has the best harness?

None covers more than 2 of 11 canonical layers at full strength. Hermes leads on Memory and Learning. Kilo Code leads on Execution. OpenClaw leads on reach, but its broad, weakly-gated action surface lines up with its documented security incidents — critical CVEs including a 9.9-severity privilege-escalation-to-RCE flaw and an 8.8 one-click RCE, plus a marketplace campaign that disclosed 341 malicious skills in a single sweep.

What is the 11-layer harness architecture?

The canonical architecture used across Build A Harness: Caller State, World Model, Reasoning, Control State, Planning, Execution, Verification, Recovery, Memory, Learning, and Output & Reviewer Pass. Full definition →

Where does Build A Harness fit in?

Build A Harness implements all 11 layers as drawable, composable canvas nodes — so you can build the layers these three agents leave thin (Reasoning, a tiered Control State, Verification, Output & Reviewer Pass) without writing that infrastructure yourself.

Primary documentation.

This comparison draws on each project's own architecture docs and independent reporting, current as of mid-2026. Token-volume figures are live from OpenRouter's global app rankings, accessed July 2026 — those numbers move daily and will drift from this snapshot.

The layer-by-layer coverage mapping above is our own reading of each project's public documentation against Build A Harness's canonical taxonomy, not an official audit or a claim endorsed by any of the three projects.

Build A Harness — Aielia.

The mapping above is a taxonomy exercise unless something actually ships those layers. Aielia — Build A Harness's own assistant — runs the full 11-layer harness on every non-trivial turn, and is the same class of tool as the three above: an everyday chat/coding assistant you install and talk to.

Honest caveats: Aielia is the newest of the four and the least battle-tested. It is an early-stage project (package v0.2.1), not an audited security product — the harness reduces the blast radius of a bad decision, it does not eliminate it. Apache 2.0, provided as-is.

Build the layers
these three leave thin.

Reasoning, a tiered Control State, Verification, and a formal Output & Reviewer Pass — the layers where all three of the most-used open-source agents are thinnest — ship in Aielia today, and as drawable canvas nodes if you want to build your own. Apache 2.0.