很多 agent memory 的问题,不是检索不到,而是把已经变化的事实继续当成当前事实。Graphiti 的切入点是 temporal context graph:把实体、关系和事实放进图里,同时保留事实何时生效、何时被替代,以及它来自哪个 episode。
这和静态知识图谱有一个实际差别。用户偏好、订单状态、项目配置、团队成员关系都可能变化;如果只做一次向量切片,旧答案仍然可能因为相似度很高而被召回。Graphiti 的检索路径把语义、BM25 关键词和图遍历组合起来,再把结果连接回产生它的 source node。我会先把它当成一个需要基础设施的工程组件,而不是开箱即用的记忆插件。官方入口是 pip install graphiti-core,quickstart 还要求连接 Neo4j 或 FalkorDB、初始化 indexes 和 constraints、添加 episodes,再做 hybrid search。数据库名、driver URI、LLM endpoint、embedding/cross-encoder 配置任何一项不一致,都会让"记忆没更新"和"查询没结果"看起来很像同一个问题。Graphiti 也支持用 Pydantic 定义更具体的 ontology。MCP server 里可以看到 Requirement、Preference、Procedure、Location、Event、Organization、Document 等实体类型;这意味着 schema 设计会影响抽取和查询,不应把 ontology 当成后期装饰。我的第一次验证只做四件事:在隔离环境安装依赖;确认 Neo4j/FalkorDB 的连接和默认数据库名;写入一个带时间线的 episode;再用一个已知 source node 检查混合检索和历史版本。只有写入、查询、来源回溯和矛盾处理都能观察到,才把它交给真实 agent。安装风险和权限风险先按高风险处理,尤其不要把生产数据库或真实用户对话直接作为第一批测试数据。这是一个独立的 Doramagic 能力包,不是 Graphiti 官方文档或背书。项目页:https://doramagic.ai/zh/projects/graphiti/;Human Manual:https://doramagic.ai/zh/projects/graphiti/manual/;上游:https://github.com/getzep/graphiti。