DeepSeek Harness 插件

moon16u/dsh-pouch

Star 数 ★ 1 分类 工具与能力 收录于 2026-08-27

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 源码本地链接安装

  1. 克隆仓库到本地:

    git clone https://github.com/moon16u/dsh-pouch.git ~/dsh-pouch
    
  2. 在 DSH Profile 中一键引入 Bundle:

    dsh plugin --profile web add file:~/dsh-pouch
    

    DSH 将自动识别 dsh.bundle 并自动挂载内置的 cordis.patch.yml,无需手动编辑配置文件。


🛠️ 单个插件详解

1. @moon16u/dsh-plugin-restart

  • 痛点:在修改插件或配置后,需要手动到外部终端重启 DSH 进程;如果在 Agent 内部直接 kill 自身会导致会话卡死;第三方命令在 Web 下拉菜单中缺乏原生图标与中文描述。
  • 解决:在 DSH 内部注册 /restart 与兼容旧版的 /dsh-restart 斜杠命令、原生风格的 🔄 重启 restart 下拉候选装饰与 dsh_restart Agent 工具。采用 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

📄 开源协议与致谢

内容来自项目 README(GitHub)↗

链接

同类插件

查看整个分类 →

社区评论

评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。