Skip to content

MCP recall: fused-mode 'score' field is not the sort key (rank is graph-weighted, score is vector-leg) — annotate or expose the fused key #38

Description

@ConsultingFuture4200

Found during the pre-launch end-to-end verification of the documented claude mcp add flow (real Claude Code session against the published ghcr.io/.../postgres-trimodal:pg17 image).

Repro

Store 3 memories, connect(first, third, rel=explained_by), then recall(query_text=..., mode=fused, k=3). Response ranked ids [2, 0, 1] with scores [-0.802, -0.637, -0.963] — not monotonic in either direction. The ranking is correct (the explained_by bridge outranks its source; both facts beat the unrelated note — connection-weighted recall working as designed), but the emitted score is evidently the raw vector-leg value, not the fused (PPR-blended / bridge-injected) key the ranking actually used. In pure-vector runs the scores ARE monotonic, which makes the fused inconsistency look like a bug to a new user.

Proposed

In tools/tridb_mcp.py recall responses, either (a) report the effective fused ordering key (if the operator exposes it), or (b) rename/annotate the field (vector_score) and add rank explicitly, plus one sentence in docs/mcp_agent_memory_v0.1.0.md explaining that fused rank is graph-weighted and intentionally not derivable from the vector score alone. Option (b) is honest and available today even if the operator does not surface the blended score.

Cosmetic severity, high confusion value — first thing a curious user will notice and ask about.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions