Baidu API Search

面向 Agent 的百度 API 搜索 Skill。用于中文“查一下/搜索/联网查/最近/最新/热点”等场景,调用百度百科和百度 AI Search API,保留原始结果、去重并生成 research pack。

Audits

Pass

Install

openclaw skills install baidu-api-search

Baidu API Search

把百度百科查询和百度 AI Search API 整理成适合 Agent 使用的中文资料检索流程。遇到中文“查一下 / 搜索 / 联网查 / 最近 / 最新 / 热点”这类请求时,优先使用本 Skill,而不是通用 web_search。目标是保留原始来源给 AI 分析,不是用生成式摘要替代证据。

工作流程

  1. 先选择模式:lookupfastnormaldeep
  2. 默认使用统一入口 {baseDir}/scripts/search.py;它会把 lookup 路由到百度百科,把网页搜索模式路由到自适应搜索。
  3. 真实搜索必须读取 BAIDU_AI_SEARCH_API_KEYS,不要把 Key 写死在文件里。
  4. 简单实体问题,例如“这是什么”“这个人是谁”,优先使用 lookup,能用百科解决就不额外搜索网页。
  5. fast 用于快速找一批来源,normal 用于普通问答,deep 只在用户明确要求全面覆盖或首轮覆盖不足时使用。
  6. 只在需要查看或手动调整搜索词时使用 scripts/plan_queries.py
  7. 只有用户明确要求完整跑完所有计划查询时,才使用 scripts/run_search_plan.py
  8. 需要刷新结果包时,使用 scripts/dedupe_results.pyscripts/build_research_pack.py
  9. 汇报时说明查询次数、原始结果数、去重后来源数、主要域名、覆盖缺口和下一步建议。
  10. 回答事实性结论时,引用 research_pack.md 里的 source_id 加 URL 或域名;百科查询引用 lookup_pack.md 里的词条 URL 或 ID。

模式

  • lookup:调用百度百科候选词和内容接口,通常 1-2 次 API 调用,适合实体定义和消歧。
  • fast:只跑 1 个搜索词,top_k=10,默认使用百度 lite 搜索版本,适合快速发现来源。
  • normal:默认模式,先跑 3 个搜索词,最多规划 12 个多角度搜索词,top_k=20
  • deep:深度模式,先跑 5 个搜索词,top_k=30,必要时基于已有结果继续扩展搜索词。

不要默认直接使用 deep。只有用户要求深度覆盖,或首轮结果明显缺少关键角度时,再提高搜索预算。

命令

生成搜索词计划:

python "{baseDir}/scripts/plan_queries.py" --topic "新能源汽车 口碑" --mode normal --output runs/ev-reputation/query_plan.json

只检查百度 API 请求体,不真正调用接口:

python "{baseDir}/scripts/baidu_web_search.py" --query "新能源汽车 口碑" --top-k 50 --dry-run

运行轻量百科查询:

python "{baseDir}/scripts/search.py" "量子计算" --mode lookup

先查百科,百科没有候选词时只回退到一次轻量网页搜索:

python "{baseDir}/scripts/search.py" "某个新产品名称" --mode lookup --fallback-search

设置 BAIDU_AI_SEARCH_API_KEYS 后运行自适应搜索:

python "{baseDir}/scripts/search.py" "新能源汽车 口碑" --mode normal

用户要求最近或最新信息时,限制网页结果时间范围:

python "{baseDir}/scripts/search.py" "新能源汽车 口碑" --mode normal --freshness year --no-cache

用户要求最新或当前信息时,强制绕过缓存:

python "{baseDir}/scripts/search.py" "新能源汽车 口碑" --mode normal --no-cache

只有用户要求广覆盖或压力测试时,才固定预算跑完整深度搜索:

python "{baseDir}/scripts/search.py" "新能源汽车 口碑" --mode deep --fixed --top-k 50

只有明确需要时,才跑完计划里的每个搜索词:

python "{baseDir}/scripts/run_search_plan.py" --plan runs/ev-reputation/query_plan.json --out-dir runs/ev-reputation --top-k 50

去重:

python "{baseDir}/scripts/dedupe_results.py" --input runs/ev-reputation/raw_results.jsonl --output runs/ev-reputation/deduped_sources.json

生成 research pack:

python "{baseDir}/scripts/build_research_pack.py" --run-dir runs/ev-reputation --output runs/ev-reputation/research_pack.md

参考资料

  • 修改请求或鉴权逻辑前,先读 references/baidu-api.md
  • 修改百科查询逻辑前,先读 references/baike-api.md
  • 修改搜索词扩展逻辑前,先读 references/query-planning.md
  • 修改去重逻辑前,先读 references/dedupe-policy.md
  • 修改输出文件结构前,先读 references/output-schema.md
  • 修改 Key 池、限速或运行目录逻辑前,先读 references/operations.md
  • 修改自适应停止条件前,先读 references/search-strategy.md

规则

  • 不要把 API Key 写入文件、Git、日志或回复。
  • 不要打印或 echo Key 环境变量。检查是否配置时,只做布尔检查,例如 python -c "import os; raise SystemExit(0 if os.getenv('BAIDU_AI_SEARCH_API_KEYS') else 1)",也可以直接运行 scripts/search.py 让它报告缺少配置。
  • 多个 Key 只用于可靠性和额度隔离,不用于把同一个关键词当分页刷完。
  • 使用查询缓存避免重复调用;用户要求最新或当前信息时,用 --no-cache 绕过缓存。
  • 去重时不要丢弃原始结果,必须保留重复映射。
  • 搜索词扩展优先使用固定模板和结果驱动扩展,不要完全依赖无限制的 AI 猜词。
  • 实质性事实结论必须引用来源:使用 research_pack.md 里的 source ID、URL 或域名。
  • 搜索计划要覆盖多角度:normal 模式下也应尽早包含官方来源和平台特定查询。
  • 搜索预算分阶段使用:先跑种子查询,再跑覆盖查询,最后做结果驱动扩展。
  • 当必要意图已经覆盖,且新增查询的唯一来源产出很低时停止,除非用户明确要求穷尽搜索。
  • 默认不要使用百度视频搜索、图片搜索、秒懂百科视频、阿拉丁或智能搜索生成。本 Skill 是来源检索工具,不是生成答案包装器。

Agent 接入

给其他 Agent 使用时,最稳的默认命令是:

python "{baseDir}/scripts/search.py" "<topic>" --mode normal

简单实体定义使用:

python "{baseDir}/scripts/search.py" "<topic>" --mode lookup

先读 run_summary.json。百科查询读 lookup_pack.md;网页搜索读 research_pack.md 里的覆盖判断,需要核查原始证据时再读 raw_results.jsonl