dsh-proxy-env:DeepSeek Harness 代理环境开关插件

前言

在开发基于 DeepSeek Harness(DSH)的智能体或工作流时,有时需要统一管理 HTTP 代理,有时又只需在特定子进程或请求中启用代理。直接在系统环境变量中设置往往缺乏灵活性,且难以在 Web 界面中动态调整。DSH 生态中的 dsh-proxy-env 插件提供了在 DSH 内部统一管理代理环境的能力,支持 Host 侧的全局分发与子进程环境注入,以及 Web 侧的配置卡片。

安装与启用

通过官方插件命令安装,安装后需重启对应 Profile 的 Web 进程才能生效。

dsh plugin --profile web add github:localSummer/dsh-proxy-env#main

安装完成后,使用 --dump-config 检查配置层,应出现 # == dsh-proxy-env 层且包含 id: proxy-env。

核心功能

该插件主要解决代理环境的注入与控制问题,核心能力如下:

  1. 代理模式

    • all 模式:代理 API 调用、子进程、Git、npm 等所有流量,通过设置 HTTP(S)_PROXY / ALL_PROXY / NO_PROXY 环境变量实现。
    • include 模式:仅代理指定主机清单内的 in-process fetch 请求,子进程环境变量保持不变。
  2. Host 侧控制

    • 在 Host 侧设置全局 dispatcher 与子进程代理环境。
    • 在 Web 设置页提供「代理环境」配置卡片,支持开关与配置项修改。
  3. 安全与容错

    • 代理地址支持 http:// 或 https:// 协议。
    • 与机器既有 no_proxy 合并,并强制包含 localhost 和 127.0.0.1。
    • 代理不可达时启动降级直连并告警;在 on 模式下,若代理不可达,插件拒绝写入 enabled=true。

配置项

配置命名空间为 settings.yaml 的 proxy-env 段,也可在 Web 设置页中编辑。主要字段包括:

字段 类型 说明
enabled boolean 是否启用代理
url string 代理地址,默认 http://127.0.0.1:7890
mode all | include 代理模式(all 或 include)
proxyHosts string[] include 模式下的主机清单
noProxy string all 模式下的豁免清单

命令与工具

插件提供命令行工具与 Web 交互接口。

/proxy 命令

在 DSH Web 界面或终端中可直接调用以下命令:

/proxy on [代理地址]
/proxy off
/proxy status

proxy_env 工具

提供程序化控制接口,支持 on / off / status 动作,以及 url、mode、proxyHosts、noProxy 参数。

依赖与兼容性

  • 运行时依赖:schemastery、undici。
  • DSH 版本要求:兼容 dsh >= 0.1.2-rc.1。
  • 卸载注意:Host 侧卸载插件时,会通过 ctx.effect 还原 dispatcher 与环境变量,确保系统状态恢复。

总结

dsh-proxy-env 为 DSH 提供了一套轻量级的代理环境管理方案,适用于需要精细化控制网络流量的工作流开发场景。开发者可通过设置页或命令行快速切换代理状态,无需修改系统环境变量。

  • 插件目录:https://www.skillhub.cn/plugins/localSummer/dsh-proxy-env
  • 源码地址:https://github.com/localSummer/dsh-proxy-env
羽毛球分组比赛记分
小程序二维码

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

小夜