BlitzGraph:为LLM代理构建的图数据库,Supabase的图替代方案
BlitzGraph 是一个专为 AI 代理设计的图数据库,支持多类型实体、双向关系和类型化 JSON 查询语言 BQL。它主张用实体和关系建模现实,而非表格,并提供了全文搜索、引用完整性、智能事务等内置功能,旨在成为 Supabase 的图版本。
BlitzGraph 是一款专为大型语言模型代理设计的图数据库,其核心理念是用实体和关系来建模现实,而非传统的表格。它提供了多类型实体、双向关系、类型化 JSON 查询语言(BQL)等一系列特性,旨在解决现有数据库在代理场景下的痛点。
核心特性
- 多类型实体:一个实体可以同时拥有多种类型,比如一个用户既可以是一般用户,也可以是管理员和版主。实体随时间的推移通过获得和失去类型来演化,无需修改表结构或进行迁移。
- 双向关系:关系在存储时同时维护两个方向,因此查询“谁写了这篇文章”和“这个用户写了什么”具有相同的成本和索引效率(O(1)),无需反向查找表或额外查询。
- BQL 查询语言:BlitzGraph 的查询语言 BQL 基于类型化 JSON,代理和代码构建的是结构化数据对象,而非 SQL 字符串。BQL 支持过滤器、嵌套展开、投影和全文搜索,在一个请求中完成,避免了 N+1 问题。
- 丰富的内容类型:支持 EMAIL、URL、DATE、JSON、FLEX 等类型,而非单一的 varchar,数据库层面内置验证,让模式更准确地描述数据。
- 引用完整性:引擎层面强制执行基数约束和 onDelete 策略(级联、限制、取消链接),保持图的默认一致性。
- 内置全文搜索:原生的 BM25 搜索引擎,支持自动补全、前缀、精确和全词干模式,无需 Elasticsearch 等外部服务,且可在图遍历中使用。
- 智能事务:变更操作经过拓扑排序,并在最终结果上验证,而非逐行执行。业务规则检查整个事务的最终状态,确保复杂多实体操作要么全部成功,要么全部回滚,始终一致。
- 数据库中的业务逻辑:验证、计算字段、转换和效果都在模式中定义,业务规则与数据共存,而非分散在中间件和应用代码中。
与其他数据库的对比
BlitzGraph 与 Supabase、Convex、MongoDB、Firebase 和 Neo4j 进行了对比。它在多类型组合、双向 O(1) 反向查找、代理沙箱等方面具有独特性。在数据模型上,它在一个引擎中融合了图、文档和关系特性,支持嵌套图读取($expand)、引用完整性、内置全文搜索、内容类型验证以及文件原生值。开发者体验方面,BQL 是代理可组合的结构化查询,业务逻辑可直接嵌入模式,智能事务确保拓扑一致。
然而,在实时/直播查询、生产年限和社区生态方面,Supabase、Convex、Firebase 等目前更具优势。BlitzGraph 坦诚地指出了这些差距。
适用场景
BlitzGraph 特别适合需要复杂实体关系建模的应用,尤其是 AI 代理需要自主查询和操作数据的场景。其设计目标包括:减少代理生成错误查询的概率、消除实体演化时的迁移痛苦、以及提供与真实世界关系一致的数据模型。对于需要频繁变更模式或处理多态实体的团队,BlitzGraph 提供了一个有力的替代方案。