Agent Skillsopensquilla/opensquilla › multi-search-engine

multi-search-engine

GitHub

提供统一CLI并行查询Crossref、Brave等搜索引擎,支持学术元数据提取与结果去重。用于研究搜索、事实核查及多引擎对比,无需密钥即可访问部分源。

src/opensquilla/skills/bundled/multi-search-engine/SKILL.md opensquilla/opensquilla

Trigger Scenarios

用户需要执行研究搜索 进行事实核查或来源发现 比较不同搜索引擎的结果

Install

npx skills add opensquilla/opensquilla --skill multi-search-engine -g -y
More Options

Non-standard path

npx skills add https://github.com/opensquilla/opensquilla/tree/main/src/opensquilla/skills/bundled/multi-search-engine -g -y

Use without installing

npx skills use opensquilla/opensquilla@multi-search-engine

指定 Agent (Claude Code)

npx skills add opensquilla/opensquilla --skill multi-search-engine -a claude-code -g -y

安装 repo 全部 skill

npx skills add opensquilla/opensquilla --all -g -y

预览 repo 内 skill

npx skills add opensquilla/opensquilla --list

SKILL.md

Frontmatter
{
    "name": "multi-search-engine",
    "homepage": "",
    "metadata": {
        "platform": {
            "emoji": "🔍",
            "requires": {
                "anyBins": [
                    "python",
                    "python3"
                ]
            }
        }
    },
    "entrypoint": {
        "args": [
            "--query",
            "{{ with.query | default(inputs.user_message) }}",
            "--engines",
            "{{ with.engines | default(['brave', 'duckduckgo']) | join(',') }}",
            "--limit",
            "{{ with.max_results | default(25) }}",
            "--json"
        ],
        "parse": "json",
        "command": "python {baseDir}\/scripts\/search.py",
        "timeout": 60
    },
    "provenance": {
        "origin": "clawhub-mit0",
        "license": "MIT-0",
        "upstream_url": "https:\/\/clawhub.ai\/multi-search-engine",
        "maintained_by": "OpenSquilla"
    },
    "description": "Query scholarly metadata and the web through Crossref, Brave, Tavily, and DuckDuckGo with a single CLI surface. Trigger when the user asks for research search, fact lookup, source discovery, or engine comparison. Results retain DOI, publication year, and authors when supplied by Crossref, then deduplicate by DOI, arXiv ID, or normalized URL. API-key engines gate themselves on the relevant environment variable; Crossref and DuckDuckGo need no key.",
    "description_zh": "通过统一 CLI 使用 Crossref、Brave、Tavily 和 DuckDuckGo 查询学术元数据与网页。适用于研究搜索、事实查找、来源发现或引擎覆盖比较。结果会保留 Crossref 提供的 DOI、出版年份和作者,并按 DOI、arXiv ID 或规范化 URL 去重。需要密钥的引擎由对应环境变量启用;Crossref 和 DuckDuckGo 无需密钥。"
}

multi-search-engine

A unified CLI for querying several web search engines in parallel and returning a normalized result list. Built on httpx and beautifulsoup4 (both already in OpenSquilla default dependencies, so no extra install beyond pip install opensquilla).

Use cases

  • Building a deep-research round with diverse engine coverage
  • Fact-check a claim against >1 engine
  • Compare scholarly metadata coverage with general web results
  • Find citable publication metadata without requiring an API key

Limitations

  • A single engine sufficient → call its API directly instead
  • Need headless-browser DOM rendering → this skill is HTTP-only

Quick start

python {baseDir}/scripts/search.py \
    --query "openclaw skill registry" \
    --engines crossref,duckduckgo,brave \
    --limit 10 \
    --json

Output:

{
  "query": "...",
  "results": [
    {
      "engine": "crossref",
      "title": "...",
      "url": "https://...",
      "snippet": "...",
      "rank": 1,
      "doi": "10.1234/example",
      "year": 2024,
      "authors": ["Ada Example", "Edge Research Consortium"],
      "corporate_authors": ["Edge Research Consortium"]
    }
  ],
  "errors": [
    {"engine": "brave", "reason": "BRAVE_SEARCH_API_KEY/BRAVE_API_KEY not set; skipping"}
  ]
}

doi, year, authors, and corporate_authors are optional. They are emitted only when an engine supplies verifiable values, so the existing five-field web-result shape remains compatible for general engines. The parallel corporate-author list lets BibTeX consumers protect institution names from person-name parsing.

Engines

Engine Needs key Key env var Strength
crossref no optional CROSSREF_MAILTO Scholarly works with canonical DOI, year, and author metadata
duckduckgo no No-key, privacy-oriented broad web baseline
brave yes BRAVE_SEARCH_API_KEY or legacy BRAVE_API_KEY High-quality results, generous free tier
tavily yes TAVILY_API_KEY Designed for AI agents, returns clean JSON

The script never errors out when an API-key engine's key is missing — it records a per-engine errors entry and continues with the rest. Pass --strict to fail fast when any requested engine is unavailable.

Routing tips

The host should pick engines by language and availability:

  • Academic queries → crossref first, then brave or tavily for broader context
  • General web queries → duckduckgo plus brave or tavily for triangulation
  • Time-sensitive (last 24h) → brave (recency filter) or tavily
  • Long-tail academic → start with crossref; supplement with direct arXiv when needed

