大家好,我是袋鼠帝。

最近我在折腾本地AI知识库的时候,在Github发现了一个特别有意思的新项目,叫seekdb

它是一款开源的AI原生混合搜索数据库。

https://github.com/oceanbase/seekdb

打开网易新闻 查看精彩图片

seekdb的配置要求,低到离谱,最低只需要1核CPU,2GB内存,就能跑起来。

它是All In One的AI原生数据库,一个库包圆了向量、文本、结构化/半结构化数据

PS:也就是既可以做向量数据库(实现RAG),又能存储业务数据(传统关系型数据库)非常全能~

支持 MySQL协议Navicat直接连(Navicat是一款非常经典的数据库可视化管理工具)

打开网易新闻 查看精彩图片

还能当MCP Server用,可以接入Trae、Claude Code、Cursor等任何支持MCP的工具或平台。

打开网易新闻 查看精彩图片

另外,还可以接入Dify,不是当作外部知识库接入哦,是可以直接掌管Dify的元数据和AI知识库,因为Dify官方的最新版本在底层对它做了兼容。

当下大多数团队在真正落地Agentic RAG应用的时候,或多或少应该都会遇到一个问题:底层数据架构过于复杂。

为了让检索足够精准,通常需要处理三种完全不同的数据形态:

一是业务元数据,比如Agent的创建时间、作者、权限,工作流的各种节点数据。这需要关系型数据库来存,因为它要求绝对的事务安全。

二是语义向量,这是把文字变成数学向量,让AI能理解语义。这需要向量数据库来存。

三是全文检索,也就是关键词匹配,因为有时候向量搜索会想太多、或者理解有偏差,反而搜不到一些具体的专有名词,这时候就需要传统的全文检索来兜底。

在过去,为了实现这三者的混合搜索(Hybrid Search),不得不采用一种拼图式的分布式架构:比如装一个MySQL或PostgreSQL存元数据,再装一个Milvus或Chroma存向量,为了搜得准,甚至还得再挂一个Elasticsearch做全文检索。

你得维护三套完全不同的成熟系统,还要自己处理它们之间的数据同步。最要命的是,这种跨系统的写入,很难保证事务一致性。比如网络一抖动,向量库写入失败了,但元数据写入成功了,你的知识库就精分了,一边告诉你文档在,一边又搜不到内容。

系统越复杂,人力投入就越大,风险越高..

但seekdb的思路非常清晰,就做减法:把向量、文本、结构化/半结构化数据,全部塞进了一个数据库里。

这意味着,你不需要再去维护那一堆乱七八糟的中间件了

一个seekdb,全搞定。

它的核心能力也是混合搜索

打开网易新闻 查看精彩图片

seekdb直接在数据库内核层面,支持了向量、全文和标量过滤的混合查询。一条SQL语句,就能完成多路召回和精排。

它还内置了AI函数

打开网易新闻 查看精彩图片

你可以在数据库里,直接调用大模型或者向量模型,完成数据的嵌入和推理。

这就是,AI原生数据库,自己带了个脑子

这是seekdb和其他开源数据库的对比

打开网易新闻 查看精彩图片

我觉得,这玩意儿特别适合几个场景:

一个是个人或者小团队的本地知识库。因为它轻量,资源占用少,随便找台旧电脑或者便宜的云服务器就能跑。

另一个是边缘设备上的AI应用。比如手机,车机,或者工业网关,这些设备的资源有限,跑不动那些重型数据库,但seekdb这种轻量级架构,正好能派上用场。

当然,还有就是作为Agent的记忆体。它能同时存储结构化的对话记录和非结构化的向量记忆,非常适合用来给AI Agent做长期记忆。

好了,话不多说,我们直接上实操!

本地部署seekdb(超简单)

部署seekdb,简单得让我有点不适应。

如果你习惯用Python,直接pip安装就行。

pip install pyseekdb

如果你想用Docker,也是一行命令的事。

docker run -d --name seekdb -p 2881:2881 oceanbase/seekdb:latest

启动速度非常快,几乎是秒级。

安装好之后,你可以用Python SDK来操作,也可以直接用MySQL客户端(比如Navicat)连接。

也可以接入Dify使用

Dify虽然好用,但它的开源版在做AI知识库这块,检索效果确实有点差强人意。

而且Dify的默认元数据库(PostgreSQL)和向量数据库(Weaviate)是分开的,相比seekdb有以下不足:

打开网易新闻 查看精彩图片

seekdb通过粗排 + 精排机制,能保持毫秒级响应,支持百亿级向量检索。

现在最新的Difyv1.10.1正式兼容了MySQL数据库

这意味着我们可以把Dify的元数据库(存储业务数据)和向量数据库,都切换成seekdb(因为它支持MySQL协议)。

看能不能提升一下Dify的知识库效果

需要做两个地方的改动:

一个是在Dify的docker/docker-compose.yaml文件里,把api、worker、worker_beat、web服务的image版本号改为1.10.1,或main

打开网易新闻 查看精彩图片

比如langgenius/dify-api:1.10.1

或者langgenius/dify-api:main

第二个改动是把dify/docker下的.env.example 复制出来,改名为.env

打开网易新闻 查看精彩图片

不过在文件夹里面,这两个文件都是隐藏文件,正常是看不到的。

Mac查看隐藏文件的快捷键 command+shift+.

Windows快捷键是ctrl+shift+h

打开网易新闻 查看精彩图片

在.env里面修改几个配置

如果既作为元数据库又是向量数据库的话,修改以下配置

COMPOSE_PROFILES=seekdb

