walrus-memory 0.0.7

Graph-based memory service for walrus agents
Documentation

walrus-memory

Graph-based memory extension for OpenWalrus agents. Runs as an extension service managed by the daemon.

Install

walrus hub install openwalrus/memory

Or build from source:

cargo install walrus-memory

Configuration

Installed automatically by walrus hub install. To customize, edit walrus.toml:

[services.memory]
kind = "extension"
crate = "walrus-memory"
enabled = true
config = { entities = ["project"], relations = ["implements"], connections = 30 }
Config field Type Description Default
entities string[] Additional entity types []
relations string[] Additional relation types []
connections usize Default limit for graph traversal 20 (max 100)

Architecture

Storage: LanceDB with three tables — entities, relations, journals. Embeddings via candle (all-MiniLM-L6-v2, 384-dim). Shared global graph across all agents.

Agent-facing tool

  • recall — batch semantic search + 1-hop graph traversal. Agent sees this as a regular tool. Automatically called before each agent run (auto-recall).

Background extraction

After each agent run, the daemon triggers async extraction via the extension's Infer capability. An extraction LLM reviews the conversation and calls two internal tools:

  • recall — check existing memories for dedup
  • extract — batch upsert entities and relations

The agent never calls extract directly — it's only used by the extraction LLM.

Lifecycle hooks

Hook Behavior
BuildAgent Injects identity/profile entities into system prompt
BeforeRun Auto-recall: searches memory, injects <recall> block
AfterRun Stores conversation journal, triggers extraction via Infer
Compact Enriches compaction prompt with recent journals

Development

Normally launched by the daemon. For standalone development:

walrus-memory serve --socket /tmp/memory.sock

License

MIT OR Apache-2.0