engines.md has the full per-engine guidance.

Boundaries

  • HTTP-only. JS-rendered pages will not be readable; use a headless-browser skill if needed.
  • DuckDuckGo scraping is best-effort — HTML structure changes can break it. The script logs parse failures individually and keeps the run going.
  • Timeout, HTTP 429, and transient HTTP 5xx responses receive at most two retries with bounded backoff. Repeated failures remain per-engine soft errors. Callers must still avoid high-rate loops.
  • Captcha-protected results are not bypassed. If an engine returns a challenge page, the parser will return zero results for that engine and log a warning.

Crossref is a public metadata service, not a full-text search index. The client sends query.bibliographic, respects the requested result limit, and uses canonical https://doi.org/<doi> URLs. Set CROSSREF_MAILTO to identify your application through Crossref's polite-pool convention. See the Crossref REST API etiquette and rate-limit documentation.

Version History

  • 95673be Current 2026-08-07 00:58

    新增Crossref和Tavily引擎支持,移除Bing、百度等中文特定引擎,优化学术元数据结构及路由策略。

  • f662be3 2026-07-31 11:48
  • 7f72a32 2026-07-05 18:38

Same Skill Collection

src/opensquilla/skills/bundled/advanced-dubbing-studio/SKILL.md
src/opensquilla/skills/bundled/ai-video-script/SKILL.md
src/opensquilla/skills/bundled/audio-cog/SKILL.md
src/opensquilla/skills/bundled/awesome-webpage-image-download/SKILL.md
src/opensquilla/skills/bundled/awesome-webpage-research/SKILL.md
src/opensquilla/skills/bundled/AwesomeWebpageMetaSkill/SKILL.md
src/opensquilla/skills/bundled/cron/SKILL.md
src/opensquilla/skills/bundled/docx/SKILL.md
src/opensquilla/skills/bundled/filesystem/SKILL.md
src/opensquilla/skills/bundled/git-diff/SKILL.md
src/opensquilla/skills/bundled/github/SKILL.md
src/opensquilla/skills/bundled/history-explorer/SKILL.md
src/opensquilla/skills/bundled/html-coder/SKILL.md
src/opensquilla/skills/bundled/html-to-pdf/SKILL.md
src/opensquilla/skills/bundled/http-fetch/SKILL.md
src/opensquilla/skills/bundled/latex-compile/SKILL.md
src/opensquilla/skills/bundled/memory/SKILL.md
src/opensquilla/skills/bundled/meta-kid-project-planner/SKILL.md
src/opensquilla/skills/bundled/music-and-singing-studio/SKILL.md
src/opensquilla/skills/bundled/nano-banana-pro-openrouter/SKILL.md
src/opensquilla/skills/bundled/nano-banana-pro/SKILL.md
src/opensquilla/skills/bundled/nano-pdf/SKILL.md
src/opensquilla/skills/bundled/openrouter-video-generator/SKILL.md
src/opensquilla/skills/bundled/paper-abstract-author/SKILL.md
src/opensquilla/skills/bundled/paper-artifact-runtime/SKILL.md
src/opensquilla/skills/bundled/paper-citation-integrity-gate/SKILL.md
src/opensquilla/skills/bundled/paper-citation-planner/SKILL.md
src/opensquilla/skills/bundled/paper-delivery-summary/SKILL.md
src/opensquilla/skills/bundled/paper-experiment-stub/SKILL.md
src/opensquilla/skills/bundled/paper-latex-sanitizer/SKILL.md
src/opensquilla/skills/bundled/paper-length-gate/SKILL.md
src/opensquilla/skills/bundled/paper-outline-author/SKILL.md
src/opensquilla/skills/bundled/paper-preference-planner/SKILL.md
src/opensquilla/skills/bundled/paper-quality-gate/SKILL.md
src/opensquilla/skills/bundled/paper-refbib-stub/SKILL.md
src/opensquilla/skills/bundled/paper-revision-author/SKILL.md
src/opensquilla/skills/bundled/paper-section-author/SKILL.md
src/opensquilla/skills/bundled/paper-source-curator/SKILL.md
src/opensquilla/skills/bundled/paper-source-readiness-gate/SKILL.md
src/opensquilla/skills/bundled/pptx/SKILL.md
src/opensquilla/skills/bundled/seedance-2-prompt/SKILL.md
src/opensquilla/skills/bundled/short-drama-delivery-audit/SKILL.md
src/opensquilla/skills/bundled/short-drama-review-normalizer/SKILL.md
src/opensquilla/skills/bundled/skill-creator-linter/SKILL.md
src/opensquilla/skills/bundled/skill-creator-proposals/SKILL.md
src/opensquilla/skills/bundled/skill-creator-smoke-test/SKILL.md
src/opensquilla/skills/bundled/srt-from-script/SKILL.md
src/opensquilla/skills/bundled/stack-trace-generic-probe/SKILL.md
src/opensquilla/skills/bundled/stack-trace-go-probe/SKILL.md

Metadata

Files
0
Version
95673be
Hash
39a5b36e
Indexed
2026-07-05 18:38

Accueil - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-07 18:30
浙ICP备14020137号-1 $Carte des visiteurs$