OpenClaw Skills 百度搜索(Baidu Search)技能使用参考手册
2026-03-05 17:21 更新
概述
Baidu Search 是用于通过百度 AI 搜索引擎(BDSE)为 AI 助手提供中文互联网搜索能力的 OpenClaw 技能,属于百度官方支持的 OpenClaw 技能之一,是百度智能云 OpenClaw 镜像方案的核心组件。该技能专门针对中文互联网内容进行优化,能够获取实时、准确的中文搜索结果,并对结果进行智能解析、摘要和结构化处理,支持文本、图片、视频等多种搜索类型,可集成到 OpenClaw 的智能体工作流中,为 AI 助手提供强大的中文信息检索能力。
技能信息
- 名称:baidu-search
- 描述:通过百度 AI 搜索引擎进行网页搜索,用于获取实时信息、文档或研究主题
- 版本:1.1.0
- 作者:ide-rea
- 依赖:
- 需要 Python3 环境
- 需要设置
BAIDU_API_KEY环境变量(百度千帆 API 密钥)
- 触发词:"百度搜索"、"中文搜索"、"搜索信息"、"查找资料"
👤 作者:ide-rea
🦞 官方地址:https://clawhub.ai/ide-rea/baidu-search
👉 Skills 下载地址:baidu-search-1.1.0.zip
使用方法
基本命令格式
python3 skills/baidu-search/scripts/search.py '<JSON>'
请求参数说明
| 参数 | 类型 | 是否必需 | 默认值 | 描述 |
|---|---|---|---|---|
| query | str | 是 | - | 搜索查询关键词 |
| edition | str | 否 | standard | 搜索版本:standard(完整搜索)或lite(轻量搜索) |
| resource_type_filter | list[obj] | 否 | web:20, others:0 | 资源类型过滤:web(最多 50 条)、video(最多 10 条)、image(最多 30 条)、aladdin(最多 5 条) |
| search_filter | obj | 否 | - | 高级过滤选项(详见下文) |
| block_websites | list[str] | 否 | - | 要屏蔽的网站,例如 ["tieba.baidu.com"] |
| search_recency_filter | str | 否 | - | 时间过滤:week(一周内)、month(一个月内)、semiyear(半年内)、year(一年内) |
| safe_search | bool | 否 | false | 启用严格内容过滤 |
SearchFilter 高级过滤
| 参数 | 类型 | 描述 |
|---|---|---|
| match.site | list[str] | 限制搜索到特定网站,例如 ["baike.baidu.com"] |
| range.pageTime | obj | 页面时间范围过滤(详见下文) |
日期范围格式
- 固定日期:
YYYY-MM-DD - 相对时间(从当前日期开始):
now-1w/d(一周内)、now-1M/d(一个月内)、now-1y/d(一年内)
| 操作符 | 含义 |
|---|---|
| gte | 大于或等于(开始时间) |
| lte | 小于或等于(结束时间) |
使用示例
基础搜索
python3 skills/baidu-search/scripts/search.py '{"query":"人工智能"}'
按时间和网站过滤搜索
python3 skills/baidu-search/scripts/search.py '{
"query":"最新新闻",
"search_recency_filter":"week",
"search_filter":{"match":{"site":["news.baidu.com"]}}
}'
资源类型过滤搜索
python3 skills/baidu-search/scripts/search.py '{
"query":"旅游景点",
"resource_type_filter":[{"type":"web","top_k":20},{"type":"video","top_k":5}]
}'
工具代码说明
search.py(百度搜索核心脚本)
import sys
import json
import requests
import os
def baidu_search(api_key, requestBody: dict):
"""
调用百度AI搜索API进行搜索
:param api_key: 百度千帆API密钥
:param requestBody: 搜索请求参数字典
:return: 搜索结果数据
"""
# 百度AI搜索API接口地址
url = "https://qianfan.baidubce.com/v2/ai_search/web_search"
# 设置请求头
headers = {
"Authorization": "Bearer %s" % api_key, # 身份认证头
"X-Appbuilder-From": "openclaw", # 来源标识
"Content-Type": "application/json" # 内容类型
}
# 使用POST方法发送JSON数据到API
response = requests.post(url, json=requestBody, headers=headers)
# 检查请求是否成功
response.raise_for_status()
# 解析JSON响应
results = response.json()
# 检查API返回是否包含错误信息
if "code" in results:
raise Exception(results["message"])
# 提取搜索结果数据
datas = results["references"]
# 移除不需要的字段(snippet字段)
keys_to_remove = {"snippet"}
for item in datas:
for key in keys_to_remove:
if key in item:
del item[key]
return datas
if __name__ == "__main__":
# 检查命令行参数是否正确
if len(sys.argv) < 2:
print("Usage: python baidu_search.py <query>")
sys.exit(1)
# 获取命令行传入的查询参数
query = sys.argv[1]
parse_data = {}
# 尝试解析JSON格式的查询参数
try:
parse_data = json.loads(query)
print(f"成功解析请求体: {parse_data}")
except json.JSONDecodeError as e:
print(f"JSON解析错误: {e}")
# 检查是否包含query字段
if "query" not in parse_data:
print("错误: 请求体中必须包含query字段。")
sys.exit(1)
# 从环境变量获取百度API密钥
api_key = os.getenv("BAIDU_API_KEY")
if not api_key:
print("错误: 必须在环境变量中设置BAIDU_API_KEY。")
sys.exit(1)
# 构建请求体数据
request_body = {
"messages": [
{
"content": parse_data["query"],
"role": "user"
}
],
"edition": parse_data["edition"] if "edition" in parse_data else "standard",
"search_source": "baidu_search_v2",
"resource_type_filter": parse_data["resource_type_filter"] if "resource_type_filter" in parse_data else [
{"type": "web", "top_k": 20}],
"search_filter": parse_data["search_filter"] if "search_filter" in parse_data else {},
"block_websites": parse_data["block_websites"] if "block_websites" in parse_data else None,
"search_recency_filter": parse_data[
"search_recency_filter"] if "search_recency_filter" in parse_data else "year",
"safe_search": parse_data["safe_search"] if "safe_search" in parse_data else False,
}
try:
# 调用百度搜索函数
results = baidu_search(api_key, request_body)
# 以格式化的JSON格式输出结果
print(json.dumps(results, indent=2, ensure_ascii=False))
except Exception as e:
print(f"错误: {str(e)}")
sys.exit(1)
元数据信息
该技能的元数据信息如下:
{
"ownerId": "kn7akgt520t01vgs2tzx7yk6m180kt26",
"slug": "baidu-search",
"version": "1.1.0",
"publishedAt": 1770955893565
}以上内容是否对您有帮助:

免费 AI IDE


更多建议: