← 返回列表
需源码安装
DeepSeek Harness 的插件。一个仓库,九个包,以 @creait 名义独立发布。它们源于将 dsh…
暂不能直接安装(需源码编译或环境不满足):缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装。 · 最近上游提交 2026/8/26 · 已提供中文文档
DeepSeek Harness 插件:将深度研究作为代理预设、按模型设置生成限制、Claude Code 钩子兼容性,以及网页抓取/搜索工具。
综合分
36.6
GitHub 分
36.6
用户评分
—
★ Stars
5
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add CREAIT-nl/dsh-plugins缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装,改用 GitHub 源安装
数据截至 2026/9/19(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查需源码安装
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-plugins @ 0.1.2
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明
缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装
验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/19 16:50:21
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
dsh-plugins
DeepSeek Harness 的插件。一个仓库,九个包,以 @creait 名义独立发布。它们源于将 dsh 运行在自托管模型上的实践,每个都填补了 harness 留下的一个空白。
| 包 | 功能 | 原因 |
|---|---|---|
| hookkit@creait/dsh-hookkit | 配置驱动的生命周期钩子,包括上下文注入。在 YAML 中声明 event → handler → outcome。 | dsh 有这些接缝(agent/pre-step、tools/pre-execute、……),但要触及它们就得写一个插件。这将其变成了配置。 |
| gen-limit@creait/dsh-gen-limit | 按提供商/模型的并发上限,在子代理生成时和流式传输时强制执行,并带有设置卡片。 | 一块自托管 GPU 有真实的容量上限;子代理的扇出会撞上它。拒绝生成胜过让孩子不透明地死去。 |
| web-search-searxng@creait/dsh-web-search-searxng | 将 web_search 指向自托管的 SearXNG 实例,而不是原生路由。 | 无需将每个查询交给第三方即可搜索。 |
| web-fetch@creait/dsh-web-fetch | 位于 ctx.web 之后的受保护本地抓取提供商,对解析后的地址进行 SSRF 拦截。 | dsh 完整实现了 web_fetch 但没有附带任何提供商,因此该工具存在但每次调用都失败。 |
| research-mode@creait/dsh-research-mode | 深度研究作为一种代理模式:一个固定的、经过审查的循环,负责规划、以自适应并行轮次进行研究、综合和审查。 | 模型每次调用都重写的循环会每次调用都重新犯同样的错误。将其作为预设发布也能让它不进入每个非研究的会话。 |
| think-level@creait/dsh-think-level | 按提供商和模型的推理努力级别,外加一个控件来为你所在的会话更改它。 | dsh 的努力级别下拉菜单是按会话的且不记忆任何地方,因此“这个模型应该努力思考”在每个新对话中都要重新输入。子代理则完全不会被询问。 |
| tool-disclosure@creait/dsh-tool-disclosure | 渐进式工具披露:一组延迟的工具只花费一行目录,直到模型用 tool_search 加载它。 | dsh 在每个请求中宣传每个已挂载的工具。一个 MCP 服务器的 24 个浏览器模式约 4.4k token,向每个会话收费,包括那些从不打开浏览器的会话。 |
| tailnet-gateway@creait/dsh-tailnet-gateway | 一个身份门控的环回网关:从你自己的 Tailscale 设备访问绑定到环回的 dsh,且设置、模型和插件实际可用。 | dsh 将其特权 /api 方法门控在请求看起来是环回上,而 --trusted-host 不会打开那扇门。在 tailnet 上,shell 会加载,但配置它的页面返回 403。 |
| to-english@creait/dsh-to-english | 使用你已配置好的模型,将市场安装的插件中的中文文案改写为英文,同时保护程序自身读取的中文内容。 | 市场上大部分内容都是用中文写的,而粗暴的查找替换会给你一个能读英文但不再工作的插件。 |
hookkit 是通用型的那一个:一个小型引擎,自身不附带任何 hook——13 个生命周期事件 × 3 种处理器类型(进程内工具、shell、HTTP)× 3 种结果(注入上下文、拒绝调用、即发即忘)。正是它让诸如记忆召回这样的功能成为一项配置变更,而非一个插件。其余的都是单一用途。tailnet-gateway 是唯一一个关乎能否访问 dsh 本身,而非你到达之后它能做什么的插件。web-search-searxng 和 web-fetch 都是同一个 ctx.web 接缝的提供者,并且可以组合使用:二者结合,让智能体无需第三方往返即可进行搜索和页面阅读。research-mode 需要挂载 web-fetch——没有它,其研究员只能局限于搜索摘要。to-english 是个异类:它作用于你安装的其他插件,而非作用于某个 harness 接缝。
安装
每个包都独立安装——你不需要其他包:
dsh plugin --profile web add @creait/dsh-hookkit
每个包都自带自己的 bundle 补丁,因此该命令会挂载对应条目,而不仅仅是记录依赖。挂载并不等于启用:两个 ctx.web 提供者会自行注册,然后等待被指向某个目标;hookkit 挂载时不声明任何 hook;而 tailnet-gateway 需要在其前面运行 tailscale serve。每个 README 都会说明哪些键能完成这项工作。
开发
这些包从你已安装的 harness 解析其 dsh 对等依赖,而非从注册表解析,因此你始终是针对实际运行的版本进行构建:
DSH="$(npm root -g)/@deepseek-ai/dsh/node_modules/@deepseek-ai"
mkdir -p node_modules/@deepseek-ai
for p in cordis dsh-llm dsh-settings dsh-web schemastery; do
ln -sfn "$DSH/$p" "node_modules/@deepseek-ai/$p"
done
然后:
pnpm test # 九个包共 756 个测试
不要在根目录运行 pnpm install——它会把那些符号链接替换为已发布的副本,而这些副本可能与你实际的 harness 不匹配。
要让某个检出目录针对一个正在运行的 harness 运行,请将该包目录链接到一个 profile 中:
// ~/.dsh/profiles/web/package.json
"dependencies": {
"@creait/dsh-hookkit": "link:/path/to/dsh-plugins/hookkit"
}
然后在 profile 中运行 pnpm install 并重启 dsh web。启动清单是在启动时构建的,因此添加插件需要重启——而编辑一个已链接的插件则不需要。
发布
各版本相互独立;只发布有变更的内容:
cd hookkit && npm publish --access public
pnpm publish-changed 会处理所有版本尚未出现在注册表上的包(先加上 --dry-run 查看计划)。带作用域的包
默认设为 restricted,因此 --access public 在包的首次发布时很重要。
注意事项
这九个包都绑定到 1.0 之前的内部 dsh 接缝,不保证兼容性。
peerDependencies 固定了每个包构建时所针对的版本;一次 harness 升级
就可能改变它们。每个 README 都有一个“What breaks this”部分。
许可证
MIT。
research-mode 的循环设计移植自
dsh-deep-research
(MIT,Copyright (c) 2026 dsh2026);鸣谢见 research-mode/LICENSE。
此处其他所有内容均为原创。扫码进群