dsh-web-search-ddg

by aooyoo

1 模型与账号接入github未核验到 manifest收录于 08-16

DeepSeek Harness (DSH) 网页插件 - 无令牌 DuckDuckGo 搜索提供者,本地无头浏览器,无需 API 密钥,无需模型计费

Zero-token DuckDuckGo search provider for the DeepSeek Harness (DSH) web seam — local headless browser, no API key, no model billing

安装

dsh plugin --profile web add github:aooyoo/dsh-web-search-ddg

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗

安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。

README

目录

English | 中文

为 DeepSeek Harness(DSH)web 能力 seam(ctx.web)提供的零 token DuckDuckGo 搜索提供方。

DSH 自带的搜索路由(deepseek-official)把每次 web_search 执行为一次 deepseek-v4-flash 上的完整计费模型请求——即使你会话模型选的是别的。本插件用你的本地浏览器替换它:以 headless 模式驱动 Chrome/Edge/Chromium 抓取 DuckDuckGo 的 HTML 端点,并从 dump 出的 DOM 中解析结果链接。

  • 每次搜索零模型 token——不需要 API key,不产生辅助模型请求
  • 零依赖——只用 Node 内置模块;不需要下载 Playwright/Puppeteer
  • 保留自带提供方的注册——切换只是一行配置,不用卸载

环境要求

  • 提供 ctx.web seam 的 DSH 宿主(≥ 0.1.0-rc)
  • 本地 Chromium 系浏览器。macOS(Chrome、Edge、Chromium)与 Linux(/usr/bin/chromium、/usr/bin/google-chrome)自动探测;可用 chromePath 覆盖
  • Node.js ≥ 18

安装

在你的 DSH profile 目录(如 ~/.dsh/profiles/web)中,作为树外插件安装:

pnpm add dsh-web-search-ddg

然后编辑 profile 的 cordis.patch.yml,挂载插件并将其设为默认搜索提供方。注意 patch 行会整体替换目标行的 config(无深度合并),因此 web 行必须重述其拥有的全部键——自带行只拥有 searchProvider:

# 为面向模型的 web_search 工具选择本提供方。
- id: web
  config:
    searchProvider: ddg-browser

# 挂载插件(注册提供方 id `ddg-browser`)。
- insert:
    - id: web-search-ddg
      name: dsh-web-search-ddg

自带的 web-search-deepseek 行保持不动:其提供方仍注册且可用,切回只需一行(searchProvider: deepseek-official)。DSH 的选择是单一显式 id,不是优先级链——设计上就没有静默回退。

不启动宿主即可验证组合后的配置树:

dsh --profile web --dump-config | grep -A2 searchProvider

重启宿主后生效(host 侧插件行不热更新)。

配置

所有键均可选;配置写在上面 insert 条目里。

键 默认值 含义
chromePath 第一个探测到的浏览器 Chromium 系可执行文件的绝对路径。
timeoutMs 20000 单次尝试预算。超时时已缓冲的 DOM 输出仍算成功(Chrome 的 --dump-dom 进程打印后经常不退出)。每次搜索共两次尝试;保持 2 × timeoutMs 小于 tool-web 的 searchTimeoutMs(DSH 默认 60s)。
virtualTimeBudgetMs 8000 Chrome 的 --virtual-time-budget——dump DOM 前页面允许的沉寂时长。

行为说明

  • 每次搜索延迟约 10–20 秒。 DOM 通常很快就绪,但子进程经常不自行退出(后台服务不会静默),因此结果常在超时兜底时拿到。兜底会读取缓冲输出,搜索仍然成功——只是不快。
  • DuckDuckGo 挑战页会显式报错。 端点返回反爬挑战时,插件抛出明确错误,说明原因与回退方式(switch searchProvider back to deepseek-official)。绝不静默降级。
  • headless UA 被覆盖为普通桌面 Chrome UA——端点识别 HeadlessChrome 标记并据此拦截。如果搜索开始普遍失败,可能是 DuckDuckGo 收紧了检测;更新 index.js 中的 UA 字符串。
  • 每次尝试都在 OS 临时目录下的一次性 --user-data-dir 中运行,进程结束后尽力清理(泄漏的临时目录绝不会导致搜索失败)。

工作原理

  1. 以 --headless --dump-dom --virtual-time-budget 和 UA 覆盖 spawn 浏览器,访问 https://html.duckduckgo.com/html/?q=<query>
  2. 从 stdout 读取序列化 DOM;kill 兜底约束挂起的页面,超时时已缓冲的输出会被采纳
  3. 解析 <a class="result__a">(标题)与 <a class="result__snippet">(摘要);两类 href 都是 //duckduckgo.com/l/?uddg=<encoded> 跳转,因此从 uddg 解码真实目标 URL,并按它配对标题/摘要
  4. 通过 seam 返回 { sources: [{ url, title?, snippet? }], truncated: false }——面向模型的 web_search 工具与结果卡片无需任何改动

开发

npm test          # 端到端:注册到 stub ctx.web 并跑一次真实搜索
CHROME_PATH=/path/to/browser npm test
TEST_QUERY="换个查询" npm test

许可证

MIT

原始 README: https://github.com/aooyoo/dsh-web-search-ddg/blob/main/README.zh.md ↗

同类插件

查看全部 →
模型与账号接入Anionex

agent-vision-toolkit

为纯文本模型"看图“设计更好的视觉工具箱和技能,支持多图理解,图片问答,前端UI还原、GUI 自动化等,并可选无缝接入多个主流agent,直接识别粘贴图片| A vision toolkit and skill designed for text-only llms — image Q&A, long-screenshot OCR, frontend UI restoration, and GUI automation, with optional seamless integration for Codex, Claude Code, Pi, Oh My Pi, and OpenCode

查看详情
928github+08-16
模型与账号接入toby-bridges

api-relay-audit

从 DeepSeek Harness 对 AI API 中转站和 LLM 代理运行本地安全审计,生成 Markdown 报告,覆盖提示词注入、模型替换信号、工具调用改写、错误泄漏、流完整性和按 profile 启用的 Web3 风险。

查看详情
791github+08-21
模型与账号接入ZJU-LLMs

OpenStory

✨ OpenStory 现已支持 DeepSeek Harness 插件! 现在可以通过 dsh-openstory 将 OpenStory 多智能体推演接入 DeepSeek Harness,让 agent 直接启动模拟、查看角色、下达指令并逐回合推进故事。查看 DSH 插件配置与使用指南。

查看详情
377github+08-17
模型与账号接入pulseaiclub

phi

pi的编码代理 ∞ 提供者、子代理、hashline编辑和权限门

查看详情
89github+08-16
模型与账号接入anysearch-team

anysearch-dsh

DeepSeek Harness(DSH)的 AnySearch 网络搜索提供方与高级搜索工具。

查看详情
79github+08-17
模型与账号接入kuangre123

codex-switch

Codex Switch 是一个 macOS 工具,一键配置 Codex 的自定义 API,同时保留官方 OpenAI 登录。保存后 Codex 的模型选择器里只会出现你选的那个 provider 的模型。也支持 Claude Code 的官方 / 自定义 API 切换。Codex Switch is a lightweight helper for configuring multiple coding-agent API routes. For Codex, it keeps Official OpenAI and a custom API provider configured in parallel, registers the custom model in Codex's mod

查看详情
67github+08-16