What good is a personal assistant with amnesia?
OpenAI dropped GPT-5 and Reddit immediately exploded with complaints about its “lack of personality.”
Think about that. People are upset their AI doesn’t have enough personality.
But what about stopping the agent from hallucinating and suffering from amnesia, where all the relationships and context between data points aren’t readily available to it?
Without that context, your agent can never make good recommendations. And without temporal understanding, yesterday’s relevant information might be stale today – but your agent doesn’t know that. So it’s giving recommendations based on outdated context.
No knowledge graph means no way to maintain connections or understand when information expires.
This is we’ve covered in this workshop about implementing memory that actually works. Graph-based memory with Graphiti and FalkorDB. Real solutions to stop your agents from making terrible recommendations and forgetting relationships the moment you hit that context limit.
Answers from the Q&A
What are your plans for HIPAA compliance, given that it is a cornerstone requirement for our use cases?
We just completed SOC2, and HIPAA compliance is our next objective.
Can you provide more details about Graphiti?
Graphiti handles knowledge graph creation with a temporal aspect. We ran a detailed workshop on this: https://www.youtube.com/watch?v=F4hwuLlISP4
What happens if I ask QueryWeaver acompletely random question? Which LLM do you use?
The tool recognizes when it can’t answer your question and responds with “out of context.” We’re currently running GPT-4.1.
Do you generate a SQL query every time, even if the data was retrieved in the previous prompt?
Yes. QueryWeaver converts your question into a complete SQL query each time. Personal data in the database isn’t saved for security reasons. Only your question and the generated SQL query are stored to improve future answers.
Does QueryWeaver map the CRM (PostgreSQL) schema as a graph, where tables are nodes and columns are properties? Does the graph expand during a query with user properties?
QueryWeaver maps the database schema into a graph where nodes represent tables and columns, and relationships connect them. The memory graph operates separately and remains isolated for each user.
How long do you retain memory? Do you use another node in the graph for personalization, or do you store user information elsewhere?
Currently, we retain memory for one month of usage and plan to add an erasure mechanism. QueryWeaver manually creates a user node in Graphiti style and updates it with every use.
Do you define query success or failure by successful query execution? How do you handle queries where the results do not match the user’s intent?
We focus on capturing success and failure in memory and making this information available to the LLM. We plan to include user feedback in the success criteria, so the agent learns from both execution results and whether the answer matches user needs.
Do you define query success or failure by successful query execution? How do you handle queries where the results do not match the user’s intent?
We focus on capturing success and failure in memory and making this information available to the LLM. We plan to include user feedback in the success criteria, so the agent learns from both execution results and whether the answer matches user needs.
Can QueryWeaver handle complex schemas, such as 50 tables with many relationships?
Yes, the system handles complex schemas well. That’s exactly what QueryWeaver is designed for!
When uploading a schema, do you use DDL format? Does the graph format work for highly connected tables?
Yes, we use DDL format for schema upload, and the graph format works well for tables with dense connections.
How do you handle PII or privileged user information?How do you handle PII or privileged user information?
We avoid PII in demos, but you can implement a filter layer that removes PII before storing it in memory.
Can you support ABAC or RBAC?
FalkorDB supports Access Control Lists (ACL) for fine-grained control over graph access and permission levels.
Do you define entities and ontologies with Graphiti, or do you use a predefined schema? What are the trade-offs?
We expand the predefined Graphiti ontology, which makes the schema fixed. Flexible ontologies add adaptability but may introduce noise. You should select based on the memory capability your agent needs.
How do you correct or invalidate inaccurate memory?
When you add new memory that overlaps old, incorrect data, the previous memory record is marked as invalid.
Is the memory graph partition-friendly? Can it be split between RAM spaces on different instances?
In a single-shard database, all graphs share RAM. In a cluster, each shard holds multiple graphs. You cannot split a single graph across multiple machines.
How do you construct the memory graph from a technical perspective?
Refer to https://github.com/FalkorDB/QueryWeaver. First, connect to the database and fetch the schema. Next, integrate Graphiti for agentic memory. See the linked YouTube video for details.