Semantic Call Memory

Retrieving prior call context by meaning, not just by phone number.

Semantic call memory is the use of vector embeddings to retrieve relevant prior conversations and customer context at the time of a new call. Instead of looking up a customer record by exact phone-number match, the system can answer questions like “has this caller ever mentioned a specific piece of equipment before?” or “what did we last dispatch to this address?” based on the meaning of what they say, not just metadata.

How it works

Every call memo is converted to a vector embedding — a numeric representation of its meaning — and stored alongside the structured record. When a new call comes in, the agent generates a query embedding from the caller’s initial statement and retrieves the top few semantically similar prior memos. Those memos become part of the agent’s context window for the rest of the call.

The retrieval typically runs in a Postgres database with the pgvector extension, which provides nearest-neighbor search on vector columns at low latency. OpenAI’s text embedding models are a common choice for generating the embeddings, though any modern embedding model works.

Why it matters

Phone-number lookups are too narrow. The same household can call from three different numbers; a property manager can call about a dozen different sites. Semantic retrieval pulls in the right history regardless of which number called. It also surfaces near-match context the contractor would never have thought to query — “a customer in this same neighborhood reported a similar issue last winter” can change how the agent handles the new call.

How Night Watch implements it

Night Watch’s Memory add-on ($49 per month or included in the pilot bundle) runs semantic retrieval over the contractor’s call history using pgvector on Supabase. Retrieved memos are injected into the agent’s context at the start of each call, so a returning caller hears “hi Mike, last time we sent Carlos out for the rooftop unit at the Bearden store, is it the same equipment?” instead of a generic greeting.