DeepSeek Harness 插件:dsh-pouch

前言

DeepSeek Harness (DSH) 的核心理念是「一切皆插件」。在开发和长期运行智能体会话的过程中,开发者常面临重启繁琐、时间戳过期、调试困难以及外部服务接入受限等实际问题。dsh-pouch 是一套为 DSH 设计的实用、轻量且美观的插件集合,旨在通过微小的功能扩展提升日常开发效率和交互体验。

核心功能

这套插件集包含六个核心模块,分别解决不同的场景痛点:

  1. 安全重启机制
    手动在终端重启 DSH 进程会打断当前会话,直接杀进程又会导致会话冻结。该插件提供 /dsh-restart 命令和 dsh_restart 代理工具。它会在后台启动一个异步分离的 Worker 进程,在返回响应前给予 3 秒的宽限期,确保会话能被干净地重启。

  2. 时间上下文注入
    模型没有本地时钟。如果会话跨过午夜,模型可能会继续基于启动时的旧日期进行推理。该插件会在每回合的开始阶段,将主机的真实日期、时间和时区注入到代理上下文中,确保推理基于最新的时间信息。

  3. Session ID 快捷复制
    在 Web 界面中获取当前的 Session UUID 用于调试或日志追踪通常需要查看 URL 或控制台。该插件在 Web 会话头部的工具栏中注入了一个原生样式的 Session ID 徽章,点击即可自动复制到剪贴板。

  4. Tavily 网络搜索
    DSH 的 ctx.web 能力需要具体的搜索提供商。该插件提供了基于 Tavily REST API 的实时网络搜索支持。它通过 ctx.web.registerSearchProvider 接口注册,并支持从环境变量 TAVILY_API_KEY 或 DSH 凭证服务中解析 API 密钥。

  5. LLM 请求头自定义
    DSH 会在所有请求中注入自身的 User-Agent,这有时会干扰需要特定客户端身份验证的网关(例如腾讯 CodeBuddy)。该插件允许在 settings.yaml 的 llm-headers 节点中配置自定义请求头。它提供了一个独立的「Request Headers」设置页面,支持覆盖 DSH 的保留 Header、环境变量插值(${env:NAME})、按模型覆盖以及删除操作。

  6. MCP 服务器控制台
    官方配置 MCP 服务器需要在 cordis.patch.yml 中静态配置,缺乏 GUI 且难以动态修改。该插件提供了一个基于 Web 的 MCP 服务器控制台,支持运行时添加、编辑、启用、禁用、重新连接或删除服务器。它支持每工具开关、通过 SSE 实时查看状态,以及 JSON 格式的 mcpServers 导入。

安装与启用

通过 DSH CLI 安装是推荐的方式,DSH 会自动下载、打包并挂载所有插件。

dsh plugin --profile web add @moon16u/dsh-pouch

使用示例

重启 DSH 进程
在会话中直接调用工具或命令即可:

/dsh-restart

或者调用代理工具:

dsh_restart()

启用网络搜索
确保已配置 TAVILY_API_KEY,插件加载后,即可在代理代码中使用 ctx.web 进行搜索。

配置自定义 Header
在 DSH 的 settings.yaml 中配置 llm-headers:

llm-headers:
  # 自定义 User-Agent
  User-Agent: "MyAgent/1.0"
  # 支持环境变量插值
  X-Custom-Header: "${env:MY_HEADER}"

注意事项

  • 版本兼容性:该插件集当前专为 DSH 0.1.5-rc.1 构建。llm-headers 插件通过读取 connection.api 或 remote.llm/settings 命名空间来适配不同的 DSH 版本。
  • 协议依赖:MCP 协议相关的代码完全基于官方的 @deepseek-ai/dsh-mcp-client 实现,不包含额外的 MCP 协议实现。
  • 安全检查:插件以当前 DSH 进程的权限运行。在安装前,建议检查其 GitHub 源码以确保符合安全标准。
  • 许可证:该插件集采用 MIT 许可证开源。

总结

dsh-pouch 通过解决重启、时间同步、调试便利性以及外部服务(如网络搜索和 MCP)接入这几个高频痛点,为 DSH 用户提供了开箱即用的工具箱。它不改变 DSH 的核心架构,而是作为贴片层增强了开发与交互的流畅度。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