A local memory system providing vector, keyword, and graph-based search for AI agents. Features cognitive retention and deduplication.

Install

mkdir -p .claude/skills/ariadne && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/19472" && unzip -o skill.zip -d .claude/skills/ariadne && rm skill.zip

Installs to .claude/skills/ariadne

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Ariadne memory system for Hermes — FAISS + FTS5 + knowledge graph + cognitive retention. Local-first, zero daemon.
114 charsno explicit “when” trigger
Intermediate

Key capabilities

  • Perform hybrid vector and keyword search
  • Traverse knowledge graph with typed edges
  • Deduplicate memories using MinHash LSH
  • Manage cognitive retention with forgetting curves
  • Export and import memories as JSON

How it works

Ariadne uses a hybrid search engine combining FAISS vector search and SQLite FTS5 keyword search, supported by a knowledge graph and cognitive retention logic.

Inputs & outputs

You give it
Memory content or search query
You get back
Retrieved memory records or graph traversal results

When to use ariadne

  • Enable long-term memory for an AI agent
  • Perform hybrid vector and keyword search
  • Deduplicate agent knowledge base
  • Implement cognitive retention for agent sessions

About this skill

Ariadne — Memory System for Hermes

Ariadne is a local-first memory system for AI agents. It replaces Mnemosyne as the Hermes memory provider with a hybrid search engine: FAISS vector search + SQLite FTS5 keyword search + Reciprocal Rank Fusion, plus a knowledge graph with typed edges and multi-hop traversal, MinHash LSH near-duplicate deduplication, and an Ebbinghaus forgetting curve for cognitive retention. No cloud, no daemon, no API keys.

Features at a Glance

CapabilityDetails
Vector searchFAISS (auto Flat→IVF at scale)
Keyword searchSQLite FTS5 BM25
Hybrid fusionReciprocal Rank Fusion (RRF)
Knowledge graphTyped edges, multi-hop traversal via recursive CTEs
DeduplicationMinHash LSH + SHA-256 content hash
RetentionEbbinghaus forgetting curve (stability grows with use)
Shared memoryCross-agent surface via separate DB
StorageSingle SQLite file (~/.hermes/ariadne/memory.db)

Setup

1. Install the Python package

pip install ariadne-memory

With embeddings support (recommended):

pip install "ariadne-memory[embeddings]"

2. Install the Hermes plugin

git clone https://github.com/kyssta-exe/Ariadne.git /tmp/ariadne-repo
cp -r /tmp/ariadne-repo/plugin ~/.hermes/plugins/ariadne
rm -rf /tmp/ariadne-repo

Or manually create ~/.hermes/plugins/ariadne/ with __init__.py and plugin.yaml from the repo.

3. Switch the provider

hermes config set memory.provider ariadne

Or edit ~/.hermes/config.yaml:

memory:
  provider: ariadne

4. Migrate from Mnemosyne (optional)

If you have existing Mnemosyne memories:

ariadne migrate ~/.hermes/mnemosyne/data/mnemosyne.db \
  --db-path ~/.hermes/ariadne/memory.db

Or export to JSON first and import:

ariadne export -o /tmp/mnemosyne-export.json \
  --db-path ~/.hermes/mnemosyne/data/mnemosyne.db
ariadne import /tmp/mnemosyne-export.json \
  --db-path ~/.hermes/ariadne/memory.db

5. Restart and verify

hermes restart

Then ask Hermes: "Check memory status" — you should see "engine": "Ariadne" in the output.

File Layout

~/.hermes/
├── plugins/
│   └── ariadne/
│       ├── __init__.py     # MemoryProvider implementation
│       └── plugin.yaml     # Plugin metadata + tool schemas
└── ariadne/
    ├── memory.db           # SQLite: memories, graph, embeddings, metadata
    └── shared/
        └── memory.db       # Cross-agent shared memory surface

Plugin Tools

Ariadne exposes these tools through the Hermes MemoryProvider interface with the ariadne_ prefix.

Core Memory Tools

ToolPurposeKey Params
ariadne_rememberStore a new memorycontent, importance (0-1), memory_type, entities, metadata
ariadne_recallSearch memories (hybrid vector+keyword)query, limit, type_filter, importance_min
ariadne_forgetDelete a memory by IDmemory_id
ariadne_updateUpdate memory content or metadatamemory_id, content, importance, metadata
ariadne_invalidateSoft-delete / mark memory inactivememory_id
ariadne_statsDatabase statistics(none)

