核心用法
ddg-search 技能通过 web_fetch 工具直接请求 DuckDuckGo Lite 的 HTML 页面,解析出搜索结果的标题、摘要和 URL。无需安装任何依赖包,也无需配置 API 密钥,是真正的零成本搜索方案。
基础调用模式:
web_fetch(url="https://lite.duckduckgo.com/lite/?q=QUERY", extractMode="text", maxChars=8000)
关键技巧:
- 使用
extractMode="text"而非 markdown,避免 HTML 标签干扰 - 结果以纯文本编号列表呈现,需人工过滤前 1-2 条广告条目
- 支持区域过滤(
&kl=us-en、&kl=au-en等) - 精确短语搜索需 URL 编码引号:
%22exact+phrase%22
推荐工作流:
1. 搜索获取候选 URL 列表
2. 人工挑选最相关条目(跳过"Sponsored link")
3. 二次 web_fetch 抓取目标页面全文
显著优点
- 零门槛:无 API 密钥、无付费墙、无 rate limit 焦虑
- 零依赖:纯 web_fetch 实现,不引入额外 Python 包
- 降级可靠:专为
missing_brave_api_key错误设计,主搜索失效时的保险方案 - 区域支持:内置 20+ 国家/地区代码,本地化搜索能力完整
潜在局限
- 功能裁剪:不支持时间范围过滤(
&df=不可靠),无图片/视频结果 - 源质量差异:底层数据来自 Bing 索引,与 Google 结果存在偏差
- 反爬风险:DuckDuckGo 可能调整 Lite 版页面结构,导致解析失效
- 广告干扰:前 1-2 条结果固定为广告,需人工识别跳过
- 速率隐性限制:高频调用可能触发 IP 级限制,无明确文档说明阈值
适合人群
- Brave API 配额耗尽或配置失败的紧急场景
- 成本敏感、追求零运维的轻量级应用
- 需要快速验证搜索可行性,再决定是否接入付费 API 的 POC 阶段
- 对结果时效性不敏感、可接受 Bing 索引质量的通用查询
常规风险
- 解析脆弱性:HTML 结构变更会导致结果提取失败,无官方 API 稳定性承诺
- 合规灰色地带:大规模自动化抓取可能违反 DuckDuckGo ToS
- 结果完整性:maxChars 截断可能遗漏深层结果,长查询需分页策略(技能未提供)