Yurzi/dsh-web-fetch-enhanced ↗★ 0
dsh-web-fetch-enhanced
Configurable non-public address allowlists for DeepSeek Harness web_fetch
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Yurzi/dsh-web-fetch-enhanced说明文档
阅读完整 README ↗2. 配置白名单
打开 DSH Web,进入:
设置 → 插件 → 可配置插件 → Web Fetch Enhanced
展开卡片,在“允许的 CIDR”中每行填写一个网段。例如 Clash / Mihomo 的常见 Fake-IP 配置:
198.18.0.0/15
如果希望只有指定网站可以使用这个例外,再填写“允许的域名”:
api.example.com
*.docs.example.com
点击“保存”。无需重启 Profile,下一次 web_fetch 就会使用新规则。
3. 正常使用 web_fetch
插件不会改变 Agent 的使用方式。你仍然可以直接用自然语言提出请求,例如:
Agent 会照常调用 web_fetch;地址解析、白名单判断和安全传输由本插件在底层完成。
常见配置场景
Clash / Mihomo Fake-IP
如果整个 Fake-IP 网段都由可信代理接管:
| 设置项 | 内容 |
|---|---|
| 允许的 CIDR | 198.18.0.0/15 |
| 允许的域名 | 留空 |
留空域名白名单表示:任意域名只要解析到已放行 CIDR,就可以使用该 CIDR 例外。公网地址仍照常访问。
只允许少量域名使用 Fake-IP
| 设置项 | 内容 |
|---|---|
| 允许的 CIDR | 198.18.0.0/15 |
| 允许的域名 | api.example.com、*.docs.example.com |
这是更严格的配置,适合代理规则不完全受你控制的环境。
访问受信任的内网站点
### 只允许少量域名使用 Fake-IP
| 设置项 | 内容 |
| --- | --- |
| 允许的 CIDR | `198.18.0.0/15` |
| 允许的域名 | `api.example.com`、`*.docs.example.com` |
这是更严格的配置,适合代理规则不完全受你控制的环境。
## 高级配置
通常只需要在 Web GUI 中维护两项白名单。其他参数应由 Profile composition 管理:
| 字段 | 默认值 | 说明 |
| --- | --- | --- |
| `providerId` | `http-enhanced` | 注册到 `ctx.web` 的 fetch provider ID |
| `allowCidrs` | `[]` | 允许作为非公网例外的 IPv4 / IPv6 CIDR |
| `allowHostnames` | `[]` | 可选的精确域名或最左侧通配规则 |
| `maxResponseBytes` | `5,000,000` | 响应正文最大读取字节数 |
| `maxBodyChars` | `100,000` | 解码后最大字符数 |
| `timeoutMs` | `30,000` | 单次抓取超时(毫秒) |
| `maxRedirects` | `5` | 同源重定向最大跳数;`0` 表示不跟随 |
| `userAgent` | `dsh-web-fetch-enhanced/0.1.0` | 每个请求使用的 User-Agent |
默认安装采用独立的 `http-enhanced` provider ID,并保留原生 `http` provider。需要手动组合或 drop-in 替换时,参考:
- [独立 provider 示例](https://github.com/Yurzi/dsh-web-fetch-enhanced/blob/8c6c9a7257f49742169ff22fb3b14c8f3cc7a2a9/examples/coexist.cordis.yml)
- [drop-in 替换示例](https://github.com/Yurzi/dsh-web-fetch-enhanced/blob/8c6c9a7257f49742169ff22fb3b14c8f3cc7a2a9/examples/drop-in.cordis.yml)
- [手动 composition patch](https://github.com/Yurzi/dsh-web-fetch-enhanced/blob/8c6c9a7257f49742169ff22fb3b14c8f3cc7a2a9/examples/manual.cordis.patch.yml)
- [架构与 provider 选择语义](https://github.com/Yurzi/dsh-web-fetch-enhanced/blob/8c6c9a7257f49742169ff22fb3b14c8f3cc7a2a9/docs/design.zh-CN.md)
> 不要让原生 provider 和本插件同时注册同一个 ID,否则 Host 会以 `WEB_DUPLICATE_PROVIDER` 拒绝启动,而不是执行 last-wins 覆盖。