开源项目 Antfly 提供 Go 语言实现的分布式多模态搜索、向量记忆和知识图功能
Antfly 是一个基于 etcd Raft 库构建的分布式搜索引擎。它针对多模态数据——文本、图像、音频和视频——整合了全文搜索(BM25)、向量相似度搜索与图遍历。写入数据时,系统会自动生成 Embedding、分块和图关系边。内置 RAG Agent 通过检索增强生成将这些能力整合在一起。
# Start a single-node cluster with built-in ML inference
cd go/pkg/antfly
go run ./cmd standalone
# Or run with Docker
docker run -p 8080:8080 ghcr.io/antflydb/antfly:omni
启动后,你可以通过 http://localhost:8080 访问 Antfarm 控制台,其中提供了搜索、RAG、知识图谱、Embedding、重排序等功能的 Playground。
完整操作流程请参阅快速入门指南。
混合搜索——在一次查询中同时使用全文搜索(BM25)、稠密向量和稀疏向量(SPLADE)
RAG Agent——内置检索增强生成,支持流式输出、多轮对话、工具调用(Web 搜索、图遍历)和置信度评分
图索引——自动提取关系,并支持针对数据执行图遍历查询
多模态——使用 CLIP、CLAP 和视觉语言模型对图像、音频及视频进行索引和搜索
重排序——使用 cross-encoder 进行重排序,并通过基于分数的剪枝减少噪声
聚合——提供统计聚合(sum/min/max/avg)和词项分面,支持数据分析
事务——支持分片级 ACID 事务和分布式协调
文档 TTL——自动让文档过期,无需自行清理
S3 存储——将数据存储到 S3、MinIO 或 R2,大幅节省成本,并显著加快分片拆分
SIMD / SME 加速——通过 go-highway,在 x86 和 ARM 平台上使用硬件 intrinsic 加速向量运算
分布式——支持 Raft 共识、自动分片与复制,以及水平扩展
数据增强 Pipeline——可为每个索引配置 Pipeline,用于生成 Embedding、摘要、图关系边和自定义计算字段
自带模型——支持 Ollama、OpenAI、Bedrock、Google,也可以通过 Antfly inference 在本地运行模型
身份认证——内置用户管理,支持 API key、basic auth 和 bearer token
备份与恢复——支持备份到本地磁盘或 S3,并从中恢复
Kubernetes Operator——使用 Operator 部署和管理集群
MCP Server——支持 Model Context Protocol,让 LLM 能够将 Antfly 作为工具使用
A2A 协议——支持 Google A2A 标准的 Agent-to-Agent 通信
Antfarm——Web 控制台,提供搜索、RAG、知识图谱、Embedding、重排序、分块、NER、OCR 和转录等功能的 Playground
pgaf 将 Antfly 搜索能力引入 Postgres。创建索引,使用 @@@ 操作符,就完成了:
CREATE INDEX idx_content ON docs USING antfly (content)
WITH (url = 'http://localhost:8080/db/v1/', collection = 'my_docs');
SELECT * FROM docs WHERE content @@@ 'fix my computer';
@antfly/components 提供可直接使用的 React 搜索 UI 组件,包括 SearchBox、Autosuggest、Facet、Results、RAGBox 和 AnswerBox,以及 useAnswerStream、useCitations 等流式 Hook。
Antfly inference 负责处理 ML 相关任务,包括 Embedding、分块、重排序、分类、NER、OCR、转录和生成等。它通过 antfly inference CLI 运行,并会在 standalone 模式下自动启动,因此不需要单独配置。
Antfly 采用 multi-Raft 设计,将共识组彼此分离:
Metadata Raft——负责表结构、分片分配和集群拓扑
Storage Raft——每个分片对应一个,负责处理数据、索引和查询
端到端混沌测试受到 Jepsen 启发,覆盖节点崩溃、Leader 故障、高负载下的分片拆分和集群扩容等场景。这些测试会运行真实的多节点集群,并注入故障,以验证 Raft 共识、事务和复制机制在发生故障时是否能够正确运行。
关键的分布式协议均通过 TLA+ 进行形式化定义和模型检验:
AntflyTransaction——分布式事务协议
occ-2pc——采用两阶段提交的乐观并发控制
AntflySnapshotTransfer——Raft 快照传输
AntflyShardSplit——分片拆分协调
欢迎加入 Discord,获取支持、参与讨论并了解最新动态。
有兴趣参与贡献?请参阅 CONTRIBUTING.md。
核心 Server 采用 Elastic License 2.0(ELv2)。这意味着你可以使用、修改和自行托管它,也可以基于它构建产品——但不能将 Antfly 本身作为托管服务对外提供。其余所有项目——SDK、React 组件、inference runtime、pgaf、docsaf 和 evalaf——均采用 Apache 2.0 许可证。我们尽力让尽可能多的内容采用宽松许可证。