dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
给 DeepSeek Harness 的 按命令代理:Agent 自己决定哪条 shell 命令走代理,插件负责安装并托管它所需要的代理内核 —— 不依赖你机器上已装的任何代理软件。
给 DeepSeek Harness 的 按命令代理:Agent 自己决定哪条 shell 命令走代理,插件负责安装并托管它所需要的代理内核 —— 不依赖你机器上已装的任何代理软件。
proxy npm install # 这条走代理
proxy curl https://api.github.com # 这条也走代理
curl https://registry.npmmirror.com/react # 不加前缀 = 直连
Harness 无法改写一条已经发出的命令:tools/pre-execute 的决定只有
allow / deny / ask,tools/post-execute 只能接受、替换内容或阻断。唯一能在运行时改写
args 的路径(替换 tools/execute 的 exec.arguments)会导致日志显示的命令与实际执行的
命令不一致,因此不采用。
proxy 是一个真实存在于 PATH 上的 proxy.cmd,所以:
dsh plugin --profile web add dsh-agentic-proxy
也可以直接从 GitHub 安装(内容与 npm 版本一致):
dsh plugin --profile web add github:joinsnow-star/dsh-agentic-proxy
从本地源码目录安装(开发用;pnpm 会建一个目录链接,改完代码重启 DSH 即生效):
dsh plugin --profile web add D:\path\to\dsh-agentic-proxy
dsh plugin add 只是把参数原样转发给 profile 目录下的 pnpm,并且只有以 ./..
开头的相对路径会被锚定到你当前所在目录,绝对路径原样透传 —— 这正是路径规格区别于包名的原因。
dsh plugin在 Windows 上以shell: true转发给cmd.exe,而^在 cmd 里是转义字符, 会被吃掉。所以add dsh-agentic-proxy@^0.1.0实际装成的是精确版本。想要范围就写进 profile 的package.json,别指望命令行能传进去。
CLI 会自动把包名写入 profile 的 dsh.profile.bundles,无需手改任何 profile 文件。
装完必须重启 DSH:bundle 层列表只在启动时解析一次,运行中的进程不会热加载新插件
(patchReload: live 只热重载 profile 目录下的用户 patch 文件,不含 bundle 列表)。
proxy <命令> 即可。| 关注点 | 做法 |
|---|---|
| 内核 | mihomo,首次使用时自动下载 |
| 订阅 | 交给内核的 proxy-providers,插件不解析订阅 |
| 选节点 | 内核的 url-test 组自动测速与故障转移,插件不排序节点 |
| 分流 | GEOIP,CN,DIRECT + MATCH,插件不维护国内域名表 |
| 生命周期 | 懒启动;DSH 退出即停止;用 pid 文件识别并清理孤儿进程 |
| 端口 | 默认 17890(避开 Clash for Windows 常用的 7890) |
| Agent 如何知道这个能力 | 注册运行时技能(不是模型工具),描述里直接写明 proxy 语法;仅在 shim 已安装时注册 |
单一事实来源 = 内核。 插件只生成一份很薄的配置骨架,其余全部委托给 mihomo。
gh-proxy.com + ghproxy.net。若三者都不可达,请手动下载内核并在设置里
填入路径。(实测数据见仓库中的 FINDINGS.md。)tar.exe)与 shim(.cmd)目前是 Windows 路径。proxy 会进入 PATH。 插件停止时会按标记清理;若你手动删过文件,残留的
proxy.cmd 也可以直接删除,插件下次启动会重新生成。agentic-proxy:它的名称与描述常驻在技能目录里,
正文按需加载。因此技能只在 proxy 命令确实存在于 PATH 上时才注册——否则等于让模型
去执行一条不存在的命令。未点过「安装命令前缀」时不会有这个技能。curl.exe(以及 git 在 Schannel 模式下)
会报 schannel: AcquireCredentialsHandle failed: SEC_E_NO_CREDENTIALS (0x8009030E)。
这不是代理不通(通道已经建立),而是 TLS 后端取不到 Windows 证书库。对该条命令
加 -c http.sslBackend=openssl 即可(proxy git -c http.sslBackend=openssl clone …);
Node 与 Python 自带 OpenSSL,不受影响。不要把它写进全局 git 配置——Schannel 用的是
Windows 证书库,某些环境(企业 MITM 代理)的根证书只在系统库里,强制 OpenSSL 会因无法
验证证书而失败。这一条已写进技能正文,Agent 遇到时可自行恢复。无构建步骤:客户端半是手写的 classic script,直接由 __ModuleLoader__.load 注册。
lib/paths.js 目录布局
lib/download.js 内核与 GeoIP 数据获取(多镜像)
lib/kernel.js 内核进程生命周期
lib/config.js 生成 mihomo 配置
lib/shim.js 生成 proxy.cmd
lib/rpc.js 设置页的 HTTP RPC 端点
lib/index.js 插件入口
client/client.js 设置页(零构建)
POLICY.md 是全部策略的说明书(各种情况下插件会怎么做、已知局限清单),随包发布。
以下三份是工程记录,只在
GitHub 仓库里,不随 npm 包分发:
DESIGN.md(设计决策与取舍)、FAILOVER.md(故障转移机制与实测数字)、
FINDINGS.md(实测事实与出处)。
MIT。注意 mihomo 本身是 GPL-3.0 且不随本包分发 —— 它是由用户按需下载的独立程序。