用途:multi-search-engine 提供统一 CLI,并行查询多个搜索引擎并返回归一化结果列表,适合构建多引擎深度研究、跨引擎事实核查、对比学术元数据与通用网页结果,以及无需 API key 获取可引用出版物元数据。
主要能力:支持 crossref(无需 key,可选 CROSSREF_MAILTO,提供 DOI、年份、作者等学术元数据)、duckduckgo(无需 key,隐私导向的通用网页基线)、brave(需 BRAVE_SEARCH_API_KEY 或旧版 BRAVE_API_KEY)、tavily(需 TAVILY_API_KEY,面向 AI 智能体返回干净 JSON)。结果含 engine、title、url、snippet、rank,学术引擎可额外输出 doi、year、authors、corporate_authors。
使用方式:安装 pip install opensquilla 后运行,例如:python {baseDir}/scripts/search.py --query "openclaw skill registry" --engines crossref,duckduckgo,brave --limit 10 --json。缺少某引擎 key 时不会整体报错,而是记录 per-engine errors 并继续;加 --strict 可在任一请求引擎不可用时快速失败。路由建议:学术查询优先 crossref,再补 brave 或 tavily;通用网页用 duckduckgo 加 brave 或 tavily 交叉验证;时效性查询用 brave 或 tavily;长尾学术从 crossref 开始,必要时补充 arXiv。
限制:仅 HTTP,无法读取 JS 渲染页面,需要无头浏览器时应改用相应技能。DuckDuckGo 抓取为尽力而为,HTML 结构变化可能导致解析失败,脚本会逐引擎记录并继续。超时、HTTP 429 和临时 5xx 最多重试两次并有限退避,重复失败仍作为软错误;调用方应避免高频循环。不绕过验证码,遇到挑战页该引擎返回零结果并记录警告。Crossref 是公共元数据服务而非全文检索索引,客户端发送 query.bibliographic,遵守结果上限,并使用规范 https://doi.org/<doi> URL。