No description
Find a file
ProofOfConcept 91878d17a0 agents: port knowledge agents to .agent files with visit tracking
The four knowledge agents (observation, extractor, connector,
challenger) were hardcoded in knowledge.rs with their own node
selection logic that bypassed the query pipeline and visit tracking.

Now they're .agent files like the consolidation agents:
- extractor: not-visited:extractor,7d | sort:priority | limit:20
- observation: uses new {{CONVERSATIONS}} placeholder
- connector: type:semantic | not-visited:connector,7d
- challenger: type:semantic | not-visited:challenger,14d

The knowledge loop's run_cycle dispatches through defs::run_agent
instead of calling hardcoded functions, so all agents get visit
tracking automatically. This means the extractor now sees _facts-*
and _mined-transcripts nodes that it was previously blind to.

~200 lines of dead code removed (old runner functions, spectral
clustering for node selection, per-agent LLM dispatch).

New placeholders in defs.rs:
- {{CONVERSATIONS}} — raw transcript fragments for observation agent
- {{TARGETS}} — alias for {{NODES}} (challenger compatibility)

Co-Authored-By: Kent Overstreet <kent.overstreet@linux.dev>
2026-03-10 17:04:44 -04:00
.cargo daemon: resource-gated scheduling, fact-mine integration, systemd 2026-03-05 15:31:08 -05:00
.claude stash DMN algorithm plan and connector prompt fix 2026-03-05 10:24:24 -05:00
doc move README.md to toplevel 2026-03-05 15:55:59 -05:00
docs experience-mine: per-segment dedup keys, retry backoff 2026-03-09 02:27:51 -04:00
poc-daemon split into workspace: poc-memory and poc-daemon subcrates 2026-03-08 20:43:59 -04:00
poc-memory agents: port knowledge agents to .agent files with visit tracking 2026-03-10 17:04:44 -04:00
prompts split agent: parallel execution, agent-driven edges, no MCP overhead 2026-03-10 03:21:33 -04:00
.gitignore knowledge agents: extractor, connector, challenger, observation 2026-03-03 10:56:44 -05:00
Cargo.lock poc-memory status: add ratatui TUI dashboard 2026-03-10 00:41:29 -04:00
Cargo.toml split into workspace: poc-memory and poc-daemon subcrates 2026-03-08 20:43:59 -04:00
README.md docs: expand README getting started section 2026-03-07 13:58:19 -05:00

poc-memory

A persistent memory and notification system for AI assistants, modelled after the human hippocampus. Combines episodic memory (timestamped journal of experiences) with an associative knowledge graph (weighted nodes connected by typed relations), and layered background processes that maintain graph health — mirroring how biological memory consolidates during rest.

Components

Component What it does Docs
Memory store Knowledge graph with episodic journal, TF-IDF search, spectral embedding, weight decay docs/memory.md
Memory daemon Background pipeline: experience-mine, fact-mine, consolidation docs/daemon.md
Notification daemon Activity-aware message routing from IRC and Telegram docs/notifications.md
Hooks Claude Code integration: memory recall and notification delivery docs/hooks.md

Getting started

Install

cargo install --path .

This builds four binaries:

  • poc-memory — memory store CLI (search, journal, consolidation)
  • memory-search — Claude Code hook for memory recall
  • poc-daemon — notification daemon (IRC, Telegram, idle tracking)
  • poc-hook — Claude Code hook for session lifecycle events

Initialize

poc-memory init

Creates the store at ~/.claude/memory/nodes.capnp and a default config at ~/.config/poc-memory/config.jsonl. Edit the config to set your name, configure context groups, and point at your projects directory.

Set up hooks

Add to ~/.claude/settings.json (see docs/hooks.md for full details):

{
  "hooks": {
    "UserPromptSubmit": [{"hooks": [
      {"type": "command", "command": "memory-search", "timeout": 10},
      {"type": "command", "command": "poc-hook", "timeout": 5}
    ]}],
    "Stop": [{"hooks": [
      {"type": "command", "command": "poc-hook", "timeout": 5}
    ]}]
  }
}

This gives your AI assistant persistent memory across sessions — relevant memories are recalled on each prompt, and experiences are extracted from transcripts after sessions end.

Start the background daemon

poc-memory daemon

The daemon watches for completed session transcripts and automatically extracts experiences and facts into the knowledge graph. See docs/daemon.md for pipeline details and diagnostics.

Basic usage

poc-memory journal-write "learned that X does Y"  # Write to journal
poc-memory search "some topic"                     # Search the graph
poc-memory status                                  # Store overview

For AI assistants

  • Search before creating: poc-memory search before writing new nodes
  • Close the feedback loop: poc-memory used KEY / poc-memory wrong KEY
  • Journal is the river, topic nodes are the delta: write experiences to the journal, pull themes into topic nodes during consolidation
  • Notifications flow automatically: IRC/Telegram messages arrive as additionalContext
  • Use daemon commands directly: poc-daemon irc send #channel msg, poc-daemon telegram send msg