oceanbase/seekdb

GitHub: oceanbase/seekdb

一款面向 AI Agent 的 MySQL 兼容状态存储引擎,提供混合向量与全文搜索及写时复制沙箱能力。

Stars: 2739 | Forks: 253

seekdb logo # **写入。搜索。Fork。专为 AI Agent 设计的状态存储。**

GitHub Stars Latest Release Commit Activity Contributors Issues License Downloads Join Discord Documentation Ask DeepWiki follow on LinkedIn YouTube

oceanbase%2Fseekdb | Trendshift

兼容 MySQL · 嵌入式或服务器模式 · 混合向量 + 全文搜索 · COW 沙箱 ⚡ 1,523 QPS 流式写入+搜索 (10倍于 Milvus,3倍于 Elasticsearch)
🌿 FORK/MERGE 沙箱,为 Agent 探索提供安全环境
🔍 一条 SQL 查询实现向量 + 全文 + 标量搜索
🐬 完整 ACID,MySQL 协议,兼容 LangChain/LlamaIndex/Dify **English** | [中文版](README_CN.md) | [日本語](README_JP.md) [30秒体验](#30-second-try) · [快速开始](#quick-start) · [为什么选择 seekdb](#why-seekdb-for-agents) · [生态系统](#ecosystem--integrations) · [参与贡献](#development)
## ⚡ 性能概览
seekdb benchmark: 10.7× the QPS of Milvus, 3.2× of Elasticsearch
## ⏱️ 30秒体验
seekdb 30-second demo
``` pip install -U pyseekdb # pyseekdb is the Python SDK for seekdb ``` 无需服务器,无需 schema,无需配置 embedding。嵌入式模式在进程内运行;只需一行代码即可切换至服务器 / OceanBase 模式。[更多示例 →](#more-examples) ## ✨ 为什么 Agent 选择 seekdb? ### 🔥 流式写入 + 并发搜索,拒绝 P99 延迟突增 Agent 的负载是持续写入与毫秒级读取的交织。seekdb 的 **异步索引流水线 (Change Stream)** 将 DML 与索引构建解耦, 并且其 **双层 HNSW**(增量层 + 快照层)使得新写入的 向量能够立刻被检索到。
seekdb async index pipeline architecture
写入路径在提交后会直接返回,*无需等待* 索引构建。 Change Stream 流水线通过异步消费 redo log 来更新 增量 HNSW。查询操作会利用细粒度读锁同时命中增量层和快照层索引 —— **这就是为什么在并发场景下 P99 延迟依然保持平稳。** 来源:[`src/share/change_stream/`](src/share/change_stream/) · [`src/share/vector_index/`](src/share/vector_index/) ### 🌿 用于 Agent 探索的写时复制 (COW) 沙箱 `FORK DATABASE` 可在几秒钟内对整个数据库进行快照 —— 无需拷贝数据。 Agent 可以自由实验(写入、查询,甚至破坏表结构);然后通过 `MERGE TABLE` 将结果提交,或者使用 `DROP DATABASE` 丢弃更改。这是内核级别的 COW, 而不是应用层面的保存/恢复。 ``` -- Snapshot in seconds, no data copy FORK DATABASE agent_state TO agent_sandbox_42; -- Agent reads/writes freely on the sandbox... USE agent_sandbox_42; INSERT INTO memory (session_id, embedding, content) VALUES (...); -- Accept the work back to mainline (strategies: FAIL / THEIRS / OURS) MERGE TABLE agent_sandbox_42.memory INTO agent_state.memory STRATEGY THEIRS; -- ...or throw it away: DROP DATABASE agent_sandbox_42; ``` 来源:[`tools/deploy/mysql_test/test_suite/fork_table/`](tools/deploy/mysql_test/test_suite/fork_table/) ### 🔍 单条 SQL 实现混合搜索 将向量 + 全文 + 标量过滤下推至同一个执行计划中。 告别 N+1 客户端合并,告别用于拼接结果的胶水代码。 ``` SELECT id, title, l2_distance(emb, '[0.12,0.34,...]') AS dist FROM docs WHERE MATCH(content) AGAINST('quarterly report') AND author_id = 42 AND created_at > '2026-01-01' ORDER BY dist APPROXIMATE LIMIT 10; ``` ### 🐬 兼容 MySQL,支持 ACID,可嵌入 基于久经考验的 OceanBase SQL 引擎构建。可作为嵌入式库、 单节点服务器运行,或部署于 OceanBase 分布式集群中。提供完整的 ACID 支持、实时写入功能,并开箱即用地兼容整个 MySQL 生态系统。 ## 🎬 快速开始 ### 安装 选择您的平台:
☁️ 云端 (免安装) 一次 curl,即可获得运行中的数据库 —— 无需注册,无需信用卡。 ``` curl -X POST https://d0.seekdb.ai/api/v1/instances ``` 免费体验 7 天。[了解更多 →](https://d0.seekdb.ai)
🐍 Python (AI/ML 推荐) ``` pip install -U pyseekdb ```
🐳 Docker (快速测试) ``` docker run -d \ --name seekdb \ -p 2881:2881 \ -p 2886:2886 \ -v ./data:/var/lib/oceanbase \ oceanbase/seekdb:latest ``` 详情请参阅此 Docker 镜像的[文档](https://github.com/oceanbase/docker-images/blob/main/seekdb/README.md)。
📦 二进制 (独立部署) ``` # Linux(单行安装,可能需要 sudo) curl -fsSL https://obportal.s3.ap-southeast-1.amazonaws.com/download-center/opensource/seekdb/seekdb_install.sh | bash # macOS(Homebrew) brew tap oceanbase/seekdb brew install seekdb ``` 有关 DEB/RPM 离线安装及配置详情,请参阅[部署文档](https://docs.seekdb.ai/seekdb/deploy-by-systemd/)。
### 📝 更多示例 有关完整的 Python SDK 演示 —— 包括连接模式、embedding 函数、元数据过滤器等 —— 请参阅 [pyseekdb 用户指南](https://github.com/oceanbase/pyseekdb)。
🤖 Agent 记忆模式 (持续写入 + 即时检索) 经典的 Agent 循环:写入一条观测记录,几毫秒后检索相关上下文, 不断重复。seekdb 的异步索引流水线能够在持续并发下, 确保读写两端的高效运行。 ``` import pyseekdb client = pyseekdb.Client(path="./agent_state.db") memory = client.get_or_create_collection(name="episodic") for step in agent.run(): # Persist the observation memory.upsert(ids=[step.id], documents=[step.observation]) # Retrieve relevant context — milliseconds after the write, # served by the incremental HNSW (no waiting on a background rebuild) relevant = memory.query(query_texts=step.next_query, n_results=5) agent.act(relevant) ```
🗄️ SQL —— Schema + 混合搜索 ``` -- Table with vector column, full-text index, and HNSW vector index CREATE TABLE articles ( id INT PRIMARY KEY, title TEXT, content TEXT, embedding VECTOR(384), FULLTEXT INDEX idx_fts (content) WITH PARSER ik, VECTOR INDEX idx_vec (embedding) WITH (DISTANCE=l2, TYPE=hnsw, LIB=vsag) ) ORGANIZATION = HEAP; -- Hybrid search: vector similarity + full-text match in one query SELECT id, title, l2_distance(embedding, '[0.12, 0.34, ...]') AS dist FROM articles WHERE MATCH(content) AGAINST('quarterly report') ORDER BY dist APPROXIMATE LIMIT 10; ``` Python 开发者可以通过 SQLAlchemy 或任何 MySQL 驱动程序进行访问。
## 📚 使用场景
🎯 Agentic AI —— 记忆、沙箱与状态 Agent 需要一个状态存储来处理持续的记忆写入、毫秒级检索、 用于探索的分支以及出错时的回滚。seekdb 正是为此而生: - **对流式写入友好的存储** —— 写入一段记忆,下一毫秒即可查询 - **COW 沙箱** —— 使用 `FORK DATABASE` 进行安全实验,`MERGE` 接受更改,`DROP` 进行回滚 - **混合检索** —— 在一条 SQL 中实现向量 + 全文 + 关系型查询 - **MySQL 协议** —— 开箱即用地兼容 LangChain、LlamaIndex、Dify 个人助手 · 企业自动化 · 垂直领域 Agent · Agent 平台
🧩 其他使用场景 seekdb 的混合检索 + 多模态引擎同样适用于经典的 AI 负载: - **📖 RAG 与知识检索** —— 支持多级访问控制的向量 + 全文 + 标量过滤。*企业级问答、客户支持、行业洞察、个人知识库。* - **🔍 语义搜索** —— 跨文本、图像等多种模态的基于 embedding 的搜索。*商品搜索、文生图、图生商品。* - **💻 AI 辅助编程** —— 用于 IDE 插件和代码 Agent 的语义化代码搜索、多项目隔离、时间旅行查询。*本地 IDE、Web IDE、设计稿转网页。* - **⬆️ 企业应用智能化** —— 为遗留系统提供兼容 MySQL 的 AI 层,支持行/列混合存储。*文档智能、商业洞察、金融系统。* - **📱 端侧与边缘 AI** —— 适用于资源受限设备的嵌入式/微型服务器模式。*车载系统、AI 教育、陪伴机器人、医疗设备。*
## 🌟 生态系统与集成

LangChain LlamaIndex Dify LangGraph Coze HuggingFace

+ Camel-AI · DB-GPT · FastGPT · Firecrawl · Spring-AI-Alibaba · Cloudflare Workers AI · Jina AI · Ragas · Instructor · Baseten —— 完整列表请参阅[用户指南](https://docs.seekdb.ai/seekdb/seekdb-overview)。
## 🛠️ 开发 ### 从源码构建 在构建之前,请根据您的操作系统安装所需的工具链和依赖项。详细说明请参阅[安装工具链](docs/developer-guide/en/toolchain.md)。 ``` # Clone the repository git clone https://github.com/oceanbase/seekdb.git cd seekdb bash build.sh debug --init --make mkdir -p ~/seekdb/bin cp build_debug/src/observer/seekdb ~/seekdb/bin cd ~/seekdb ./bin/seekdb ``` 在此示例中,工作目录为 $HOME/seekdb,请使用一个全新的目录进行测试。详细说明请参阅[开发者指南](docs/developer-guide/en/README.md)。 ### 参与贡献 我们欢迎您的贡献!请参阅我们的[贡献指南](CONTRIBUTING.md)来开始参与。 Contributors ## 📈 Star 历史 Star History Chart 如果 seekdb 对您有帮助,**点个 Star 可以帮助更多人发现它。** ⭐ ## 📄 许可证 seekdb 由 [OceanBase](https://en.oceanbase.com/) 团队构建 —— 该数据库引擎同样运行在支付宝、淘宝、滴滴、小米等企业的生产环境中。完全开源,基于 [Apache License, Version 2.0](LICENSE) 许可证。
标签:AI智能体, MySQL兼容, 全文检索, 向量检索, 嵌入式数据库, 幻觉缓解, 数据库, 状态存储, 请求拦截, 逆向工具