dsh-surfing-plugin 为 DeepSeek Harness 加上自托管网页访问能力:websearch…
35.8/100
综合分
15
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/17 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add cyijun/dsh-surfing-plugin该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · search
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 81 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/10/24) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意未发布到 npm registry,仅可从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-surfing-plugin(未发布到 npm,仅可源码安装)
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/31 12:34:25
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
发起外部网络请求
查看扫描证据(共 2 处,展示前 2 条)
- 发起网络请求src/crawl4ai.ts:38
async fetch(request: WebFetchRequest, signal?: AbortSignal): Promise<WebFetchResult> { - 发起网络请求src/http.ts:40
response = await fetch(url, { ...init, redirect: 'error' })
扫描于 2026/11/3(0 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/dsh-web给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 接入SearXNG搜索
- 接入Crawl4AI抓取
为 DeepSeek Harness 提供 SearXNG 搜索和 Crawl4AI 抓取服务商
README
由 DeepSeek 最新模型翻译生成dsh-surfing-plugin
dsh-surfing-plugin 为 DeepSeek Harness 加上自托管网页访问能力:web_search 走 SearXNG,web_fetch 走 Crawl4AI。它把服务商注册到 DSH 的 ctx.web 服务上,所以原生工具名、参数、渲染、超时、取消、结果数量限制都保持不变。
架构
flowchart LR
A[Native DSH web_search] --> B[surfing-searxng provider]
B --> C[SearXNG /search]
D[Native DSH web_fetch] --> E[surfing-crawl4ai provider]
E --> F[Crawl4AI /crawl]
随附的 cordis.patch.yml 会挂载这个插件,选中 surfing-searxng 和 surfing-crawl4ai,并加一个只做抓取的原生工具消费者。这个独立消费者在两种 DSH 组装方式下都能用:无头模式保留宿主级的 web_search,Web UI 则保留每个 Agent Preset 挂载的 web_search。内置的 DeepSeek 搜索服务商可以继续挂着,但不会被选中。
展开完整文档(README 剩余 1 节)
dsh-surfing-plugin
dsh-surfing-plugin 为 DeepSeek Harness 加上自托管网页访问能力:web_search 走 SearXNG,web_fetch 走 Crawl4AI。它把服务商注册到 DSH 的 ctx.web 服务上,所以原生工具名、参数、渲染、超时、取消、结果数量限制都保持不变。
架构
flowchart LR
A[Native DSH web_search] --> B[surfing-searxng provider]
B --> C[SearXNG /search]
D[Native DSH web_fetch] --> E[surfing-crawl4ai provider]
E --> F[Crawl4AI /crawl]
随附的 cordis.patch.yml 会挂载这个插件,选中 surfing-searxng 和 surfing-crawl4ai,并加一个只做抓取的原生工具消费者。这个独立消费者在两种 DSH 组装方式下都能用:无头模式保留宿主级的 web_search,Web UI 则保留每个 Agent Preset 挂载的 web_search。内置的 DeepSeek 搜索服务商可以继续挂着,但不会被选中。
环境要求
- Node.js ^22.19.0 或 >=24.0.0
- DeepSeek Harness >=0.1.0-rc.6 <0.2.0
- 能访问到 SearXNG 和 Crawl4AI 服务
- SearXNG 的 search.formats 里启用了 JSON
快速开始
端点值可以是服务根地址,也可以是完整的 /search 和 /crawl URL:
export SEARXNG_URL=http://127.0.0.1:8080
export CRAWL4AI_URL=http://127.0.0.1:11235
Current Crawl4AI releases enable Bearer authentication by default.
export CRAWL4AI_API_TOKEN=replace-with-your-token
把本地检出安装到 web 配置档:
dsh plugin --profile web add .
dsh --profile web --dump-config
dsh --profile web
发布到 npm 之后:
dsh plugin --profile web add dsh-surfing-plugin
卸载用 dsh plugin --profile web remove dsh-surfing-plugin。
配置
显式配置优先于环境变量。在 $DSH_HOME/profiles/web/cordis.patch.yml 里覆盖这个插件的行:
- id: surfing-plugin
config:
searxng:
url: https://search.example.com
apiKeyEnv: MY_SEARXNG_KEY
authHeader: X-API-Key
authScheme: ''
language: en
categories: general,news
safeSearch: 1
timeRange: month
crawl4ai:
url: https://crawl.example.com
apiKeyEnv: CRAWL4AI_API_TOKEN
authHeader: Authorization
authScheme: Bearer
markdownMode: raw
maxContentChars: 100000
| 字段 | 环境变量或默认值 | 含义 |
| searxng.url | SEARXNG_URL | 服务根地址或 /search 端点 |
| searxng.apiKey | 无 | 可选的明文密钥 |
| searxng.apiKeyEnv | SEARXNG_API_KEY | 存放可选密钥的环境变量 |
| searxng.authHeader | Authorization | 认证头 |
| searxng.authScheme | Bearer | 认证前缀;留空则直接发送密钥 |
| searxng.language | 服务端默认值 | SearXNG 的 language 参数 |
| searxng.categories | 服务端默认值 | 逗号分隔的 categories 参数 |
| searxng.safeSearch | 服务端默认值 | 0、1 或 2 |
| searxng.timeRange | 无 | day、month 或 year |
| crawl4ai.url | CRAWL4AI_URL | 服务根地址或 /crawl 端点 |
| crawl4ai.apiKey | 无 | 可选的明文密钥 |
| crawl4ai.apiKeyEnv | CRAWL4AI_API_TOKEN | 存放可选密钥的环境变量 |
| crawl4ai.authHeader | Authorization | 认证请求头 |
| crawl4ai.authScheme | Bearer | 认证前缀;留空则直接发送密钥 |
| crawl4ai.markdownMode | raw | 优先使用 raw、fit 或 citations markdown |
| crawl4ai.maxContentChars | 100000 | 返回 DSH 之前的内容上限 |
明文 apiKey 优先于 apiKeyEnv 指定的环境变量。没有可用密钥时不发送认证请求头。
服务商行为
SearXNG 服务商发送表单编码的 POST /search 请求,并带上 format=json。它保留绝对的 HTTP(S) 结果 URL,按 URL 去重,把 title、content 和 publishedDate 映射为 DSH 来源,并把非空的 SearXNG answers 作为结果内容暴露出来。
Crawl4AI 服务商向 POST /crawl 发送最小请求体 { "urls": [url] };模型输入无法提供浏览器或爬虫配置。只接受 HTTP(S) 目标。目标返回非 2xx 状态码时,DSH 抓取结果仍算成功,而 Crawl4AI API 失败会变成结构化的 WebError 值。
fit 和 citations 模式在首选字段为空时回退到原始 markdown。只有在不存在 markdown 表示时才返回 HTML。
安全
- 优先使用 apiKeyEnv;绝不提交凭据。
- 非回环服务使用 HTTPS。
- Crawl4AI 负责浏览器隔离、目标网络访问和 SSRF 策略。对外暴露之前,先限制它的网络和认证。
- 拒绝后端重定向,避免凭据被转发到其他端点。
GitHub 安装
Git 安装通过 prepare 从源码构建。固定一个提交:
dsh plugin --profile web add github:cyijun/surfing-plugin#COMMIT_SHA
pnpm 10 及更新版本要求对 Git 依赖批准构建脚本。如果首次安装被拦截,把它确切的包键复制到配置档的 pnpm-workspace.yaml,然后重试:
allowBuilds:
dsh-surfing-plugin: true
npm 包和 pnpm pack 生成的 tarball 已经包含 lib/,不需要这项批准。
开发与发布
corepack pnpm install
corepack pnpm run check
corepack pnpm pack
CI 在 main 和 pull request 上运行。匹配 v* 的标签会触发 npm Trusted Publishing 工作流。首次发布之前,把这个仓库和 publish.yml 配置为 npm Trusted Publisher,并确认 dsh-surfing-plugin 包名仍然可用。
许可证
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
cyijun/dsh-surfing-plugin
dsh-surfing-plugin 为 DeepSeek Harness 加上自托管网页访问能力:websearch…
相关插件 · 搜索 / 抓取
LLM 知识平台Tencent/WeKnora
概览 ·快速开始 ·新特性 ·功能 ·客户端 ·文档 ·开发
★ 36,266已汉化DSH
72
智能体记忆系统MemTensor/MemOS
MemOS 2.0 Stardust星尘
★ 12,228已汉化DSH
71.3
跨代理记忆库zilliztech/memsearch
跨平台语义记忆,专为 AI 编程智能体打造。
★ 2,799已汉化DSH
70.9
跨智能体会话记忆vshulcz/deja-vu
你的编码智能体不再重复调试你已经修好的问题。
★ 1,367已汉化MCP
70.4
技能语料库EverMind-AI/SkillCorpus
SkillCorpus 能给你什么
★ 694已汉化DSH
69.7
动画花园资源检索yjl9903/AnimeGarden
按番剧、字幕组和类型搜索动画 BT 资源
★ 1,391已汉化DSH
69.2
这是你的仓库?认领条目