前言¶
在 DeepSeek Harness (DSH) 的开发与调试过程中,有时需要快速确认当前宿主进程的身份信息(如 PID、工作目录、Node 版本)或环境变量的分布情况。手动查看或依赖 AI 询问往往不够直接。dsh-env-inspector-plus 旨在解决这一痛点,通过在 DSH 网页版增加一个只读分页,并提供给模型一个只读工具,让环境体检变得直观且可控。
插件定位¶
这是一个由 felixpu 维护的管理安全类插件。它为 DSH 网页版的「设置 → 环境体检」增加了一个分页,同时向模型注入了 env_inspect 工具。其核心价值在于提供当前宿主进程的身份与环境变量分组快照,且严格限制敏感信息(如凭证值)不离开宿主。
核心功能¶
插件提供两大核心交互方式:网页端查看与模型端调用。
网页端展示¶
安装后,在 DSH 网页版「设置 → 环境体检」会出现一个新的只读分页。该页面展示以下信息:
- 宿主进程身份:包括进程 ID (pid)、入口脚本路径、当前工作目录 (cwd)、Node 版本、平台以及运行时长。
- 环境变量分组:展示环境变量的总体数量,以及按
DSH_前缀分组、按凭证形态分组(KEY/PASSWORD/SECRET/TOKEN)的统计情况。 - 逐条变量清单:列出所有环境变量,仅包含键名和元数据。每行数据包含:键名、是否以
DSH_开头、是否命中凭证形态、是否已设值、值长度。不含变量值本身。
模型工具调用¶
插件向模型提供 env_inspect 工具。调用该工具时无需参数,模型将获得上述快照数据。这有助于模型在回答关于当前运行环境的问题时,基于准确的事实进行判断。
安全边界¶
这是该插件设计的核心。凭证形态(KEY/PASSWORD/SECRET/TOKEN)的变量的值一律不出宿主。
在返回的变量清单中,这些敏感变量仅返回布尔值(是否命中凭证形态)和长度。任何环境变量的具体值都不会出现在 HTTP 响应体或模型上下文中,只有四个特定的 host 身份字段例外:
* host.cwd
* host.profileDir
* host.profile
* host.entry
这四个字段携带原值,因为它们是判断「现在在哪个目录跑、用哪个 profile」的关键信息,且这些值本身通常会出现在会话上下文中。
安装与启用¶
安装插件需要使用官方的 DSH 命令行工具。
1、在终端执行以下命令安装插件:
dsh plugin --profile web add github:felixpu/dsh-env-inspector-plus
2、安装完成后,必须重启 DSH 宿主进程,插件功能才会生效。
典型用法¶
网页端:
登录 DSH 网页版,导航至「设置 → 环境体检」,即可查看当前环境的快照。
模型端:
在对话中直接请求模型使用 env_inspect 工具。例如询问:「请检查当前环境变量,并告诉我 Node 版本和运行时长。」模型将调用工具并返回包含元数据的结构化数据。
技术实现细节¶
- 依赖与架构:插件不依赖任何
@deepseek-ai/*包,工具定义为手写对象(零 DSH 依赖)。客户端仅引入平台种子表内的模块(如react和 UI primitives)。 - 路由与注入:插件注入服务
['tools', 'webServer'],并注册只读路由GET /dsh-env-inspector/snapshot。成功时返回{ ok: true, data: <快照> },失败时返回{ ok: false, code: 'snapshot-failed' }。 - 失败处理:宿主端只返回机器可读的 code,面向用户的句子全部由客户端字典翻译。这确保了 UI 语言切换时,错误文案能即时跟随变化。
- 双语支持:支持中英双语。运行时 UI 文案通过
client/client.js中的字典注册,插件展示元数据通过locale/*.json提供。locale 命名空间使用包名dsh-env-inspector-plus以避免撞名。
适用场景与注意¶
该插件适合需要快速排查环境配置、验证 Profile 路径或分析环境变量分布的开发者。
注意:插件以当前 DSH 进程的权限运行。在使用前,建议检查其 GitHub 仓库的源码与许可证(MIT),确保符合你的使用规范。
短结尾¶
dsh-env-inspector-plus 提供了一种安全、可控的方式来窥探 DeepSeek Harness 的宿主环境。通过网页分页和模型工具的结合,它降低了环境调试的门槛,同时严格保护了敏感信息不泄露。