concepts

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.

🎼 layer 1

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).

🩸 layer 2

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.

🔧 tendril

system-agent

OS / package management / processes / systemd / disk. The "is the host healthy?" specialist.

⌨️ tendril

code-agent

Reading + writing source code, running tests, navigating repositories. The "make the change" specialist.

🔍 tendril

research-agent

Web search, docs lookup, comparing options. Phase 3 of The Pulse (Deep Seeking) typically dispatches here first.

📊 tendril

data-agent

Database queries, analytics, structured data manipulation. Pairs naturally with VINES + VECNA reads.

💬 tendril

comm-agent

Email, chat, notifications, drafts of outgoing messages. The "talk to humans" specialist.

👁 tendril

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.

🧠 layer 3

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 protocol

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.

🩸 phase 1

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.

🩸 phase 2

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.

🩸 phase 3

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.

🩸 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.

🩸 phase 5

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.

recovery

On restart

First thing the Nexus does on a fresh session: vecna_healthzvines_recover. If summary.resumable > 0, it picks up each orchestration from its lastCompletedChildnextPendingChild in Linear.