This commit is contained in:
345
docs/HIVE-MIND-INTEGRATION-DESIGN.md
Normal file
345
docs/HIVE-MIND-INTEGRATION-DESIGN.md
Normal file
@@ -0,0 +1,345 @@
|
||||
# Hive-Mind Integration Design — How It Actually Works in the Wild
|
||||
|
||||
**Date:** 2026-04-16
|
||||
**Context:** hive-mind is an MCP server. MCP servers are passive — they respond to tool calls. They don't inject themselves into the host agent's behavior. This document addresses the gap between "21 tools available" and "the agent actually uses memory silently."
|
||||
|
||||
---
|
||||
|
||||
## The Problem
|
||||
|
||||
In Waggle OS, memory is deeply wired:
|
||||
|
||||
| Behavior | How Waggle does it |
|
||||
|----------|-------------------|
|
||||
| Auto-recall on every message | `orchestrator.recallMemory()` runs before every LLM call, results injected into system prompt |
|
||||
| Auto-save after every exchange | `autoSaveFromExchange()` scans user+assistant messages, extracts save-worthy facts |
|
||||
| Background cognify | Entity extraction, KG updates, relation linking run post-harvest |
|
||||
| Session tracking | `SessionStore.ensureActive()` groups conversations |
|
||||
| Identity context | `IdentityLayer.toContext()` pasted into system prompt |
|
||||
| Awareness | Active tasks/goals injected into system prompt |
|
||||
| Compaction | Old frames consolidated on schedule |
|
||||
| Wiki | Compiled periodically from accumulated frames |
|
||||
|
||||
**In a standalone MCP server, NONE of this happens automatically.** The host agent (Claude Code, Cursor, Codex) sees 21 tools and has to choose to call them. Without instruction, it won't.
|
||||
|
||||
---
|
||||
|
||||
## The Solution: Three Integration Layers
|
||||
|
||||
### Layer 1: MCP Resources (Silent, Automatic)
|
||||
|
||||
MCP resources are read by the host agent at session start — they inject context without requiring a tool call. This is the "silent" layer.
|
||||
|
||||
**Current resources (already built):**
|
||||
- `memory://personal/stats` — frame count, entity count
|
||||
- `memory://identity` — who the user is
|
||||
- `memory://awareness` — active tasks/goals
|
||||
- `memory://workspace/{id}` — workspace context
|
||||
|
||||
**New resources needed for silent integration:**
|
||||
|
||||
| Resource URI | What it returns | When host reads it |
|
||||
|---|---|---|
|
||||
| `memory://context/recent` | Last 5-10 most important memories (auto-summarized) | Session start — gives the agent "I remember..." context |
|
||||
| `memory://context/project/{path}` | Memories relevant to the current working directory | When the agent opens a project — gives project-specific recall |
|
||||
| `memory://identity/summary` | One-paragraph identity context ("You're working with Marko, a...") | Session start — personalizes the agent immediately |
|
||||
| `memory://skills/active` | User's custom skills extracted from past sessions | Session start — agent knows what patterns work |
|
||||
|
||||
**Why this matters:** Claude Code, Cursor, and Codex all read MCP resources automatically. No tool call needed. No user action needed. The agent opens a session, reads the resources, and already knows who you are, what you're working on, and what you've done before.
|
||||
|
||||
### Layer 2: CLAUDE.md / .cursorrules Instructions (Guided, Consistent)
|
||||
|
||||
The MCP server ships with a ready-to-paste instruction block that tells the host agent HOW to use memory:
|
||||
|
||||
```markdown
|
||||
## Memory Integration (hive-mind)
|
||||
|
||||
You have persistent memory via the hive-mind MCP server. Follow these rules:
|
||||
|
||||
### On every conversation start:
|
||||
- Call `recall_memory` with a summary of what the user is asking about
|
||||
- Use recalled memories to ground your response — cite them naturally
|
||||
|
||||
### After every meaningful exchange:
|
||||
- Call `save_memory` to store: decisions made, preferences expressed,
|
||||
facts learned, corrections received
|
||||
- Set importance: "critical" for decisions, "important" for preferences,
|
||||
"normal" for facts, "temporary" for session-specific context
|
||||
|
||||
### Periodically (every ~10 exchanges):
|
||||
- Call `cleanup_frames` to run maintenance (compaction, dedup)
|
||||
|
||||
### When the user mentions people, projects, or tools:
|
||||
- Call `save_entity` to record them in the knowledge graph
|
||||
- Call `create_relation` to link related entities
|
||||
|
||||
### Never:
|
||||
- Pretend to remember something you don't have in memory
|
||||
- Present memory content as your own reasoning — attribute it
|
||||
```
|
||||
|
||||
**This ships as:**
|
||||
- `~/.hive-mind/CLAUDE.md` (auto-generated on install for Claude Code)
|
||||
- `~/.hive-mind/.cursorrules` (for Cursor)
|
||||
- `~/.hive-mind/AGENTS.md` (for Codex)
|
||||
- `~/.hive-mind/instructions.md` (generic, for any agent)
|
||||
|
||||
**The installer asks:** "Add memory instructions to your active agent? [Y/n]" and appends to the appropriate config file.
|
||||
|
||||
### Layer 3: CLI Hooks (Active, Event-Driven)
|
||||
|
||||
For hosts that support hooks (Claude Code), we wire event-driven memory:
|
||||
|
||||
```jsonc
|
||||
// In ~/.claude/settings.json
|
||||
{
|
||||
"hooks": {
|
||||
"SessionStart": [{
|
||||
"command": "hive-mind-cli recall-context",
|
||||
"description": "Load relevant memories at session start"
|
||||
}],
|
||||
"Stop": [{
|
||||
"command": "hive-mind-cli save-session",
|
||||
"description": "Save session learnings to memory"
|
||||
}]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**`hive-mind-cli` commands:**
|
||||
- `recall-context` — queries memory for recent/relevant context, outputs to stdout (injected into session)
|
||||
- `save-session` — reads the session transcript, extracts save-worthy content, calls save_memory
|
||||
- `harvest-local` — scans local AI tool history (Claude Code sessions, Cursor projects) and imports
|
||||
- `cognify` — runs entity extraction + KG updates on recent frames
|
||||
- `compile-wiki` — runs wiki compilation
|
||||
- `maintenance` — compaction + dedup + reconciliation
|
||||
|
||||
**For hosts WITHOUT hooks (Cursor, Codex, Windsurf):**
|
||||
- OS-level cron job runs `hive-mind-cli maintenance` daily
|
||||
- `hive-mind-cli save-session` runs as a post-session script if the host supports it
|
||||
- Otherwise, the Layer 2 instructions guide the agent to call tools explicitly
|
||||
|
||||
---
|
||||
|
||||
## The Installation Experience
|
||||
|
||||
### Scenario: User installs hive-mind for Claude Code
|
||||
|
||||
```
|
||||
$ npm install -g @hive-mind/mcp-server
|
||||
|
||||
✓ Installed hive-mind v0.1.0
|
||||
|
||||
Setting up your memory...
|
||||
✓ Created ~/.hive-mind/personal.mind (SQLite database)
|
||||
✓ Initialized schema (frames, entities, knowledge graph)
|
||||
|
||||
Detecting AI tools on this machine...
|
||||
✓ Claude Code found (12 projects, ~340 sessions)
|
||||
✓ Cursor found (3 workspaces)
|
||||
✗ Windsurf not found
|
||||
✗ Codex not found
|
||||
|
||||
Would you like to harvest your existing AI history? [Y/n]
|
||||
> Y
|
||||
|
||||
Harvesting Claude Code sessions...
|
||||
████████████████████ 340/340 sessions
|
||||
→ 2,847 frames created
|
||||
→ 156 entities extracted
|
||||
→ 43 knowledge relations linked
|
||||
→ 12 identity signals detected
|
||||
|
||||
Harvesting Cursor projects...
|
||||
████████████████████ 3/3 workspaces
|
||||
→ 234 frames created
|
||||
|
||||
Your AI now remembers 3,081 things about your work.
|
||||
|
||||
Configure Claude Code integration? [Y/n]
|
||||
> Y
|
||||
|
||||
✓ Added hive-mind to ~/.claude/settings.json (MCP server)
|
||||
✓ Added memory instructions to project CLAUDE.md
|
||||
✓ Added SessionStart hook (auto-recall)
|
||||
✓ Added Stop hook (auto-save)
|
||||
|
||||
Done! Start a new Claude Code session — your AI will remember you.
|
||||
```
|
||||
|
||||
### What happens on the next Claude Code session:
|
||||
|
||||
1. **Session starts** → `SessionStart` hook fires → `hive-mind-cli recall-context` runs → recent memories loaded
|
||||
2. **MCP resources read** → Claude Code reads `memory://identity` + `memory://context/recent` → agent knows who you are and what you've been working on
|
||||
3. **User asks a question** → Agent sees CLAUDE.md instructions → calls `recall_memory` with the query → gets relevant past context → grounds its response
|
||||
4. **Agent responds** → CLAUDE.md instructions say to save → agent calls `save_memory` with key facts from the exchange
|
||||
5. **Session ends** → `Stop` hook fires → `hive-mind-cli save-session` extracts and saves session summary
|
||||
6. **Background** → OS cron runs `hive-mind-cli maintenance` nightly → cognify, compaction, wiki compilation
|
||||
|
||||
---
|
||||
|
||||
## How It Feels for Each Host
|
||||
|
||||
### Claude Code (deepest integration)
|
||||
- **Silent recall at session start** via hook + resources
|
||||
- **Auto-save at session end** via hook
|
||||
- **Mid-session memory** via tool calls guided by CLAUDE.md instructions
|
||||
- **Harvest on install** scans all Claude Code sessions automatically
|
||||
- **Wiki compilation** via cron or manual `hive-mind-cli compile-wiki`
|
||||
- **Feels like:** "This AI remembers everything across sessions. I never told it twice."
|
||||
|
||||
### Cursor
|
||||
- **No hooks** — relies on .cursorrules instructions
|
||||
- **MCP resources** provide identity + recent context at session start
|
||||
- **Agent calls tools** based on instructions (less reliable than hooks)
|
||||
- **Harvest on install** scans Cursor workspace history
|
||||
- **Feels like:** "The AI usually remembers, especially when I ask about past work."
|
||||
|
||||
### Codex (OpenAI)
|
||||
- **AGENTS.md** provides instructions
|
||||
- **MCP tools** available but Codex may be less consistent about calling them
|
||||
- **Harvest** limited to what Codex exposes (depends on their session export API)
|
||||
- **Feels like:** "I can tell the AI to remember things and it does."
|
||||
|
||||
### Windsurf / Antigravity / Others
|
||||
- **Generic instructions.md** shipped
|
||||
- **MCP tools** available if the host supports MCP
|
||||
- **Manual harvest** via file upload or paste
|
||||
- **Feels like:** "It's a tool I can call when I need memory."
|
||||
|
||||
---
|
||||
|
||||
## The Daemon Question
|
||||
|
||||
**Waggle has a daemon.** It runs background processes continuously:
|
||||
- Post-conversation cognify
|
||||
- Session compaction (merge old sessions)
|
||||
- Frame reconciliation
|
||||
- Wiki compilation
|
||||
- Improvement signal processing
|
||||
|
||||
**hive-mind doesn't have a daemon.** MCP servers are request-response. They start when a tool is called and stop when it returns.
|
||||
|
||||
**Three approaches to solve this:**
|
||||
|
||||
### Option A: Lazy Processing (simplest)
|
||||
- Cognify runs inside `save_memory` — when you save a frame, entity extraction happens inline
|
||||
- Compaction runs inside `recall_memory` — when you search, old frames get consolidated
|
||||
- Wiki compiles inside `compile_wiki` tool call
|
||||
- **Tradeoff:** each tool call is slower (adds 100-500ms), but no external process needed
|
||||
|
||||
### Option B: CLI Cron (recommended for production)
|
||||
```cron
|
||||
# Run nightly at 2 AM
|
||||
0 2 * * * hive-mind-cli maintenance --cognify --compact --wiki
|
||||
```
|
||||
- Cognify, compaction, and wiki run as a batch job
|
||||
- No impact on interactive tool call latency
|
||||
- Works on every OS
|
||||
- **Tradeoff:** memory isn't updated in real-time; there's a delay until the cron fires
|
||||
|
||||
### Option C: Background Service (full Waggle parity)
|
||||
- `hive-mind-daemon` runs as a system service (systemd, Windows Service, launchd)
|
||||
- Watches for new frames, runs cognify immediately
|
||||
- Handles session lifecycle events
|
||||
- Compiles wiki incrementally
|
||||
- **Tradeoff:** heavier install, another process running, more things that can break
|
||||
|
||||
**Recommendation:** Ship with **Option A** (lazy) as default, **Option B** (cron) as documented setup for power users. Reserve **Option C** for when hive-mind has enough users to justify the complexity.
|
||||
|
||||
---
|
||||
|
||||
## Skills 2.0 + Learning: What Transfers
|
||||
|
||||
In Waggle, the agent:
|
||||
- Detects repeated workflow patterns → auto-extracts SKILL.md files
|
||||
- Tracks skill usage → retires idle skills after 90 days
|
||||
- Records improvement signals (capability_gap, correction, workflow_pattern)
|
||||
- Promotes skills through 4 tiers (personal → workspace → team → enterprise)
|
||||
|
||||
**What works in hive-mind standalone:**
|
||||
- ✅ Skill extraction can happen inside `save_memory` (detect patterns in saved content)
|
||||
- ✅ Skills stored as markdown files in `~/.hive-mind/skills/`
|
||||
- ✅ MCP resource `memory://skills/active` surfaces them to the host agent
|
||||
- ✅ CLAUDE.md instructions tell the agent to check skills before starting work
|
||||
|
||||
**What doesn't transfer without Waggle:**
|
||||
- ❌ Real-time improvement signal detection (needs the agent loop)
|
||||
- ❌ Skill promotion beyond personal scope (no team layer without Waggle Teams)
|
||||
- ❌ Evolution (GEPA/EvolveSchema need the orchestrator + trace recorder)
|
||||
- ❌ Behavioral spec overrides (host agent has its own behavioral rules)
|
||||
|
||||
**This is intentional.** hive-mind gives you memory. Waggle gives you intelligence. The upgrade path is clear: "Your AI remembers with hive-mind. With Waggle, it also learns and evolves."
|
||||
|
||||
---
|
||||
|
||||
## Harvest Targets — Complete List
|
||||
|
||||
| Platform | Method | Auto-detect | Status |
|
||||
|----------|--------|-------------|--------|
|
||||
| Claude Code | Filesystem scan (~/.claude/) | ✅ Yes | Built |
|
||||
| Claude Desktop | GDPR export (claude.ai → Settings) | ❌ Manual | Built |
|
||||
| ChatGPT | GDPR export (Settings → Data controls) | ❌ Manual | Built |
|
||||
| Gemini | Google Takeout | ❌ Manual | Built |
|
||||
| Perplexity | Settings → Export | ❌ Manual | Built |
|
||||
| Cursor | Filesystem scan (~/.cursor/) | ✅ Yes | TODO |
|
||||
| Windsurf | Filesystem scan | ✅ Possible | TODO |
|
||||
| Codex | Depends on OpenAI export API | ❓ TBD | TODO |
|
||||
| Antigravity | Depends on their session format | ❓ TBD | TODO |
|
||||
| VS Code + Continue | Filesystem scan | ✅ Possible | TODO |
|
||||
| Markdown files | Direct import | N/A | Built |
|
||||
| PDF files | Direct import | N/A | Built |
|
||||
| URLs | Fetch + parse | N/A | Built |
|
||||
| Plain text | Direct import | N/A | Built |
|
||||
|
||||
**Auto-detect on install** is the key UX differentiator. The installer scans common paths for each tool and offers one-click harvest. No manual export needed for Claude Code and Cursor.
|
||||
|
||||
---
|
||||
|
||||
## What Ships in v1 vs v2
|
||||
|
||||
### v1 (launch)
|
||||
- MCP server with 21 tools + 4 resources
|
||||
- CLI with recall-context, save-session, harvest-local, maintenance
|
||||
- Auto-detect + harvest for Claude Code + Cursor
|
||||
- Manual harvest for ChatGPT, Claude, Gemini, Perplexity (via GDPR export)
|
||||
- CLAUDE.md / .cursorrules instruction templates
|
||||
- Lazy cognify (inline in save_memory)
|
||||
- Cron setup docs for maintenance
|
||||
- Wiki compilation via tool call
|
||||
|
||||
### v2 (post-launch)
|
||||
- New MCP resources: `memory://context/project/{path}`, `memory://skills/active`
|
||||
- Claude Code hooks integration (SessionStart auto-recall, Stop auto-save)
|
||||
- Windsurf + Codex + Antigravity adapters
|
||||
- Background daemon option
|
||||
- Skill auto-extraction from saved patterns
|
||||
- Cross-project memory linking
|
||||
- Export to Obsidian vault format
|
||||
|
||||
---
|
||||
|
||||
## The Upgrade Funnel
|
||||
|
||||
```
|
||||
hive-mind (free, OSS)
|
||||
"Your AI remembers across sessions"
|
||||
↓ user hits limits ↓
|
||||
Waggle Free
|
||||
"Full desktop OS with 22 personas, 60+ tools, KG viewer, wiki UI"
|
||||
↓ needs more workspaces ↓
|
||||
Waggle Pro ($19/mo)
|
||||
"Unlimited workspaces, marketplace, compliance reports"
|
||||
↓ team needs shared memory ↓
|
||||
Waggle Teams ($49/seat)
|
||||
"Shared memory, WaggleDance, governance"
|
||||
↓ enterprise needs sovereign ↓
|
||||
KVARK
|
||||
"Your infrastructure, your data, your rules"
|
||||
```
|
||||
|
||||
hive-mind is the top of the funnel. It works great standalone. But the moment the user wants a GUI, or personas, or team memory, or compliance reports, or self-evolution — they upgrade to Waggle. The memory they've built in hive-mind carries over seamlessly (same SQLite format, same ~/.hive-mind/ directory).
|
||||
|
||||
---
|
||||
|
||||
*This is the integration design, not the implementation. Code changes needed are tracked in REMAINING-BACKLOG-2026-04-16.md.*
|
||||
Reference in New Issue
Block a user