前言¶
DeepSeek Harness (DSH) 的核心理念是「一切皆插件」。在开发和长期运行智能体会话的过程中,开发者常面临重启繁琐、时间戳过期、调试困难以及外部服务接入受限等实际问题。dsh-pouch 是一套为 DSH 设计的实用、轻量且美观的插件集合,旨在通过微小的功能扩展提升日常开发效率和交互体验。
核心功能¶
这套插件集包含六个核心模块,分别解决不同的场景痛点:
-
安全重启机制
手动在终端重启 DSH 进程会打断当前会话,直接杀进程又会导致会话冻结。该插件提供/dsh-restart命令和dsh_restart代理工具。它会在后台启动一个异步分离的 Worker 进程,在返回响应前给予 3 秒的宽限期,确保会话能被干净地重启。 -
时间上下文注入
模型没有本地时钟。如果会话跨过午夜,模型可能会继续基于启动时的旧日期进行推理。该插件会在每回合的开始阶段,将主机的真实日期、时间和时区注入到代理上下文中,确保推理基于最新的时间信息。 -
Session ID 快捷复制
在 Web 界面中获取当前的 Session UUID 用于调试或日志追踪通常需要查看 URL 或控制台。该插件在 Web 会话头部的工具栏中注入了一个原生样式的 Session ID 徽章,点击即可自动复制到剪贴板。 -
Tavily 网络搜索
DSH 的ctx.web能力需要具体的搜索提供商。该插件提供了基于 Tavily REST API 的实时网络搜索支持。它通过ctx.web.registerSearchProvider接口注册,并支持从环境变量TAVILY_API_KEY或 DSH 凭证服务中解析 API 密钥。 -
LLM 请求头自定义
DSH 会在所有请求中注入自身的User-Agent,这有时会干扰需要特定客户端身份验证的网关(例如腾讯 CodeBuddy)。该插件允许在settings.yaml的llm-headers节点中配置自定义请求头。它提供了一个独立的「Request Headers」设置页面,支持覆盖 DSH 的保留 Header、环境变量插值(${env:NAME})、按模型覆盖以及删除操作。 -
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 的核心架构,而是作为贴片层增强了开发与交互的流畅度。