前言¶
在 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 的辅助诊断面板存在。
核心功能¶
- 失败信息展示
插件会在消息输入区上方显示最近一次仍未恢复的请求失败信息。 - 历史记录对比
展开面板后,可以看到最近 3 条此前失败的记录,便于判断是否为重复故障。 - 错误分类
插件会将错误细分为 8 类:身份验证、禁止访问、限流、上下文超限、兼容性、超时、网络和服务端错误。 - 关键上下文
它会展示 DSH 已持久化的供应商错误消息以及对应的 Request ID,这些是排查问题的重要依据。 - 报告生成
提供一键复制功能,生成中英文脱敏的诊断报告,适合直接提交到 GitHub Discussions 或发给技术支持。 - 交互与状态
支持手动关闭当前诊断面板(不删除会话内的记录),且在成功完成下一轮对话后自动隐藏提示。
安装与启用¶
在安装前,请确保环境满足以下要求:
* 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 问题的开发者,它能显著提升沟通与调试的效率。