在开发或调试 DeepSeek Harness (dsh) 工作流时,网络连通性、系统代理配置冲突以及本地 Hosts 文件干扰是常见的阻碍因素。当智能体无法访问 GitHub 或特定 API 时,往往需要人工介入排查代理端口、DNS 解析及 Hosts 记录。dsh-netassist 旨在为智能体提供一套只读的网络诊断能力,直接回答“是否可达”、“代理状态如何”以及“端口是否存活”等具体问题。
这是一个由 Edge-Echo 维护的 DSH 插件,属于 dsh-toolkit 家族的一部分。它利用 PowerShell 在 Windows 环境下执行一系列只读诊断脚本,提供从 DNS 解析、TCP 连接到 HTTPS 状态码的完整诊断链,并支持扫描本地 hosts 文件中的 GitHub 记录。
核心功能¶
- GitHub 连通性检查:验证 DNS 解析与 TCP 443 端口可达性。
- 系统代理检测:读取 Windows 注册表(ProxyEnable/ProxyServer/ProxyOverride)及环境变量中的代理配置。
- 代理端口探测:探测本地常见代理端口(10808, 10809, 7890, 7897, 8888, 1080)的存活状态。
- 完整诊断链:针对任意 Host 和 Port,执行 DNS -> TCP -> HTTPS 状态码的全链路诊断。
- Hosts 文件冲突扫描:检查 hosts 文件中是否存在 GitHub 相关的域名记录。
安装与启用¶
在终端中执行以下命令安装插件:
dsh plugin --profile web add dsh-netassist
dsh web # 重启服务以加载插件
典型用法¶
安装后,可通过自然语言或工具名调用以下功能:
- 检查 GitHub 可达性:”check if github.com is reachable” -> 触发
net_github_status - 查看系统代理:”what proxy is my system using?” -> 触发
net_proxy_status - 检查代理端口:”is my proxy running?” -> 触发
net_proxy_probe - 排查网络故障:”why can’t I reach api.example.com:8443?” -> 触发
net_diaghost=api.example.com port=8443 - 检查 hosts 冲突:”any github entries in my hosts?” -> 触发
net_hosts_check
注意事项¶
- 平台限制:仅支持 Windows。工具在非 Windows 平台会报错(spawn powershell.exe ENOENT)。
- 安全机制:所有诊断均为只读操作,无写入权限。通过 Base64 传递用户输入,防止命令注入。
- 性能:每个工具冷启动耗时约 20 秒。
net_doctor(全链路诊断)可能超过 60 秒(因为并行运行多个检查),MCP 客户端默认 60 秒超时可能不满足需求,建议单独调用工具或调整超时。 - PowerShell 策略:若执行失败,需检查 PowerShell 执行策略,虽然插件使用
-NoProfile -NonInteractive,通常不依赖 RemoteSigned。
该插件通过标准化的诊断接口,辅助智能体快速定位网络层问题,适合在调试 DSH 工作流时使用。
GitHub: https://github.com/Edge-Echo/dsh-netassist
NPM: https://www.npmjs.com/package/dsh-netassist