Knowledge Graph Tools

ToolPurposeKey Params
ariadne_graph_linkCreate a typed edge between entitiessource, target, relationship, weight
ariadne_graph_queryTraverse the graph from an entityentity, hops (default 2)

Export / Import

ToolPurposeKey Params
ariadne_exportExport all memories as JSONoutput_path
ariadne_importImport memories from JSONinput_path

Scratchpad (ephemeral notes)

ToolPurposeKey Params
ariadne_scratchpad_writeWrite a scratchpad notecontent
ariadne_scratchpad_readRead all scratchpad notes(none)
ariadne_scratchpad_clearClear scratchpad(none)

Shared Memory (cross-agent)

ToolPurposeKey Params
ariadne_shared_rememberStore in shared surfacecontent, importance, memory_type
ariadne_shared_recallSearch shared surfacequery, limit
ariadne_shared_forgetDelete from shared surfacememory_id
ariadne_shared_statsShared surface statistics(none)

Diagnostics & Maintenance

ToolPurposeKey Params
ariadne_diagnoseHealth check + version info(none)
ariadne_sleepRun full maintenance cycle (consolidate + lifecycle)dry_run

CLI Commands

The ariadne CLI provides direct database access outside of Hermes:

# Initialize a new database
ariadne init --db-path ~/.hermes/ariadne/memory.db --dim 384

# Add a memory
ariadne add "Deploy script lives in infra/deploy.sh" \
  --type semantic --importance 0.8 --db-path ~/.hermes/ariadne/memory.db

# Search memories
ariadne search "deploy script" -k 5 --db-path ~/.hermes/ariadne/memory.db

# Show stats
ariadne stats --db-path ~/.hermes/ariadne/memory.db

# Export/import JSON
ariadne export -o backup.json --db-path ~/.hermes/ariadne/memory.db
ariadne import backup.json --db-path ~/.hermes/ariadne/memory.db

# Run maintenance (consolidate + evict + prune)
ariadne maintain --db-path ~/.hermes/ariadne/memory.db

Backup & Restore

# Create a consistent backup (WAL checkpoint + copy)
ariadne backup --db-path ~/.hermes/ariadne/memory.db \
  -o ~/.hermes/ariadne/backup-$(date +%Y%m%dT%H%M%S).db

# Restore from backup (creates safety backup first)
ariadne restore ~/.hermes/ariadne/backup-20260101T120000.db \
  --db-path ~/.hermes/ariadne/memory.db

# Restore without safety backup
ariadne restore ~/.hermes/ariadne/backup-20260101T120000.db \
  --db-path ~/.hermes/ariadne/memory.db --no-safety-backup

Quick backup shortcut (copies all files):

cp -r ~/.hermes/ariadne ~/backup/ariadne-$(date +%Y%m%d)

Dashboard

Ariadne includes a web dashboard for visualizing memory stats, the knowledge graph, and search results.

# Install dashboard dependency
pip install "ariadne[dashboard]"

# Launch dashboard
ariadne dashboard --host 0.0.0.0 --port 8765

# Without auto-opening browser
ariadne dashboard --host 0.0.0.0 --port 8765 --no-browser

Open http://localhost:8765 in a browser. The dashboard provides:

  • Memory count and type breakdown
  • Knowledge graph visualization (interactive)
  • Search interface
  • Lifecycle tier distribution (hot/warm/cold)
  • FAISS index stats

Best Practices

Memory Quality

  • Set importance thoughtfully (0.0–1.0): facts the agent needs long-term should be 0.7+; ephemeral context can be 0.3–0.5.
  • Use memory_type to categorize: semantic (facts/preferences), procedural (how-to), episodic (events/conversations).
  • Add entities when storing memories — this feeds the knowledge graph and improves graph traversal queries.

Maintenance

  • Run ariadne_sleep periodically (e.g., on cron or at session end) to consolidate duplicates and age out stale memories.
  • Use dry_run: true on consolidate/prune first to see what would be affected before committing.
  • Back up before maintenance: ariadne backup before large consolidation or pruning runs.

Graph Usage

  • Link related entities with ariadne_graph_link as the agent discovers relationships.
  • Query with hops=2 or 3 for most use cases; higher hops are slower and usually unnecessary.

Shared Memory

  • Use ariadne_shared_* tools for knowledge that should persist across agent sessions or be shared between multiple Hermes agents.
  • The shared surface lives at ~/.hermes/ariadne/shared/memory.db — back it up separately if needed.

