dsh-error-lens:DeepSeek Harness 的只读错误诊断插件

前言

在 DeepSeek Harness (DSH) 的开发或调试过程中,经常会遇到请求失败的情况。此时界面往往只显示模糊的“API 错误”或“Provider Error”,缺少错误码、Request ID 等关键上下文,且第三方网关返回的 HTTP 状态码(如 401、403、429)在界面上往往被统一处理,难以快速定位问题根源。

dsh-error-lens 插件旨在解决这一问题。它作为 DeepSeek Harness 的一个社区插件,通过读取本地会话日志,将失败记录整理成结构化的诊断信息,并自动进行脱敏处理,帮助开发者快速排查 API 故障。

插件介绍

dsh-error-lens 是一个只读的、脱敏的模型请求错误诊断工具。

  • 维护者:Wanbinyu
  • 类别:admin-security
  • 许可证:MIT
  • 定位:它不拦截请求,也不自动重试,仅作为 Web UI 的辅助诊断面板存在。

核心功能

  1. 失败信息展示
    插件会在消息输入区上方显示最近一次仍未恢复的请求失败信息。
  2. 历史记录对比
    展开面板后,可以看到最近 3 条此前失败的记录,便于判断是否为重复故障。
  3. 错误分类
    插件会将错误细分为 8 类:身份验证、禁止访问、限流、上下文超限、兼容性、超时、网络和服务端错误。
  4. 关键上下文
    它会展示 DSH 已持久化的供应商错误消息以及对应的 Request ID,这些是排查问题的重要依据。
  5. 报告生成
    提供一键复制功能,生成中英文脱敏的诊断报告,适合直接提交到 GitHub Discussions 或发给技术支持。
  6. 交互与状态
    支持手动关闭当前诊断面板(不删除会话内的记录),且在成功完成下一轮对话后自动隐藏提示。

安装与启用

在安装前,请确保环境满足以下要求:
* Node.js:版本 >= 22.19
* DeepSeek Harness:版本 0.1.0-rc.6 或更高

使用官方提供的安装命令进行安装:

dsh plugin --profile web add https://github.com/Wanbinyu/dsh-error-lens/releases/download/v0.1.7/dsh-error-lens-0.1.7.tgz

安装完成后,需要重启 Harness 服务以加载插件:

dsh web

如需卸载,可使用:

dsh plugin --profile web remove dsh-error-lens

配置说明

插件的默认配置位于 Web profile 的 cordis.patch.yml 文件中:

- insert:
    - id: error-lens
      name: dsh-error-lens
      config:
        maxRecords: 10
        maxMessageLength: 2000
配置项 默认值 说明
maxRecords 10 每个会话投影保留的最近错误数量,范围 1-50
maxMessageLength 2000 单条脱敏错误的最大字符数,范围 256-8000

隐私与边界

该插件设计时遵循严格的隐私原则:
* 数据来源:仅处理 DSH 会话日志中已经存在的终止失败记录。
* 不读取敏感信息:不会读取 settings.yaml 中的密钥,不会记录请求正文或完整提示词。
* 无外部交互:不会向外部服务发送遥测数据,不会自动更改配置、重试或切换模型。
* 无 DOM 注入:基于官方 session projection 与 Web UI slot 实现,不进行破坏性的 DOM 注入。

虽然插件会尝试通过文本规则移除 API Key、Token 和 URL 密钥参数,但复制或公开报告前仍建议人工检查,因为基于文本的脱敏无法保证覆盖所有供应商自定义的错误格式。

适用场景与注意

  • 适用场景:适合在调试 API 调用、排查网关报错、分析 Request ID 时使用。
  • 注意:这是一个非官方社区插件,与 DeepSeek 官方无隶属或背书关系。
  • 权限提示:插件以当前 DSH 进程的权限运行。在安装任何插件前,建议检查其源码与许可证。

结尾

dsh-error-lens 提供了从模糊报错到清晰诊断的中间层能力。对于需要频繁排查 API 问题的开发者,它能显著提升沟通与调试的效率。

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

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

小夜