DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Web Search Kagi — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
W

dsh-web-search-kagi

Web Search Kagi

基于 Kagi Search v1 的搜索提供程序,用于 DeepSeek Harness Web 能力接口(ctx.web)

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:YePpHa/dsh-web-search-kagi#b0297a573c0776b82c254a6c2a5c0637f8574adf
README兼容性版本

兼容性与来源证明

Web Search Kagi 以 dsh-web-search-kagi 发布,当前版本为 0.3.2。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
github
Registry 更新时间
2026/9/30

版本

0.3.2stable
2026/9/30
0.3.1stable
2026/9/28
0.3.0stable
2026/9/28

相关插件

正在加载相关插件…

最新版
0.3.2
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
any
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/9/30
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 search-research 分类下经过校验的插件。

Weknora@wxg-prc-cpg/dsh-weknora适用于 DeepSeek Harness (dsh) 的 WeKnora 知识检索工具:通过自有知识库进行语义搜索、文档阅读以及 RAG/代理回答。Free Searchdsh-free-searchDeepSeek Harness 的免费网页搜索:24 个引擎(Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl/Parallel 无需密钥;通过 MCP 使用 Zhihu 全局/站内搜索,以及 Perplexity/SerpBase/DeepSeek/You.com/Baidu/Kimi/Aliyun/Doubao,需密钥;OpenAI/Gemini/ClaudeDejadsh-dejaDeepSeek Harness 的 deja-vu 记忆:其他 40 个编码代理的会话历史,可搜索,并在每个步骤前调用——本地索引,无需 LLM。Builtin Browserdsh-builtin-browser适用于 DeepSeek Harness 的共享真实浏览器插件:安装即用——可由人类接管的可见原生浏览器,并由代理通过 CDP 驱动。DOM 级交互(兼容 React/Vue)、按任务隔离会话、Cookie 持久化(dsh_browser_auth)、C

README

dsh-web-search-kagi

Kagi Search v1 provider for the DeepSeek Harness web capability seam (ctx.web).

Published on npm as dsh-web-search-kagi.

Registers a WebSearchProvider with id kagi that POSTs to Kagi's https://kagi.com/api/v1/search with bearer auth and maps data.search[] onto the seam's portable citation shape (url, title, snippet, publishedAt).

Compatibility

DSH 0.2.0-rc.1 or newer within the 0.2 release line. Before a profile imports a plugin or bundle, DSH matches every @deepseek-ai/dsh and @deepseek-ai/dsh-* range in its peerDependencies against the running DSH version itself, so those peers are declared as a range (>=0.2.0-rc.1 <0.3.0-0) and not as an exact version. An exact pin makes the package unloadable on the next DSH release: 0.3.1 pinned 0.2.0-rc.1 and DSH 0.2.0-rc.2 refused it, even though dsh-web, dsh-credentials, and dsh-settings are byte-identical in both releases.

Install

Add the package to the profile that runs the web app:

dsh plugin --profile web add dsh-web-search-kagi

This writes dsh-web-search-kagi to the profile's package.json and installs it. Without the dsh CLI, run pnpm add dsh-web-search-kagi from the profile directory instead.

Then compose it in $DSH_HOME/profiles/web/cordis.patch.yml:

- id: web
  config:
    searchProvider: kagi

- id: web-search-deepseek
  disabled: true

Restart the harness.

Bundle layer

The package declares dsh.bundle.patch in package.json and ships cordis.patch.yml at its root: it is a dsh bundle, not just a plugin package. dsh plugin --profile web add dsh-web-search-kagi therefore also appends the package to dsh.profile.bundles, and that layer inserts the web-search-kagi provider row, so the profile patch above needs no insert entry of its own.

Which provider the web seam serves is deployment configuration and stays in the profile patch above: bundle layers are applied before it, so its searchProvider: kagi wins over both the bundle row and the base layer's searchProvider: deepseek-official.

Upgrading from 0.2.x: delete the - insert: block from the profile patch. The bundle contributes web-search-kagi now, and two loader entries sharing one id fail the boot with duplicate loader entry id: web-search-kagi. The web and web-search-deepseek patches stay.

API key

The provider reads the key from the credentials service under the KAGI_SEARCH_API_KEY reference. Put it in $DSH_HOME/.credentials.yaml:

KAGI_SEARCH_API_KEY: your-kagi-api-key

You can also set it later in the web UI at Settings → Plugins → Plugin configuration, whose API key field writes the same credential. Get a key from Kagi.

Config

FieldDefaultNotes
baseURLhttps://kagi.com/api/v1Kagi Search API v1 base.
limit10Fallback result limit, 1 to 1024.
safeSearchtrueRequests Kagi safe_search.
apiKeyunsetWrite-only; moved into the credentials service (see below).

Every field is marked .volatile(), which is what makes it editable in the settings page without restarting the plugin.

Settings UI

The plugin's settings show in the web UI at Settings → Plugins → Plugin configuration. No cordis.patch.yml edit is needed to change these values after install, and the package ships no browser bundle: DeepSeek Harness generates the page from the plugin's Config schema.

Every write carries the revision it read, and overridden fields show a Reset to default button. The layering is schema defaults, then the composition entry config, then the user document, so the config: block in cordis.patch.yml stays the deployment's base layer.

The API key field

apiKey is a role('secret') field, so the settings wire redacts it. It is not configuration: when the form supplies a value the plugin writes it to the credentials service under KAGI_SEARCH_API_KEY and clears the field, so later settings writes do not restate it.

Prefer $DSH_HOME/.credentials.yaml if you want the secret to never pass through a settings form. That path writes the value nowhere but the credentials store; the form has to accept the value before the plugin can redirect it, so a key typed into the page does reach the profile patch and the settings document when the form writes them.

The provider re-resolves the credential on every operation, so a key changed in either place reaches the next search with no restart.