DeepSeek Harness 的参考素材检索插件:refkit_search 在 24 个开放来源中检索图片、视频、音频和文本参考素材,为每条结果标注规范化的许可证和针对用途的可用性判定;refkit_rights 针对另一种用途复核单条许可证。来源 key 与检索参数在设置页配置。24 个来源中 11 个需要 API key;仅在传入用途时返回可用性判定。支持 DSH ^0.1.7-rc.2 || ^0.2.1-rc.2(实测 0.1.7-rc.2 与 0.2.1-rc.2)。
安装
# npm 包(预构建)
dsh plugin --profile web add @refkit/dsh-plugin
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:refkitjs/dsh-plugin
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
English | 中文
DeepSeek Harness(dsh)插件,封装了 refkit 参考搜索库:将经过许可证归一化处理的创意素材搜索能力,变成原生 agent 工具,并配有网页卡片,在每条结果上展示许可证与使用判定。
refkit_search— 一次调用即可扇出到多达 24 个来源(Openverse 图片与音频、Met、Art Institute of Chicago、Wikimedia Commons、Rijksmuseum、Smithsonian、Internet Archive、Project Gutenberg、PoetryDB、Poly Haven 纹理与 HDRI、ambientCG、Europeana、Unsplash、Pexels、Pixabay、Flickr、Freesound、Jamendo、Brave、nailbook),合并并重新排序结果,并为每条结果返回其来源 id、许可证 id、canonical 链接、音频和视频的时长(来源提供时),以及——当你传入intent时——使用判定和一条可直接使用的署名文本。refkit_rights— 针对不同的使用意图重新校验同一条许可证,无需重新搜索。- 网页卡片 — 缩略图网格;每个卡片都带来源和许可证标签;视频显示封面帧并叠加播放标记,音频显示专辑封面,两者都带
m:ss时长徽章;绿 / 蓝 / 红 / 黄四色徽章分别对应 allowed(允许) / credit required(需署名) / not allowed(不允许) / needs review(需人工复核);一键复制署名文本。
24 个来源中有 13 个无需任何密钥即可使用(Openverse 图片与音频、Met、Art Institute of Chicago、Wikimedia Commons、Rijksmuseum、Internet Archive、Project Gutenberg、PoetryDB、Poly Haven 纹理与 HDRI、ambientCG、nailbook)。其余来源在「插件(侧边栏)→ refkit → 包含的组件 → refkit」里填入免费密钥即可启用。
安装
dsh plugin --profile web add @refkit/dsh-plugin
# 或直接从 GitHub 安装(预构建的产物已提交到仓库):
dsh plugin --profile web add github:refkitjs/dsh-plugin
重启一次 dsh web host,让该 profile 加载该 bundle。已在 @deepseek-ai/dsh 0.1.7-rc.2 和 0.2.1-rc.2 上测试通过;要求 dsh 0.1.x 且不低于 0.1.7-rc.2,或 0.2.x 且不低于 0.2.1-rc.2(^0.1.7-rc.2 || ^0.2.1-rc.2),更低版本以及 0.2.0 预发布版的 dsh 会拒绝加载该插件。dsh 目前处于开发者预览阶段,其插件 API 在各个 release candidate 之间会发生变化。
装着 refkit 0.2.0 或 0.3.0 时把 dsh 升级到了 0.2.1?dsh 0.2.1 会拒绝这两个版本,先移除再重新添加即可:dsh plugin --profile web remove @refkit/dsh-plugin,然后 dsh plugin --profile web add @refkit/dsh-plugin。
配置
密钥和调优参数在「插件(侧边栏)→ refkit → 包含的组件 → refkit」中设置(命名空间为 refkit);修改在下一次调用时生效,无需重启。所有 key 字段都是 secret 类型:设置页不会回显已保存的值(只显示 Set / Not set 标记),不会被记录日志,也不会返回给模型,并以明文形式存储在该 profile 的 cordis.patch.yml 中(文件权限 0600)。某个 key 留空时会依次回退读取下表列出的环境变量(REFKIT_* 优先)——与 @refkit/mcp 读取的变量名相同,因此同一份 .env 可以同时服务这两者。手动编辑后校验失败的 cordis.patch.yml 会使插件启动失败,直到修复为止。
| 字段 | 环境变量(先匹配者优先) | 启用的来源 |
|---|---|---|
unsplashAccessKey |
REFKIT_UNSPLASH_KEY, UNSPLASH_KEY |
unsplash |
pexelsApiKey |
REFKIT_PEXELS_KEY, PEXELS_KEY |
pexels, pexels-video |
pixabayKey |
REFKIT_PIXABAY_KEY, PIXABAY_KEY |
pixabay, pixabay-video |
flickrApiKey |
REFKIT_FLICKR_KEY, FLICKR_KEY |
flickr |
smithsonianApiKey |
REFKIT_SMITHSONIAN_KEY, SI_KEY |
smithsonian |
braveToken |
REFKIT_BRAVE_KEY, BRAVE_TOKEN |
brave |
freesoundToken |
REFKIT_FREESOUND_KEY, FREESOUND_TOKEN |
freesound |
jamendoClientId |
REFKIT_JAMENDO_CLIENT_ID, JAMENDO_CLIENT_ID |
jamendo |
europeanaApiKey |
REFKIT_EUROPEANA_KEY, EUROPEANA_KEY |
europeana |
openverseToken |
REFKIT_OPENVERSE_TOKEN |
提升 Openverse 速率限制(可选) |
| 字段 | 默认值 | 含义 |
|---|---|---|
sources |
[] |
要启用的来源 id;为空 = 启用所有已配置 key 的来源 |
limit |
12 |
每次调用默认返回的结果数(1–30);也限制 met、rijksmuseum、polyhaven、polyhaven-hdri 的逐条详情拉取数量 |
poolFactor |
2 |
排序融合(rank-fusion)的候选池倍数(1–4) |
deadlineMs |
15000 |
整次搜索的截止时间 |
timeoutMs |
10000 |
单个来源的超时时间 |
rerank |
true |
对 title、description、tags 和 excerpt 做词法重排序(支持 CJK) |
sourceConfidence |
true |
对结果批次中完全没有提及查询词的来源降权 |
userAgent |
refkit-dsh-plugin/<version> |
随请求发送给各来源的 User-Agent |
工具
refkit_search
| 参数 | 类型 | 含义 |
|---|---|---|
query |
string | 要搜索的内容 |
modalities |
image video audio text |
默认 ["image"] |
intent |
internal-moodboard commercial-product ai-generation-input redistribution |
为每条结果附加使用判定和署名文本 |
gateFor |
同上 | 仅返回许可证允许该用途的结果 |
sources |
string[] | 限定到特定的来源 id(例如 HDRI 用 polyhaven-hdri,音频用 openverse-audio) |
limit |
1–30 | 默认取自配置 |
cursor |
string | 沿用上一次结果里的 nextCursor 继续翻页 |
controls |
object | orientation、color、language、sort、safety、license、media、creator、text、page |
minRelevance |
0–1 | 丢弃重排序分数低于该值的结果 |
explain |
boolean | 在 meta 下附带每个来源的诊断信息 |
每条结果都标明其来源 id(source),并带有许可证、canonical 链接、缩略图(视频的封面帧、音轨的专辑封面),音频和视频在来源提供时还带有 durationSec(时长,秒);width/height 是原件尺寸,来源未提供时取预览文件的尺寸。
示例提示词:“find me reference photos of brutalist libraries I can use in a commercial pitch deck”、“给我找几张可以商用的赛博朋克街景参考图”、“a public-domain poem about the sea for a poster”、“找一张户外 HDRI 用来给产品渲染打光”、“一段用于游戏预告片的短雨声音效”。
refkit_rights
必填:license、intent、canonicalUrl;可选:licenseVersion、author、title、editorialOnly、jurisdiction、userJurisdiction、facts。返回 decision、reasons、confidence、attribution、disclaimer。
开发
pnpm install
pnpm test # vitest,进程内运行,无需网络
pnpm build # lib/index.js(host 半)+ lib/client.js(browser 半)+ lib/types
node scripts/check-client-bundle.mjs
REFKIT_LIVE=1 node scripts/smoke-host.mjs "forest path" # 一次真实的 Openverse 搜索
dsh plugin --profile web add file:$PWD # 安装本地构建产物
lib/ 目录已提交到仓库,因此 github: 方式安装无需额外构建;若该目录与源码不一致,CI 会失败。
非法律意见
判定结果是基于来源声明的许可证事实所做的保守启发式推断。它们说明的是来源允许你做什么,并不构成权利审查(rights clearance)。
License
Apache-2.0
链接
同类插件
Tencent/WeKnora#dsh-weknora★ 35014
把 WeKnora 知识库接入 dsh 的四个只读工具:列出知识库、混合检索原文片段、按顺序还原单篇文档,以及直接取用 WeKnora 自己带引用的 RAG 或 ReAct agent 回答(含可续聊的 session id)。
superdesigndev/treg★ 5944
给 Agent 的工具目录:按「要做的事」检索约 2,600 个外部接口(SEO 与 SERP、外链、社交、人物与公司信息补全、广告库、抓取),查看参数与单次调用价格后直接调用,凭据由服务端注入。附带技能,MCP 行在未设置 TREG_TOKEN 前保持禁用。
T-Auto/dsh-ops★ 3709
为 Windows 的 DSH 提供 bash、PowerShell 7 及 Rust 高性能工具,减少 token 消耗。
TencentCloudBase/CloudBase-AI-Toolkit#dsh-plugin★ 1141
把腾讯云 CloudBase 后端接入 DeepSeek Harness——在对话里搭好并部署全栈应用,查询结果渲染为表格卡片(分页、排序、导出 CSV),部署后可预览真实域名,并提供 CloudBase MCP 工具集(`mcp__cloudbase__*`),登录走 device-code 流程。
sixtysevenlf/dsh-blender-plugin★ 1019
让 DSH agent 通过直连 TCP 通道驱动本地 Blender,提供 16 个工具:视口帧、自定义视角渲染、Python 执行、无头与作业卸载、事务回滚,以及 28 个 family / 186 个 op 的规划层。
anysearch-team/anysearch-dsh★ 634
基于 AnySearch 的实时网页与垂直搜索插件,为 DeepSeek Harness 提供搜索工具。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。