DSH 实用小插件锦囊:每轮真实时钟注入、安全自愈重启、顶栏会话 ID 复制、Tavily 真实搜索提供方、可配置的 LLM 请求头路由,以及运行时管理官方 @deepseek-ai/dsh-mcp-client 的 MCP 服务器控制台——增删改/启停/重连、工具级开关、SSE 实时状态、mcpServers JSON 导入、profile YAML 条目自动移植。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:moon16u/dsh-pouch
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。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
dsh-pouch
English | 中文
dsh-pouch 是一个专为 DeepSeek Harness (DSH) 打造的实用小插件工具箱(Pouch Toolkit)。
旨在提供小而美、轻量、开箱即用的实用微扩展,提升日常使用与开发体验。
📦 包含插件
| 插件 | 类型 | 描述 |
|---|---|---|
@moon16u/dsh-plugin-restart |
Host / Web UI | 提供 /restart 与 /dsh-restart 命令、原生 🔄 重启 候选菜单与 dsh_restart Agent 工具,实现进程分离的安全 3 秒平滑重启。 |
@moon16u/dsh-plugin-current-time |
Host / Agent | 每轮对话开始时向 Agent 上下文注入宿主机的真实日期、时间与时区,长会话跨天也不会再按旧日期推理。 |
@moon16u/dsh-plugin-session-id |
Web UI | 在 Web 会话顶栏右侧显示当前 Session ID,支持一键快速复制到剪贴板。 |
@moon16u/dsh-plugin-web-search-tavily |
Capability Seam | 基于 Tavily REST API 的真实网络搜索提供方,无缝接入 DSH 官方 ctx.web 网络能力标准。 |
@moon16u/dsh-plugin-llm-headers |
LLM 接缝 | 请求头由 settings.yaml 说了算的供应方路由(含 DSH 保留的 User-Agent):字面量、${env:NAME} 插值、按模型覆盖、null 删除,pi-ai 自带的 37 个供应方只写 headers 即可接入。 |
@moon16u/dsh-plugin-mcp-console |
Web UI + Host | 设置页「MCP 服务器」控制台:运行时增删改/启停/重连、工具级开关、SSE 实时状态、mcpServers JSON 导入。零 MCP 协议代码——全部复用官方 @deepseek-ai/dsh-mcp-client;profile YAML 里的 MCP 条目在启动/刷新时自动移植为动态管理(可逆回写)。 |
🚀 快速安装与使用
方式一:通过 DSH CLI 一行命令一键安装(推荐 ⭐️⭐️⭐️⭐️⭐️)
只需在终端执行一行命令,DSH 将自动下载并加载全部 6 个实用插件(0 手动配置,开箱即用):
# 1. 一键安装整套工具箱(来自 npm)
dsh plugin --profile web add @moon16u/dsh-pouch
# 或直接通过 GitHub 仓库安装
dsh plugin --profile web add https://github.com/moon16u/dsh-pouch.git
方式二:通过 Git 源码本地链接安装
克隆仓库到本地:
git clone https://github.com/moon16u/dsh-pouch.git ~/dsh-pouch在 DSH Profile 中一键引入 Bundle:
dsh plugin --profile web add file:~/dsh-pouchDSH 将自动识别
dsh.bundle并自动挂载内置的cordis.patch.yml,无需手动编辑配置文件。
🛠️ 单个插件详解
1. @moon16u/dsh-plugin-restart
- 痛点:在修改插件或配置后,需要手动到外部终端重启 DSH 进程;如果在 Agent 内部直接 kill 自身会导致会话卡死;第三方命令在 Web 下拉菜单中缺乏原生图标与中文描述。
- 解决:在 DSH 内部注册
/restart与兼容旧版的/dsh-restart斜杠命令、原生风格的🔄 重启 restart下拉候选装饰与dsh_restartAgent 工具。采用 detached setsid 异步工作进程,回车或点击后即刻响应并在 3 秒后安全平滑重启。
2. @moon16u/dsh-plugin-current-time
- 痛点:模型自己没有时钟,只能沿用启动时注入的那一次"今天"。会话跨过午夜后它仍按昨天的日期推理,而对话里没有任何东西会纠正它。
- 方案:挂载
agent/pre-step,在每轮第一步的提问之后追加一条真实时刻读数。按轮而非按步注入,工具调用循环不会把对话刷满几乎相同的时间戳。
3. @moon16u/dsh-plugin-session-id
- 痛点:排查问题、查看日志或跨环境关联时,需要获取当前会话的 UUID,但界面上没有直观的复制入口。
- 解决:在 Web 顶栏工具区优雅注入一个胶囊状的
Session ID按钮,点击即可一键复制。
4. @moon16u/dsh-plugin-web-search-tavily
- 痛点:默认搜索引擎可能受限或无法获取高质量结构化检索结果。
- 解决:标准实现 DSH 的
ctx.web.registerSearchProvider接口,支持通过环境变量TAVILY_API_KEY或 DSH Credentials 凭据管理服务安全解析密钥。
5. @moon16u/dsh-plugin-llm-headers
- 痛点:DSH 在每个供应方请求上最后合入自己的 attribution
User-Agent,llm-pi-ai里的headers无法覆盖这个保留名。按客户端标识鉴权的网关——腾讯 CodeBuddy 会返回500 {"code":11128,"msg":"request illegal"}——单靠配置无法接入。 - 方案:用自己的
llm-headers段落声明路由,仍交给官方PiAiAdapter承载,只把 pi-ai provider 包了一层,让配置的请求头在进入 socket 前拿到最后一次写权。另附一个请求头设置页(独立左侧栏入口)——官方提供方卡片没有对外 slot,且写进llm-pi-ai的请求头本就会被剥掉。包 provider 而不是协议对象,是为了让 pi-ai 自带的路由保留自己的 API 实现——这类路由两行就能接。未配置 headers 的路由照常发送 DSH attribution,且拒绝删除它。 - 版本跨度:为 DSH
0.1.7-rc.2构建。设置页读取提供方目录,写入走 rc.2 的 schema 驱动设置面——段落从各插件的export const Config自行发现,GUI 编辑以.volatile()就地热更新(无需 fiber 重启),本插件在settings/document-updated时重新注册适配器与路由。它必须遵守两条宿主契约:提供方 profile 校验的是路由的副本,settings provider 交出的deepFreeze段落因此保持原样;解析出的 profile 也带上dsh-llm-pi-ai的PiAiAdapter.modelOf读取的modelErrors映射。
6. @moon16u/dsh-plugin-mcp-console
- 痛点:官方接入 MCP 的方式是往
cordis.patch.yml写静态条目——没有 GUI、不能运行时增删改,每次改动都要重启;声明出来的服务器在面板里只能是只读摆设。 - 方案:设置页新增完整的MCP 服务器管理页,基于 cordis 动态装配运行时编排官方
@deepseek-ai/dsh-mcp-client(每台一个 fiber,热更新配置、免重启 DSH):主开关、工具级启停胶囊、SSE 实时状态与工具列表、mcpServers JSON 一键导入。外部 Agent 写进cordis.patch.yml的 MCP 条目由 Auto-Ingest 引擎接管:启动/刷新时连根移植进~/.dsh/dsh-mcp.json(含 fiber 接管与条目级 YAML 精确修剪),POST /export-yaml可逆回写。所有 API 响应中的凭据一律打码。
🧪 运行测试
本仓库采用 pnpm workspace 管理,所有插件均包含基于 Node.js 原生测试运行器的单元测试与契约测试:
cd dsh-pouch
pnpm install
pnpm test
📄 开源协议与致谢
- MIT License © 2026 moon16u
- Logo 图标来源于 Icons8 的 Toolbox 图标。
链接
同类插件
Tencent/WeKnora#dsh-weknora★ 33047
把 WeKnora 知识库接入 dsh 的四个只读工具:列出知识库、混合检索原文片段、按顺序还原单篇文档,以及直接取用 WeKnora 自己带引用的 RAG 或 ReAct agent 回答(含可续聊的 session id)。
superdesigndev/treg★ 4972
给 Agent 的工具目录:按「要做的事」检索约 2,600 个外部接口(SEO 与 SERP、外链、社交、人物与公司信息补全、广告库、抓取),查看参数与单次调用价格后直接调用,凭据由服务端注入。附带技能,MCP 行在未设置 TREG_TOKEN 前保持禁用。
TencentCloudBase/CloudBase-AI-Toolkit#dsh-plugin★ 1136
把腾讯云 CloudBase 后端接入 DeepSeek Harness——在对话里搭好并部署全栈应用,查询结果渲染为表格卡片(分页、排序、导出 CSV),部署后可预览真实域名,并提供 CloudBase MCP 工具集(`mcp__cloudbase__*`),登录走 device-code 流程。
gitroomhq/postiz-agent#dsh-postiz★ 509
通过 MCP 将 DeepSeek Harness 连接到 Postiz:列出已连接的社交媒体渠道、获取各平台发帖规则,并向 X、LinkedIn、Instagram、Facebook、Threads、TikTok、YouTube、Reddit、Bluesky、Mastodon、Discord、Slack、Telegram 等平台排期、存草稿或发布帖子;附带 postiz 工作流技能。
EthanYoQ/Invoice-Downloader#dsh-invoice-downloader★ 502
面向 DeepSeek Harness 的本地 IMAP 发票下载、OCR 识别、归档与 Excel 报销汇总。
anysearch-team/anysearch-dsh★ 457
基于 AnySearch 的实时网页与垂直搜索插件,为 DeepSeek Harness 提供搜索工具。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。