🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

元搜索聚合 leolee9086/SAC_search

DeepSeek Harness
leolee908636 天前有提交已提供中文文档扫描:无法判定

DeepSeek Harness 多引擎元搜索插件:约 200 个免 API key 搜索引擎,运行时零依赖

32.1/100
综合分
3
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/29 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查未通过:仓库根目录及浅层子目录均无 dsh 插件清单,无法用 dsh 插件安装命令安装。以下命令仍可尝试,但可能失败。
无法用 dsh 插件命令安装(仓库内无 dsh 插件清单)
git clone https://github.com/leolee9086/SAC_search.git
按该仓库 README 的原生方式安装;若作者另行发布了 DSH 插件包,请以其文档为准

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · search
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 36 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
⚠︎ 实装验证未通过(unknown · 2026/10/30) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

仓库根目录及浅层子目录均无 dsh 插件清单,无法用 dsh 插件安装命令安装

展开查看检查明细 ↓

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

✗npm 包SAC_search(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/22 11:44:03

安全扫描自动 · 静态分析源码
v2.7.0
⚪ 扫描:无法判定尚无人工评估
展开查看扫描说明与证据 ↓

已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。

  • · 包内无可扫 JS
  • · TS 源码(可能为非 JS 实现或未发布源码),无法判定
扫描于 2026/11/4(0 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 聚合约200个搜索引擎
  • 免APIkey搜索
  • 运行时零依赖

README

由 DeepSeek 最新模型翻译生成
SAC_search SAC = Stand Alone Complex(攻壳机动队术语):没有原型的独立复合体。 命名梗一脉相承自 SiyuanAssistantCollection(表面读作 “Siyuan Assistant Collection”,SAC 实为 Stand Alone Complex 的标准缩写)——本仓库延续同一梗:官方没有给第三方插件预留注册面(没有原型),社区插件自发聚合出同类能力(独立复合体)。本仓库不是任何官方项目的子集,而是一个独立成型的复合体——约 200 个免 API key 搜索引擎自发聚合,在 DeepSeek Harness 上作为自包含插件运行。 本仓库曾经把三个插件放在子目录里一起发布。它们现在各有自己的仓库,本地工作副本也各自独立;本仓库只保留这段记录与共用的资源(如赞赏码)。 | 插件 | 仓库 | 做什么 | | dsh-tool-websearch | leolee9086/dsh-tool-websearch | 互联网元搜索:免 API key 直接调用 DuckDuckGo / Bing / Google / 百度 / 搜狗 等约 200 个搜索引擎,并发执行、结果去重聚合、按引擎权重与时效性评分。搜索实现移植自 s-code,构建期打包为自包含 ESM bundle,运行时零依赖。
展开完整文档(README 剩余 1 节)
SAC_search

SAC = Stand Alone Complex(攻壳机动队术语):没有原型的独立复合体。 命名梗一脉相承自 SiyuanAssistantCollection(表面读作 “Siyuan Assistant Collection”,SAC 实为 Stand Alone Complex 的标准缩写)——本仓库延续同一梗:官方没有给第三方插件预留注册面(没有原型),社区插件自发聚合出同类能力(独立复合体)。本仓库不是任何官方项目的子集,而是一个独立成型的复合体——约 200 个免 API key 搜索引擎自发聚合,在 DeepSeek Harness 上作为自包含插件运行。

本仓库曾经把三个插件放在子目录里一起发布。它们现在各有自己的仓库,本地工作副本也各自独立;本仓库只保留这段记录与共用的资源(如赞赏码)。

| 插件 | 仓库 | 做什么 |
| dsh-tool-websearch | leolee9086/dsh-tool-websearch | 互联网元搜索:免 API key 直接调用 DuckDuckGo / Bing / Google / 百度 / 搜狗 等约 200 个搜索引擎,并发执行、结果去重聚合、按引擎权重与时效性评分。搜索实现移植自 s-code,构建期打包为自包含 ESM bundle,运行时零依赖。 |
| dsh-tool-everything | leolee9086/dsh-tool-everything | 本机文件索引检索:查询 Everything 自带的 HTTP 接口,毫秒级按文件名、路径、扩展名、大小、修改时间检索整机文件;path 参数可把范围限定在某个目录(自动补尾分隔符,不会连带同前缀的兄弟目录)。索引含整机文件名,所以审批跟着会话文件权限走:完全权限直接调用,工作区/只读权限每次调用都过 DSH 审批,审批理由里带本次查询的关键词。零运行时依赖。 |
| dsh-better-session-query | leolee9086/dsh-better-session-query | 会话历史与记忆:给会话历史再挂一套块级并行索引(一条消息拆成 text / reasoning / tool-call / tool-result 等块,可按块检索与读取),另有记忆(q / a / tag / expires)、被动召回与属性表。不替换官方 session-query,不改任何 DSH 源码。 |

它们都通过 Cordis 服务契约接入 DSH。

为什么要拆:子目录里的代码被两个仓库同时跟踪时,一次改动可能提到错误的那个仓库,而两边的历史会各自往前走 —— 拆成“一个插件一个仓库、各自一个工作副本”之后,这类分叉就不会再发生。

安装

需要 Node.js 22.19.0 或更高版本、pnpm,以及兼容的 DeepSeek Harness Web 环境。

插件从各自的仓库安装 —— 每个仓库根就是插件包本身,所以 pnpm add 'github:leolee9086/dsh-tool-websearch' 这类 git 依赖形式能用(本仓库不再发布插件包)。

在 DSH Web profile 目录(默认 ~/.dsh/profiles/web,Windows 通常为 %USERPROFILE%\.dsh\profiles\web)执行:

pnpm add 'github:leolee9086/dsh-tool-websearch'

然后在该 profile 的 cordis.patch.yml 中加入下列配置;已有 insert 列表时只需向列表追加这一项,不要重复注册:

- insert:
- id: dsh-tool-websearch
name: dsh-tool-websearch

包内已带 cordis.patch.yml,因此也可以直接作为 bundle 挂载:

- name: dsh-tool-websearch

重载插件或重启 DSH 后刷新浏览器页面。开发时也可以把插件目录整个放进 $DSH_HOME/plugins/ 后重启 dsh。

两个插件各有自己的前置条件:

- dsh-tool-websearch 开箱即用,免 API key。
- dsh-tool-everything 需要本机装好 Everything 并打开它的 HTTP 服务(默认是关的),只绑回环、关掉文件下载:

; %APPDATA%\Everything\Everything.ini(改前请先退出 Everything)
http_server_enabled=1
http_server_bindings=127.0.0.1
http_server_port=8080
http_server_allow_file_download=0

端口要和插件 config.port 一致。细节见 dsh-tool-everything 的 README。

用法

模型侧的工具:

web_search_meta(query="rust async runtime 对比", engines=["duckduckgo","bing","baidu"])
web_search_status() # 可用引擎、权重、超时、速率限制、缓存与健康状态
web_search_proxy() # 查看/切换本地代理(探测 127.0.0.1:7890 等本地代理)

搜索结果在浏览器里以结果卡展示,运行中的逐引擎进度也显示在该卡片上。

运行进度当前实现的进度只保存在插件实例内存里,按 sessionId + callId 隔离,每次保留最多五条结果预览;搜索完成、失败、取消或插件卸载时清理,迟到回调不会恢复已清理状态。插件不注册进度投影,也不调用 Session.append 写入自定义事件——最终搜索文本仍通过正常工具返回值保存,历史结果卡继续读取该结果。细节见 dsh-tool-websearch 的 README。

两个历史分支

main 之前,本仓库用两个分支对比过“自定义会话事件”的两种用法。它们保留下来作为那段对比的记录:

| 分支 | 进度通道 | 会话历史安全 | 运行中逐引擎进度 |
| standard | 纯官方 API,不写任何自定义事件 | ✅ 永远安全 | ❌ 仅静态卡片「正在搜索: q」 |
| progress-events | 自定义事件 tool/websearch-progress + ignorable 标记 | ⚠️ 依赖官方 Session.append 的 ignorable 表面(见下) | ✅ 实时:引擎 x/y、当前引擎、已得条数、最新结果预览 |

两个分支的搜索引擎代码、工具 schema、结果渲染完全一致,唯一差异是进度通道。

为什么当初要有这两个分支

DeepSeek Harness 的会话日志持久化有一个已知事件类型白名单 KNOWN_SESSION_EVENT_TYPES(由 gen-persistence-catalog.ts 从 repo 内 SessionEventMap 声明生成)。读取端遇到白名单外的事件时:

- 未标记 ignorable: true → 整份会话日志拒绝加载(SessionFormatUnsupportedError,历史“损坏”且无法修复);
- 标记 ignorable: true → 跳过该事件,正常恢复。

官方架构笔记 2026-08-10-session-log-version-mechanism 明确说明:

“writers do not yet set ignorable (no producer needs it), so Session.append gains that surface with its first user.”

即:官方设计预期 Session.append 会在第一个用户出现时获得 ignorable 表面。progress-events 分支曾在官方实现该表面之前以最小补丁提前使用它,standard 分支则证明插件在纯官方 API 下也能完整工作。

main 最终选了第三条路:进度只留在插件实例的内存里,既不写自定义事件、也不依赖官方补丁,因此既没有日志风险也不需要等待官方实现。

许可证

MIT

交流

想聊工具软件折腾、或者有问题要问,欢迎加个人讨论群【工具软件爱好者折腾群-综合讨论】:点击加入(群号 1017854502)。

赞赏

如果这个项目帮到了你,可以请我喝杯咖啡:

赞赏码

也欢迎通过 爱发电 支持。
预览分享卡片长什么样 ↓leolee9086/SAC_search
分享 · DeepSeek Harness Hub
leolee9086/SAC_search

DeepSeek Harness 多引擎元搜索插件:约 200 个免 API key 搜索引擎,运行时零依赖

这是你的仓库?认领条目

回到顶部