find_memory_connections
Walk the entity-event graph outward from what a sentence finds, one or two hops.
Search returns the closest events; this returns events connected to them
through shared entities the vector ranking left outside the top hits, each
candidate carrying its bridge entity, path, and evidence.
Use this when the user asks what is linked to something that a ranked search
did not surface. Do not use it for a direct answer to a question; use
`search_memory` for that. Do not use it when the request states a pattern to
match; use `query_memory_graph` for that.
Read-only. Candidates are unverified pointers, not established facts.
Args:
sentence: One complete sentence, not keywords. Required for every
relation except `explore`, which forbids it.
anchor_entity_id: An entity id to walk from instead of a vector entry;
this path does not depend on the ranking. Required for
`relation="explore"`.
relation: `similar` (default, time-stratified), `before`, `after`,
`evolution`, `contrast`, or `explore`. `before` and `after` require
exactly one of `reference_time` or `anchor_event_id`; there is no
implicit "now". `contrast` returns candidates narrowed by cosine
without judging opposition, which the reader does. `explore` needs
`anchor_entity_id`, forbids `sentence`, and returns
`grounding="exploration"`.
reference_time: ISO 8601 basis for `before` and `after`.
anchor_event_id: Event basis for `before` and `after`.
top_n: Max candidates per round (server-capped).
expansion_rounds: 1 (default) or 2. Round 2 re-expands from the round-1
picks through bridges not used in round 1, reaching things two
structural steps away, so a 2-round call can return up to twice
`top_n` in total. Each candidate carries its `round`.
Returns:
`{candidates: [{event_id, summary, path, bridge_entity_id, cosine,
cosine_percentile, timestamp}], grounding, grounding_basis, bridges,
entry, searched_scope, truncations}`. `grounding` is `grounded`, `weak`,
`absent`, or `exploration`; `absent` means no neighbourhood exists for
this sentence in scope, an honest empty rather than a failure.
`event_id` feeds `get_memory_content`.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| top_n | No | Max candidates per round (server-capped). | |
| relation | No | `similar` (default, time-stratified), `before`, `after`, `evolution`, `contrast`, or `explore`. `before` and `after` require exactly one of `reference_time` or `anchor_event_id`; there is no implicit "now". `contrast` returns candidates narrowed by cosine without judging opposition, which the reader does. `explore` needs `anchor_entity_id`, forbids `sentence`, and returns `grounding="exploration"`. | similar |
| sentence | No | One complete sentence, not keywords. Required for every relation except `explore`, which forbids it. | |
| reference_time | No | ISO 8601 basis for `before` and `after`. | |
| anchor_event_id | No | Event basis for `before` and `after`. | |
| anchor_entity_id | No | An entity id to walk from instead of a vector entry; this path does not depend on the ranking. Required for `relation="explore"`. | |
| expansion_rounds | No | 1 (default) or 2. Round 2 re-expands from the round-1 picks through bridges not used in round 1, reaching things two structural steps away, so a 2-round call can return up to twice `top_n` in total. Each candidate carries its `round`. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||