Developer preview: the SDK packages and api.geniffy.com go live at the developer launch.
GeniffyDocs
Log In Get a key

People

Geniffy files what it learns under the people and things it is about. Three calls read it back that way: profile() for what is true about someone, brief() for what to read before dealing with them, and graph() for what connects to what.

profile: what is true about someone

card = mem.profile("Priya Nair")
for trait in card["lasting"]:
    print(trait["statement"])

lasting holds what stays true about them, and current what is going on just now. Each item has the sentence it rests on (statement), what it is about (topic, such as employer or job_title), the group it falls in (bucket, such as work or preferences), since when it has held, and clash when two memories disagree about it. grouped lists the memory ids under each bucket, and memories counts them.

{
  "subject": "priya nair",
  "lasting": [
    { "fact_id": 115, "topic": "employer", "bucket": "work", "value": "Lumen Labs",
      "statement": "Priya Nair works at Lumen Labs.", "since": "2026-10-05T03:50:55+00:00",
      "until": null, "clash": false, "inference": false, "corroborations": 1 }
  ],
  "current": [],
  "grouped": { "work": [115, 114, 111], "preferences": [113] },
  "memories": 4
}

brief: what to read first

brief = mem.brief("Priya Nair", limit=20)

The memories about someone, newest and most load-bearing first, each with where it came from, up to limit (1 to 200, default 60). total counts them, and summary is a short paragraph about them when there is enough to write one, or null.

graph: what connects to what

g = mem.graph()

nodes are the people and things the memory holds, each with how many memories are about it. edges connect two of them, and every edge carries the ids of the memories that connect them, so nothing in the graph is there without a memory behind it.

{ "from": "lumen renewal", "to": "priya nair", "label": "Details", "memory_ids": [111] }

All three read one memory: yours, or the space the client is bound to.

Last updated October 5, 2026