search_memory()
KeyHybrid retrieval over everything stored: semantic (pgvector) + keyword (FTS) + entity and type filters, fused with reciprocal-rank fusion. An absolute relevance cutoff means no padding — if nothing relevant exists, the result is honestly empty.
search_memory(query, types, entity, as_of, limit)→ RANKED SUMMARIES + IDSCallable over MCP as search_memory(query, types, entity, as_of, limit). REST mirror POST /v1/search Planned — alpha is MCP-only
The workhorse read. Before forming any view, the agent searches what the workspace already knows — semantic and keyword retrieval fused, filtered by entity and type, optionally as-of a past moment. The absolute relevance cutoff matters: when nothing relevant exists, the agent learns that, instead of being handed confident padding.
Over MCP, your agent invokes it on its own when the moment calls for it — just describe the situation. A Python SDK for headless runtimes is planned; this is what the call will look like.
| Param | Type | Description |
|---|---|---|
| queryREQUIRED | string | Natural-language or keyword query. |
| types | string[] | Filter by memory type — fact, belief, lesson, … |
| entity | string | Restrict to one entity. |
| as_of | timestamp | Search only what was knowable at this moment. |
| limit | int | Max results. Default 10. |

