Skip to content

bug(memory): A-MEM note linking never creates edges due to missing entity embeddings #1817

@bug-ops

Description

@bug-ops

Problem

A-MEM dynamic note linking (PR #1788, #1694) never creates similar_to edges because zeph_graph_entities Qdrant collection is always empty.

Root cause

In extract_and_store() (crates/zeph-memory/src/semantic/graph.rs:313):

let resolver = EntityResolver::new(&store);

EntityResolver is created without with_embedding_store(). As a result:

  • store_entity_embedding() is never called (gated on self.embedding_store.is_some())
  • zeph_graph_entities Qdrant collection is never populated
  • link_memory_notes() fires after extraction but finds an empty (or non-existent) collection

with_embedding_store() is called only in test helpers (resolver.rs:1325 etc.), not in the production extract_and_store() path.

Reproduction

Run with [memory.graph.note_linking] enabled = true, vector_backend = "qdrant", Qdrant running. After extraction completes:

note_linking: search failed for entity "alice": ... Collection 'zeph_graph_entities' doesn't exist!

No note_linking: insert_edge or note_linking: edges_created log lines ever appear.

Expected behavior

After entity extraction, entity embeddings should be stored in zeph_graph_entities, enabling note linking to find semantically similar entities from prior sessions.

Fix sketch

Pass embedding_store to extract_and_store() (or thread it into EntityResolver construction in graph.rs) so that with_embedding_store() is called in the production path.

Severity

Medium — feature is silently broken (no edges created, no user-visible error), but does not cause data loss or crashes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingmemoryzeph-memory crate (SQLite)

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions