Essay 2/8 — voice-gate ≥85, scrubber clean — updated 2026-05-09 (cont-19.10)

The 3-pillar substrate (and the parked operator surface)

Daily AI Agents runs on three load-bearing pillars and one optional operator surface that sits above them. The three pillars are the substrate — the agents cannot run without them. The operator surface is parked — a useful UI when the operator is at a desk, not a runtime dependency.

The split matters because it changes what an engagement has to install. A solo founder with a phone and an Obsidian vault can run the substrate end-to-end and never open the operator surface. A 25-person team that wants a shared status board boots the operator surface on a single Mac and lets the team click through. The substrate is the same in both cases.

Pillar 1: Hermes (the brain)

Hermes (version 0.11.x as of 2026) is the CEO-facing agent. It binds to a Telegram bot named @<your_company>_CEO_bot, receives messages from the founder, plans, delegates, and consolidates replies. Hermes does not do atomic work itself — its job is reasoning and routing.

Hermes runs on Codex OAuth via a $20/mo ChatGPT subscription. Inference is free at the marginal cost level; the underlying model is whatever the OpenAI Codex flow exposes (GPT-4 / GPT-5-class). Hermes also has access to MCP servers — Stripe, GitHub, OpenClaw, and any others wired in — which give the LLM tool-call capability beyond raw chat.

The Hermes config lives at ~/.hermes/config.yaml. Skills live in ~/.hermes/skills/. Memory lives in a vault Hermes reads and writes to (Obsidian).

Pillar 2: OpenClaw (the arms)

OpenClaw (version 2026.4 or newer) is a multi-agent runtime where each "agent" is a specialist with its own SOUL.md (persona), AGENTS.md (instructions), MEMORY.md (persistent facts), and a directory of skills.

Daily AI Agents has seven specialists: content, builder, ops, sales, research, accountant, and a designated trading specialist whose skills are private. Each specialist runs on a local Ollama or LM Studio model — qwen3.6, qwen3.5, qwen2.5-Coder, etc. — chosen for the workload (qwen3-coder-next for the builder, qwen3.5 for the lighter-weight specialists, qwen3.6 for reasoning-heavy work).

The OpenClaw gateway runs at port 18789 over WebSocket. Hermes calls into OpenClaw via openclaw agent --agent <id> -m "<task>", which routes to the specialist's workspace, runs 1 agent turn, and returns the reply.

Pillar 3: Obsidian (the memory)

Institutional memory lives in an Obsidian vault. Both Hermes and the OpenClaw specialists read and write to it via REST API at http://127.0.0.1:27124. Every meaningful action — a decision, a learned fact, a handoff between agents, a postmortem of a failure — is logged to the vault in Markdown.

The Obsidian vault has a structure across 5 directories. Decisions land in Decisions/<YYYY-MM-DD>-<slug>.md. Daily logs go to Daily/<YYYY-MM-DD>.md. Knowledge files to Knowledge/<topic>.md. Handoffs to Handoffs/<from>-to-<to>-<slug>.md. Incidents to Incidents/<YYYY-MM-DD>-<slug>.md.

The Obsidian vault is the memory pillar because it's the only place an agent can write information that another agent — or a future agent run — can find later. Without the vault, every agent run starts from zero.

Operator surface: Paperclip (parked)

Paperclip is an operator-facing dashboard exposed at port 3100. It surfaces the substrate's state — Hermes uptime, OpenClaw specialist health, vault size, recent decisions, recent skill firings, recent failures — in a single human-friendly view that a founder or operations lead can scan in 30 seconds.

Paperclip is parked above the substrate, not part of it. The substrate runs whether Paperclip is up, down, half-deployed, or never installed. As of 2026, Daily AI Agents has run uninterrupted for 30+ days with Paperclip stopped, the founder operating exclusively from Telegram on a single phone. Hermes does not query Paperclip. OpenClaw specialists do not query Paperclip. Obsidian does not query Paperclip. Paperclip queries them — it is a read-only consumer of the substrate's state.

When Paperclip is a substrate dependency (it isn't)

There is no execution path inside Hermes, OpenClaw, or Obsidian that calls into Paperclip. If you can find one, that is a regression in the substrate, not a feature of Paperclip. Substrate code paths read from Hermes' health endpoint, OpenClaw's heartbeats.json at port 18789, and the Obsidian git log — the same 3 sources Paperclip reads from. Paperclip is one of N consumers; another consumer (a Hermes-emitted Telegram digest card at 06:30 CT, a CSV exported nightly, a curl | jq script taped to a wall display) replaces it without changing the substrate.

When the operator surface earns its install

Boot Paperclip when (a) the operator works in a browser more than they work in Telegram, (b) more than one human needs the same view of substrate health, or (c) a non-engineer stakeholder wants to glance at the system without touching a terminal. For a solo founder operating exclusively by phone and Telegram, Paperclip is a Mac process that consumes electricity and adds nothing — leave it stopped.

The deployment cost is one launchd plist plus a 3100 port binding. The de-deployment cost is launchctl bootout and a git rm. Operators choose. The substrate does not.

Symmetric MCP across the substrate

The three substrate pillars communicate over Model Context Protocol. Each pillar exposes its primary capabilities as MCP tools, and each pillar can call any other pillar's tools. Hermes can call OpenClaw to dispatch a specialist; OpenClaw specialists can call Obsidian to read or write the vault.

Symmetric MCP is what makes the three pillars feel like one system. Without it, you'd have a hairball of bespoke HTTP endpoints; with it, the LLMs in each pillar discover each other's capabilities at runtime through standard tool-discovery semantics. The operator surface (Paperclip) sits outside this symmetric MCP plane — it consumes substrate state through pull-only health endpoints, not by registering as a peer.

Chapter 2 summary: Three load-bearing pillars — Hermes brain, OpenClaw specialists, Obsidian memory — communicate over symmetric MCP and form the substrate. Paperclip is a parked operator surface that reads substrate state but is not a substrate dependency. About 150 hours of architecture work to integrate the substrate; Paperclip ships when the operator earns it.

What to read next

← The thesis  ·  full paper  ·  Skills as procedural memory →