Performance

  • FAISS auto-upgrades from FlatIP to IndexIVFFlat as the dataset grows — no manual tuning needed.
  • The vector index is rebuilt from the database on every startup, so there's no separate index file to manage.
  • For very large datasets (100K+ memories), the IVF index provides sub-millisecond recall.

Reverting to Mnemosyne

hermes config set memory.provider mnemosyne
hermes restart

Or disable the plugin without removing it:

mv ~/.hermes/plugins/ariadne ~/.hermes/plugins/ariadne.disabled
hermes restart

Addons

Ariadne supports domain-specific addons via Python entry_points. Addons are separate pip packages that register via the ariadne.addons entry_points group and are auto-discovered at runtime.

Available Addons

AddonDescriptionInstall
ariadne-financePDF/Excel extraction, ticker recognition, financial knowledge graphpip install ariadne-finance

Finance Addon

# Core (Excel + CSV only)
pip install ariadne-finance

# With PDF support (marker-pdf + pdfplumber)
pip install "ariadne-finance[pdf]"

# Full (PDF + yfinance market data)
pip install "ariadne-finance[full]"

CLI usage:

ariadne finance ingest report.pdf --importance 0.8
ariadne finance search "NVDA revenue Q3"
ariadne finance tickers report.txt

Dashboard API: GET /api/finance/tickers?text=..., GET /api/finance/classify?text=..., POST /api/finance/ingest

Creating Custom Addons

from arriadne.addons import BaseAddon, ExtractorBase, EntityType

class MyAddon(BaseAddon):
    name = "my-addon"
    version = "0.1.0"
    description = "My custom domain addon"

    def get_extractors(self):
        return [MyExtractor()]

    def get_entity_types(self):
        return [EntityType(name="custom", display_name="Custom Entity")]

    def get_cli_commands(self):
        from arriadne.addons import CLICommand
        return [CLICommand(name="my-cmd", help_text="My command", handler=my_handler)]

Register in pyproject.toml:

[project.entry-points."ariadne.addons"]
my-addon = "my_addon:Addon"

Addons provide: extractors, entity types, CLI commands, AP


Content truncated.

When not to use it

  • Using editable pip installs
  • Running as a daemon

Prerequisites

Python package ariadne-memoryHermes plugin installation

Limitations

  • Non-editable install required
  • Entity canonicalization needed on ingress

How it compares

It provides a local-first, zero-daemon memory system that integrates directly into Hermes without requiring external APIs.

Compared to similar skills

ariadne side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
ariadne (this skill)01moReviewIntermediate
langchain268moReviewIntermediate
senior-ml-engineer67moReviewAdvanced
dspy46moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

langchain

zechenzhangAGI

Framework for building LLM-powered applications with agents, chains, and RAG. Supports multiple providers (OpenAI, Anthropic, Google), 500+ integrations, ReAct agents, tool calling, memory management, and vector store retrieval. Use for building chatbots, question-answering systems, autonomous agents, or RAG applications. Best for rapid prototyping and production deployments.

26138

senior-ml-engineer

davila7

World-class ML engineering skill for productionizing ML models, MLOps, and building scalable ML systems. Expertise in PyTorch, TensorFlow, model deployment, feature stores, model monitoring, and ML infrastructure. Includes LLM integration, fine-tuning, RAG systems, and agentic AI. Use when deploying ML models, building ML platforms, implementing MLOps, or integrating LLMs into production systems.

634

dspy

davila7

Build complex AI systems with declarative programming, optimize prompts automatically, create modular RAG systems and agents with DSPy - Stanford NLP's framework for systematic LM programming

430

ai-engineer

sickn33

Build production-ready LLM applications, advanced RAG systems, and intelligent agents. Implements vector search, multimodal AI, agent orchestration, and enterprise AI integrations. Use PROACTIVELY for LLM features, chatbots, AI agents, or AI-powered applications.

725

llm-app-patterns

davila7

Production-ready patterns for building LLM applications. Covers RAG pipelines, agent architectures, prompt IDEs, and LLMOps monitoring. Use when designing AI applications, implementing RAG, building agents, or setting up LLM observability.

326

llm-application-dev

skillcreatorai

Building applications with Large Language Models - prompt engineering, RAG patterns, and LLM integration. Use for AI-powered features, chatbots, or LLM-based automation.

323

Search skills

Search the agent skills registry