Three calls: store, recall, answer.
One API. The recall() call returns short-term, long-term, and surrounding context in a single round-trip, ready to drop into your prompt.
1
Store
add() facts and turns: your user's words, the assistant's own (speaker "me"), or a person's by name. Indexed on the way in - no LLM.
2
Recall
recall() returns short-term + long-term + context in one call - a bounded, fixed-size context.
3
Answer
Feed that bounded context to your LLM - any provider, your key.
from wontopos import Client mem = Client(api_key="wos-...") mem.add("she prefers tea over coffee", user_id="alice") mem.add("I suggested the jasmine tea", user_id="alice", speaker="me") # its own words # one call: short + long + context ctx = mem.recall("what does alice drink?", user_id="alice")
Memories carry a speaker. Your user's words are the default, speaker "me" stores what the assistant itself said, and a name like "Bob" remembers who around your user said it, so recall can answer by person.
Speakers are explicit, like stores. Register a person first, then store under their name — a typo can never quietly become a new person. A store registers up to 50 people to start (we plan to raise it), and "me" never needs registration or counts.