HelixDB: 面向 AI 应用的多模态图向量数据库

HelixDB 是一个统一的 OLTP 图向量数据库,旨在消除在构建 AI 应用时对独立的应用、关系型、向量和图数据库的需求。通过为内存、“公司大脑”和联邦数据访问提供单一平台,HelixDB 允许 AI agent 与多种数据类型进行交互——包括图、向量、键值 (KV)、文档和关系型数据——且都在单个系统中完成。

核心架构与数据模型

HelixDB 使用 Rust 构建,主要利用图和向量数据模型。它旨在支持多种存储范式,以降低在 AI 应用栈中管理多个存储位置的复杂性。

支持的数据模型

  • Graph: 表示复杂关系的主要模型。
  • Vector: 集成用于相似性搜索和 AI embeddings。
  • KV & Document: 支持非结构化和半结构化数据。
  • Relational: 支持结构化数据表。

部署选项与存储

HelixDB 提供两种主要的部署路径:本地开发和托管云服务。

本地开发

用户可以通过 CLI 运行 HelixDB 的本地实例。本地开发的默认存储模式是内存模式,这意味着数据会在停止实例时被清除。但是,可以使用 --disk 标志启用持久化 (helix start dev --disk)。

HelixDB Cloud

HelixDB Cloud 是一个生产就绪的、基于对象存储的部署方案。它提供以下技术规格:

  • ACID Transactions: 完全支持 ACID 合规性以确保数据完整性。
  • High Availability: 部署包括至少三个网关和数据库节点。
  • Scalability: 采用单写者架构,并具有自动扩展的读取节点。
  • Search Capabilities: 集成了全文检索和向量搜索。

查询与 SDK

HelixDB 使用一种领域特定语言 (DSL),可在 Rust 和 TypeScript 中使用。查询作为动态请求发送到 POST /v1/query 端点,从而消除了查询构建或部署步骤的需求。

Rust SDK

查询被定义为 #[register] 函数。Rust 客户端使用 tokiosonic-rs 进行异步执行和 JSON 处理。

TypeScript SDK

TypeScript SDK (支持 Node.js 20+) 允许开发者使用构建器模式定义参数和查询,然后将其转换为动态 JSON 并通过标准 HTTP fetch 请求发送。

使用 Helix Chef 进行快速原型设计

为了加速初始设置,HelixDB 提供了一个名为 helix chef 的工具。这个交互式引导程序执行以下自动化任务:

  • 安装查询技能和文档 MCP。
  • 脚手架搭建项目并启动本地实例。
  • 填充示例数据。
  • 生成一个 HELIX_CHEF_PROMPT.md 文件。

如果与 Claude Code、Codex 或 OpenCode 等编程 agent 使用,helix chef 可以根据单行描述生成一个完整的、可运行的应用,包括前端部分。

社区讨论与技术咨询

在发布之后,开发者社区针对数据库的内部机制和性能提出了几个技术问题:

  • Performance: 用户询问了关于多跳查询的 p99 延迟。
  • Open Source Status: 一些社区成员注意到,提供的 GitHub 仓库似乎包含的是客户端 SDK,而不是核心数据库源码。
  • Self-Hosting: 有关于在托管的 HelixDB Cloud 服务之外自托管数据库的能力的问题,特别是对于预算有限的用户。
  • Feature Requests: 用户对“图记忆层”的可用性表示了兴趣,并询问全文检索或向量能力是否会扩展到图的边 (edges) 上。

Sources