The Hive-Mind hierarchy
Three vocabulary layers, one architecture. The brand language is Stranger Things–coloured because the protocol benefits from a memorable shared mental model — the engineering itself is grounded and conventional.
The Nexus — the orchestrator
The Nexus is the only agent the operator talks to. It owns the conversation, decides who handles what, dispatches sub-tasks to the Tendrils, and synthesises their replies into one answer.
It explicitly does not:
- Execute domain work itself (no shell commands, no code edits, no API calls beyond dispatching).
- Share workspace or memory with the Tendrils (they're truly isolated top-level OpenClaw agents).
- Make decisions about specialist tooling — each Tendril owns its own AGENTS.md scope.
The Nexus reads its protocol from three files in its workspace:
AGENTS.md (orchestration rules), IDENTITY.md
(persona), and HAWKINS_PROTOCOL.md (the plugin tool
vocabulary, installed automatically by openclaw hawkins setup).
The Tendrils — six isolated specialists
Each Tendril is a top-level OpenClaw agent (openclaw agents add <id>),
not a subagent. Each has its own workspace, its own memory directory,
and its own scoped persona in AGENTS.md.
system-agent
OS / package management / processes / systemd / disk. The "is the host healthy?" specialist.
code-agent
Reading + writing source code, running tests, navigating repositories. The "make the change" specialist.
research-agent
Web search, docs lookup, comparing options. Phase 3 of The Pulse (Deep Seeking) typically dispatches here first.
data-agent
Database queries, analytics, structured data manipulation. Pairs naturally with VINES + VECNA reads.
comm-agent
Email, chat, notifications, drafts of outgoing messages. The "talk to humans" specialist.
vision-agent
Screenshot / image analysis. Uses a vision-capable model (default
ollama/kimi-k2.5:cloud).
Adding a seventh Tendril is a five-step process documented in the repo's README. The Nexus discovers new specialists from your workspace's AGENTS.md registry table.
The Hive — durable memory
The Hive is MariaDB-backed persistence with two tables. VINES owns state; VECNA owns memory. Same database, separate concerns, separate specs.
VINES — orchestration state
One orchestration_ledger row per operator request.
Tracks who's working on what, the lifecycle state
(init → planning → executing → success/failed), and the Linear
parent ticket id (the recovery anchor).
After a crash, vines_recover walks all unfinished
rows, cross-references each against Linear to find the last
completed child and the next pending one, and distinguishes
transient API failures from truly orphaned work.
Spec: vines/spec.md
VECNA — shared agent memory
One vecna_hive row per knowledge fragment. Each
fragment carries a topic, source_agent,
importance (1–5), and optional Linear ticket
reference. Recall is gated by the dedup window, ranked by
ticket-affinity → importance → recency, with a decay penalty for
entries older than 6 months.
vecna_evolve lets any agent supersede a stale
fragment with a corrected one atomically — the swarm
self-corrects over time.
Spec: vecna/spec.md
The Pulse — five named phases
When the Nexus decides an operator request isn't trivial, it enters The Pulse. Each phase has a documented entry condition, exit state, and failure path. Trivial requests bypass the protocol entirely.
Sensitivity Check
Does this request warrant the protocol? Fires only when the
Nexus estimates > 30s of work or work spanning > 2
specialist domains. Implemented as
vines_triage. Trivial requests (one-line questions,
single specialist) skip the rest.
Anchoring
Create a Linear parent ticket via the standalone
linear-ticket CLI, then call
vines_attach_linear_parent to bind it to the
orchestration. These are the recovery anchors — without them,
vines_recover can't reconstruct progress after a
crash.
Deep Seeking
Optional research dispatch. The Nexus sends a research prompt to
research-agent if the request involves choosing
between options or understanding unfamiliar terrain. The reply
informs the plan in phase 4.
The Connection
Loop dispatch to each Tendril. For each sub-task: create a Linear
sub-ticket → vines_set_state(executing) → dispatch
the specialist → comment the reply → close the sub-ticket.
Specialists run in their own isolated context — they can't see
each other's workspaces.
Consolidation
Synthesize all specialist replies into one operator-facing
answer. vines_set_state(success) +
linear-ticket update --state Done on the parent.
On abort: vines_set_state(failed) + ticket state
Canceled. The matched halves are mandatory — no stale "In
Progress" rows left on the Linear board.
On restart
First thing the Nexus does on a fresh session:
vecna_healthz → vines_recover. If
summary.resumable > 0, it picks up each
orchestration from its lastCompletedChild →
nextPendingChild in Linear.