DeepSeek Harness Hub
← 返回列表

fastCRW 网页抓取us/dsh-crw

DeepSeek Harnessspec-screenedwebsearch在 GitHub 查看 ↗
✓ 可直接安装

为模型提供防 SSRF 的搜索与网页正文抓取

自动检查通过:npm 包已发布且 engines 声明满足基线(声明 Node ^22.19.0 || >=24.0.0);该结论来自程序自动检查,未经人工实机验证。 · 最近上游提交 2026/8/15 · 已提供中文文档

为DeepSeek Harness(ctx.web)提供由fastCRW支持的web_search和web_fetch提供程序

综合分
31.5
GitHub 分
31.5
用户评分
★ Stars
3
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add dsh-crw
npm 包 dsh-crw 已校验归属本仓库,走 npm 安装最省事
数据截至 2026/8/21(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查✓ 自动检查通过

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

npm 包dsh-crw @ 0.1.0
Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
dsh CLI 依赖未声明 dsh 版本约束
入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/19 03:10:12

依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/dsh-web
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-crw

由 fastCRW 提供支持的 web_search 和 web_fetch,用于
DeepSeek Harness。

该 harness 将 Web 访问视为一个能力接缝(ctx.web),并支持可插拔的
提供方。本包在 id crw 下注册了其中两个,因此模型保持完全相同的
web_search / web_fetch 工具,仅后端发生变化。

为什么

基础组合默认开启 web_search,而关闭 web_fetch。其自身的
配置说明了原因:

Fetch 保持禁用,且未挂载任何 fetch 提供方:该提供方推迟了
SSRF 防护,而模型会选择请求目标。

这是合理的判断。内置的 HTTP fetch 提供方在 harness
进程中运行 fetch(),其 README 直言不讳地指出了这一缺口:不阻止私有、回环、
链路本地或组播目的地,不进行 DNS 解析后再验证。一个选择 http://169.254.169.254/ 的模型
会拿到你的云元数据端点。

fastCRW 在服务端解析并验证目标,并拒绝私有网段,
因此 harness 进程永远不会打开由模型选择的连接。这正是
开启 fetch 变得合理的原因,也是 fetch: true 位于此 bundle
而非上游的原因。

第二个原因是,纯 HTTP 已不再是开放 Web 的读取方式:

| URL | 内置 HTTP 提供方 | dsh-crw |
| --- | --- | --- |
| producthunt.com | 403,一个 Cloudflare 插页 | 200,27,559 字符的 markdown |
| zillow.com | 403,“Access to this page has been denied” | 200,真实页面内容 |
| news.ycombinator.com | 200,供工具转换的原始 HTML | 200,来自源站的 markdown |

fastCRW 会按页面从纯 HTTP 逐级升级到其浏览器层级,仅在
页面需要时才升级,因此常见情况保持快速,而困难情况仍能得到回答。
并非每一堵墙都会倒下:交互式 Cloudflare 挑战有时仍会获胜。

安装

export CRW_API_KEY=...          # fastcrw.com,500 免费额度,无需信用卡
dsh plugin --profile default add dsh-crw
dsh --profile default

在 fastcrw.com 获取密钥。免费层是一次性 500
额度,无需信用卡;一个页面为一个额度。

若要直接从本仓库安装,请固定一个提交并允许构建。
git 安装会获取源码,因此 pnpm 必须运行本包的 prepare
脚本来生成 lib/,而 pnpm 10+ 要求你明确说明这一点:

$DSH_HOME/profiles//pnpm-workspace.yaml
allowBuilds:
dsh-crw: true

dsh plugin --profile default add github:us/dsh-crw#

该许可会在安装时于你的机器上运行本包的构建,因此
请固定提交,而不是跟踪分支。

在启动前验证该层:

dsh --profile default --dump-config    # 显示一个 "# == dsh-crw" 层

该 bundle 做什么

随附的 cordis.patch.yml 在 @deepseek-ai/dsh-base 之上应用了三处更改:

- 将 web.searchProvider 和 web.fetchProvider 指向 crw
- 开启 tool-web 的 fetch 并提高两个超时时间,因为位于 JS 或反机器人墙之后的页面在应答之前会逐级升级浏览器层级
- 挂载此插件,读取 $CRW_API_KEY

基础层自带的 DeepSeek 搜索提供程序保持挂载,因此将搜索切换回去只需在你配置文件的 cordis.patch.yml 中改一行:

- id: web
config:
searchProvider: deepseek-official
fetchProvider: crw

配置

| 键 | 默认值 | 含义 |
| --- | --- | --- |
| apiKey | $CRW_API_KEY | fastCRW API 密钥。针对云端端点时为必填;自托管时留空即可。 |
| baseURL | https://fastcrw.com/api | 端点基址;会追加 /v1/search 和 /v1/scrape。 |
| search | true | 注册搜索提供程序。 |
| fetch | true | 注册抓取提供程序。 |
| answer | false | 让 fastCRW 基于结果综合出一个答案,作为接缝的 content 返回。每次搜索会增加一次 LLM 调用。 |
| maxBodyChars | 100000 | 返回页面字符数的上限,与内置提供程序一致。 |

- id: crw
name: dsh-crw
config:
apiKey: !!js process.env.CRW_API_KEY
answer: false

自托管

fastCRW 采用 AGPL-3.0 许可,且引擎是单个二进制文件,因此整个 Web 层都可以留在你自己的机器上:

crw serve

- id: crw
name: dsh-crw
config:
baseURL: http://127.0.0.1:3002

自托管端点不需要凭据,因此 apiKey 可以为空。只有当提供程序指向云端端点时,它才坚持要求密钥。

映射说明

- 搜索。 POST /v1/search。每个结果映射为一个 WebSearchSource:url、title 和 snippet 取自结果的 snippet,若没有则取自其 description。没有 URL 的结果会被丢弃,而不是赋予一个编造的 URL。开启 answer 后,综合出的答案会成为接缝的 content。最终的 maxResults 截断由接缝负责。
- 抓取。 POST /v1/scrape,使用 formats: ['markdown']。正文类型是 text,而不是 html:fastCRW 已经返回 markdown,而 html 会让它再经过该工具的 turndown 处理,去转换已转换过的输出。
- 非 2xx 目标。 fastCRW 将 404 目标报告为 success: false,同时仍返回它获取到的内容。接缝的契约正好相反,因此携带状态码的信封始终是一个结果。WebError 仅保留给完全无法检索资源的情况:URL 被拒绝、密钥错误、余额耗尽。
- 不发送渲染器提示。 fastCRW 的升级阶梯会逐页决定纯 HTTP 是否足够。

开发

bun install
bun test
bun run build

许可证

MIT。

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群