如果仅作为元数据库,只需要改下面这些:

COMPOSE_PROFILES=${VECTOR_STORE:-weaviate},seekdb

如果仅作为向量数据库(只替换知识库功能),只改下面这些配置:

COMPOSE_PROFILES=seekdb,${DB_TYPE:-postgresql}

启动之后,dify会帮seekdb设置一个默认密码:difyai123456

PS:这个密码也可以在.env文件里面修改

打开网易新闻 查看精彩图片

做完上面这些之后,执行docker-compose up -d重新拉取新镜像,同时也会自动重启服务。

打开网易新闻 查看精彩图片

启动之后,seekdb就会同时扮演元数据库、向量数据库和全文检索系统的角色

然后我把最近在公众号发布的一些文章通过Dify打造了一个知识库

打开网易新闻 查看精彩图片

在seekdb里面找到vector_index开头的表,可以看到,已经有对应的向量数据存储进来了。

打开网易新闻 查看精彩图片

接入GLM-4.6做了一些知识库搜索的测试,感觉效果还是不错的:

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

作为MCP-Server接入本地Agent

seekdb还提供了MCP-Server。

我们可以把它接入本地的Trae、Cursor、Claude Code等工具,作为一个本地Agent的知识库工具,给Agent补充一些私有的专业知识,或者让它记住你的偏好。

接入步骤也很简单,分为两步,不过需要先满足以下前置条件:

1.已经在本地部署seekdb;

2.本地Python版本在3.11或以上;

3.需要安装Python包管理器uv:pip install uv,安装完成后执行uv --version验证是否安装成功。

然后第一步:安装OceanBase MCP Server

1.克隆项目到本地(也可以去Github下载zip包):

git clone https://github.com/oceanbase/mcp-oceanbase.git

2.进入源代码目录:

cd mcp-oceanbase

3.安装依赖:

uv pip install

第二步:接入本地Agent,比如Trae

在Trae里面配置seekdb的MCP-Server

打开网易新闻 查看精彩图片

"mcpServers": {

"oceanbase": {

"command": "uv",

"args": [

"--directory",

"/path/to/your/mcp-oceanbase/src/oceanbase_mcp_server",

"run",

"oceanbase_mcp_server"

],

"env": {

"OB_HOST": "127.0.0.1",

"OB_PORT": "2881",

"OB_USER": "root",

"OB_PASSWORD": "difyai123456",

"OB_DATABASE": "test"

注意:路径替换成自己的oceanbase_mcp_server绝对路径

第一次启动的时候,会下载MySQL相关驱动,有点慢。

成功后,如下图,有10个工具

打开网易新闻 查看精彩图片

1. execute_sql:在 OceanBase 服务器上执行任意 SQL 语句。

2. get_ob_ash_report:生成 OceanBase 的 ASH(活跃会话历史)报告,用于性能分析,可指定起止时间和租户。

3. get_current_time:获取 OceanBase 的当前系统时间。

4. get_current_tenant:获取当前连接会话所属的 tenant(租户)名称。

5. get_all_server_nodes:列出 OceanBase 集群中所有 server 节点(需要 sys 租户权限)。

6. get_resource_capacity:获取集群资源(CPU/内存等)容量信息(需要 sys 租户权限)。

7. search_oceanbase_document:基于关键字从 OceanBase 官方文档里自动检索相关内容,为 LLM 提供上下文知识。

8. oceanbase_text_search:在 OceanBase 表里做全文检索,可指定文本列、搜索词、WHERE 条件和返回列。

9. oceabase_vector_search:对表中的向量列执行向量相似度搜索,可指定距离算法、是否返回距离、TopK 等。

10. oceanbase_hybrid_search:同时结合「结构化过滤(如年龄>20)」和「向量相似度」进行多模态混合搜索。

OceanBase MCP的使用方式还是有挺多的,我给大家展示两种:

一种是传统数据库的增删改查:

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

另外一种是混合检索(全文检索+语义检索)。

不过AI并不清楚混合检索的sql语句,所以需要给上下文(也就是sql示例,我这里写在了输入框,后续可以放到Trae的规则,或者作为一个文件,放在当前文件夹下)

sql示例可以在seekdb官方文档找到:

https://www.oceanbase.ai/docs/zh-CN/

向量表的表名也得给对(可以去navicat里面找vector_index开头的)

这里的提问:搜索一下PaddleOCR-VL是什么

打开网易新闻 查看精彩图片

这样AI就能通过OceanBase MCP进行语义搜索,找到我通过Dify向量化存储到seekdb的PaddleOCR-VL文章的相关信息,并整理回答。

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

更多信息可以在seekdb官方文档里面查看:

https://www.oceanbase.ai/docs/zh-CN/

我感觉,数据库这个行业,终于也开始被AI重塑了。

过去,我们为了适应数据库,不得不把数据拆开,去适应不同的存储引擎。

现在,seekdb把向量、文本、结构化数据重新融合在了一起,用一种更符合AI的使用方式,来存储和检索数据。

而且能无缝兼容MySQL协议,意味着很容易迁移/切换

我查了一下seekdb,还是蚂蚁旗下的OceanBase团队开源的项目

如果你正在为AI项目的数据架构头疼,或者只是想在本地快速搭个好用的知识库,可以去试试这款全新的AI数据库--seekdb

能看到这里的都是凤毛麟角的存在!

如果觉得不错,随手点个赞、在看、转发三连吧~

如果想第一时间收到推送,也可以给我个星标⭐

谢谢你耐心看完我的文章~