From 0eb4915cf979369c0a7530c8036162b9cb6af44e Mon Sep 17 00:00:00 2001 From: Cal Corum Date: Sat, 28 Feb 2026 22:12:39 -0600 Subject: [PATCH] store: Auto-edge creation on memory_store in MCP server --- ...on-on-memory-store-in-mcp-server-ee85bf.md | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 graph/decisions/auto-edge-creation-on-memory-store-in-mcp-server-ee85bf.md diff --git a/graph/decisions/auto-edge-creation-on-memory-store-in-mcp-server-ee85bf.md b/graph/decisions/auto-edge-creation-on-memory-store-in-mcp-server-ee85bf.md new file mode 100644 index 00000000000..5142ac371cf --- /dev/null +++ b/graph/decisions/auto-edge-creation-on-memory-store-in-mcp-server-ee85bf.md @@ -0,0 +1,36 @@ +--- +id: ee85bf89-93f0-48e4-b911-7ddc18a735b5 +type: decision +title: "Auto-edge creation on memory_store in MCP server" +tags: [cognitive-memory, edges, mcp, automation, architecture, mcp-server] +importance: 0.8 +confidence: 0.8 +created: "2026-03-01T04:12:39.570452+00:00" +updated: "2026-03-01T04:12:39.570452+00:00" +--- + +# Auto-edge Creation on memory_store in MCP Server + +## Decision + +Implemented auto-edge creation in `mcp_server.py` that runs after every `memory_store` call. + +## Implementation + +The `_auto_create_edges()` helper: +- Uses `client.recall(title + tags, limit=5, semantic=True)` to find related memories +- Applies type-pair heuristics from `AUTO_EDGE_HEURISTICS` table (subset of edge-proposer.py) to choose edge types: SOLVES, BUILDS_ON, RELATED_TO +- Calls `client.relate()` for up to 3 edges +- Returns `(edges_list, error_string_or_None)` tuple — never raises so store always succeeds + +## Response Shape + +Response includes `auto_edges` array and optional `auto_edge_error` key. + +## Key Design Decisions + +1. Same-type pairs excluded as too noisy +2. REQUIRES/FOLLOWS excluded as needing stronger signal +3. Keyword-only fallback requires tag overlap to prevent spurious edges +4. Similarity score passed as edge strength +5. Description arrow matches actual from/to direction (after direction resolution)