文章摘要
近期,DeepSeek开源的DSH引发AIAgent领域广泛关注,为让向量数据库接入DSH生态,开发的专用插件代码已开源。文章分享了插件开发思路等内容,介绍DSH插件化架构核心价值,阐述选择插件化设计原因,给出从插件安装到Agent查询数据的实战流程,最后指出DSH尚处早期,其架构是有益实践,还给出插件开源地址。

近期,DeepSeek开源的DeepSeek Harness(简称DSH)引发了AI Agent领域的广泛关注。这款工具在开源首日就斩获3万Star,次日突破8万,截至目前Star数已攀升至19万,其提出的“一切皆插件”架构理念,有望成为未来Agent基础设施的主流标准。

针对如何让向量数据库即插即用接入DSH生态,我们开发了专用插件,帮助Agent快速获得向量数据库访问能力,相关代码已开源共享。本文将分享插件的开发思路、设计逻辑以及完整的实战流程。


一、DSH插件化架构的核心价值

DSH开源后,“Everything is a Plugin(一切皆插件)”的理念贯穿整个项目。不同于传统Agent框架将Agent循环、文件访问、工具注册等核心逻辑固化在框架内部,DSH基于微内核架构,仅负责插件的加载、卸载、依赖管理和服务协作,所有业务能力都通过插件提供。

无论是模型适配、文件系统访问、工具集,还是驱动Agent思考调用的主循环,都可以作为独立插件存在。这种深度的架构解耦,带来了极高的灵活性和极简的能力搭配逻辑。

举个例子,之前Agent访问的是本地文件目录,后续如果需要切换到远程沙箱环境,只要上层暴露的接口保持一致,Agent无需感知底层实现的差异,能力切换即可无缝完成。

向量数据库的接入也是同样的逻辑:无需修改DSH的核心代码,只要按照DSH的插件接口提供一组向量数据库能力,Agent就能自动获得数据库访问工具,快速融入现有生态。

二、选择插件化设计的原因

要让Agent访问向量数据库,通常有两种常规方案:通过MCP连接数据库服务,或者编写Skill让模型自行驱动查询。这两种方式在技术上并不复杂,但都存在不少繁琐的流程和潜在的风险。

首先,需要将数据库操作包装为工具,定义工具Schema告知模型可用参数,再将工具注册到Agent运行时;其次,需要管理数据库的Endpoint、Token和数据库实例,对请求参数进行校验,将返回结果转换为模型可消费的格式;此外,还需要定义单次查询的数据返回量、可访问字段范围、禁用操作等规则。

当涉及生产环境部署时,还需要考虑权限控制和可观测性:Agent是否拥有写入、删除权限?数据库Token是否会泄露到上下文?

一个真正可用的Agent与数据库集成方案,核心难点并不在于最终的数据库查询调用,而在于对这些边缘规则和权限的管理。这也是我们没有将向量数据库调用封装为Skill的原因:Skill更适合沉淀经验性的知识和策略,比如“面对陌生集合先查询Schema”、“生产环境查询控制返回量”等,这些是给模型的提示性规则,但模型存在产生幻觉的可能。

而插件则可以直接将这些规则固化为执行边界:比如将单次查询的最大返回量限制为50条,不对外暴露删除工具,即使模型想要查询5000条数据或者执行删除操作,也无法获得对应的能力。

因此,第一版的向量数据库插件仅开放了核心只读能力:列出集合、查看集合Schema、执行标量查询、语义搜索和混合搜索,未开放插入、更新、删除、创建/删除集合等写操作。同时,数据库Token不再交由模型自行处理,而是集成到DSH的凭证管理系统中,实现了Skill负责知识策略、插件负责执行边界的清晰分工。

三、实战流程:从插件安装到Agent查询数据

本次实战的目标是启动DSH,安装向量数据库插件,连接本地或云服务向量数据库,让无数据库先验知识的Agent自动完成数据查询。

1. 准备数据库环境

首先需要启动向量数据库实例:可以通过Docker启动本地独立版向量数据库,默认地址为http://127.0.0.1:19530;如果使用云服务,则填写对应的HTTPS地址和访问Token。

2. 配置开发环境

DSH Web需要Node.js 22.19以上版本,推荐使用Node.js 24。首先在终端确认当前Node版本:

node --version

然后安装与当前插件匹配的DSH CLI:

npm install -g @deepseek-ai/dsh@0.1.0-rc.7

确认CLI安装成功:

dsh --version

3. 安装向量数据库插件

本次使用DSH Web界面,因此需要将插件安装到Web Profile中:

dsh plugin --profile web add @vector/dsh-milvus

插件安装完成后启动DSH Web:

dsh web --port 3080

在浏览器中访问http://127.0.0.1:3080即可进入DSH界面。如果此前已经启动了DSH Web,安装插件后需要重启服务,因为插件仅在Web运行时启动时加载,旧进程不会自动加载新插件。

4. 配置数据库连接

进入设置页面,选择插件选项,找到向量数据库插件:

  1. 本地向量数据库:填写Endpoint地址,例如http://127.0.0.1:19530,数据库默认名为default
  2. 云服务向量数据库:填写HTTPS地址、访问Token,根据集群类型填写数据库名称(免费版和Serverless版无需填写,否则会导致查询报错)

配置完成后依次点击:创建配置文件 → 测试连接 → 设为新会话默认使用配置。

这里有一个重要细节:配置文件是绑定新会话的。如果已经打开聊天窗口后修改了配置,原有会话不会自动切换,建议修改配置后直接新建聊天窗口。

5. 让Agent自动查询数据

首次与数据库交互时,建议不要直接发起查询,而是先让Agent列出所有可用集合:

列出所有向量数据库集合

Agent会调用milvus_list_collections工具,这一步不仅验证了整个链路的连通性,更重要的是让Agent自主获取数据库内的集合信息,无需用户手动提供集合名称。

假设返回结果中包含集合hybrid_code_chunks_d0f16d93,可以继续让Agent描述该集合的Schema:

描述 hybrid_code_chunks_d0f16d93

Agent会调用milvus_describe_collection工具,获取该集合的完整字段信息、类型和相关元数据。

获得Schema后,就可以发起正式的数据查询:

查询 hybrid_code_chunks_d0f16d93,返回id、relativePath、startLine、endLine,最多3条

Agent会调用milvus_query工具,根据真实字段发起标量查询,并将结果返回至聊天窗口。

你也可以发起语义搜索,查询与特定内容相似的向量数据:

在集合中帮我搜索记录了哪些北京美食信息?

Agent会调用milvus_search工具,基于语义相似性召回相关数据。

最后,可以在调用轨迹中查看完整的插件调用链路,通常会依次看到milvus_list_collections、milvus_describe_collection、milvus_query、milvus_search等工具的调用记录。

四、总结与展望

尽管DSH已经获得了19万Star,但依然处于早期开发阶段。这一项目背后反映出一个有趣的行业趋势:未来AI领域的竞争,是最强模型吞噬软件,还是Agent吞噬模型?

如果后者成为主流,那么模型能力将逐渐趋同,Agent系统长期需要关注的不仅是Prompt工程,更需要关注其拥有的能力集合,以及这些能力如何被安装、复用和治理。DSH的插件化架构正是这一方向的优秀实践。

该插件的开源代码仓库地址为:https://github.com/zilliztech/dsh-milvus/

以上内容不代表本平台立场,仅供读者参考