Install
openclaw skills install media-search当用户需要写新闻、找素材、查背景、核实信息、了解事件来龙去脉,或者提到"查一下"、"搜一下"、"找找相关报道"、"有什么最新消息"时,或开展互联网线索数据挖掘、新闻选题策划、内容采编、监测竞品或特定信源动态等业务时,需要进行全网媒体稿件检索、查找事件背景、行业数据、政策动态、人物信息、历史脉络等,都应使用此技能
openclaw skills install media-search媒体库搜索工具技能,用于通过 search.py 脚本搜索媒体内容。
python3 search.py --json-input '{"keywords": "搜索关键词", "limit": 10}' [--output-file results.json] [--output-console]
--json-input: JSON格式的搜索参数| 参数名 | 类型 | 默认值 | 可选值/格式 | 必填 | 说明 |
|---|---|---|---|---|---|
keywords | string | 无 | 多个关键词用空格分隔 | 是 | 用户输入的搜索主题(如“乡村振兴 最新政策”),系统会自动拆分关键词提升召回率 |
keyword_position | string | 标题或正文 | 仅标题、仅正文、标题或正文 | 否 | 指定关键词匹配位置 |
publish_time_start | string (datetime) | 见规则 | yyyy-MM-dd HH:mm:ss | 否 | 发布时间开始时间,支持模糊时间词(见下) |
publish_time_end | string (datetime) | 当前时间 | yyyy-MM-dd HH:mm:ss | 否 | 发布时间结束时间 |
data_type | string | 全部 | news,app,weibo,wechat,wemedia,epaper(逗号分隔) | 否 | 数据来源类型 |
source_name | string | 全部信源 | 任意信源名称 | 否 | 指定媒体来源(支持模糊匹配) 如“人民日报”、“新华社”、“澎湃新闻” |
limit | integer | 10 | 1 ~ 50 | 否 | 返回结果数量 |
用于对用户输入的 keywords 进行智能拆分与规范化处理,以提升检索召回率与相关性。
按空格拆分
乡村振兴 最新政策["乡村振兴", "最新政策"]去除多余空格
大小写统一(英文)
AI Policy → ai policy)中文分词(语义切分)
人工智能发展["人工智能", "发展"]中英文混合拆分
AI发展趋势["ai", "发展", "趋势"]数字与单位拆分
5G产业["5g", "产业"]系统可过滤无意义词:的、了、和、是、在、与、及、以及、相关、方面、情况
用于从用户输入(关键词 / 对话文本)中识别时间表达,并转换为标准时间范围(publish_time_start / publish_time_end)。
| 关键词 | 转换规则 |
|---|---|
最新 / 实时 | 当前时间 - 24 小时 |
近期 / 最近 | 当前时间 - 3 天 |
| 表达 | 转换规则 |
|---|---|
| 最近1天 / 过去1天 | 当前时间 - 1 天 |
| 最近3天 | 当前时间 - 3 天 |
| 最近7天 / 最近一周 | 当前时间 - 7 天 |
| 最近1个月 | 当前时间 - 30 天 |
| 最近3个月 | 当前时间 - 90 天 |
| 表达 | 转换规则 |
|---|---|
| 今天 | 当天 00:00:00 ~ 当前时间 |
| 昨天 | 昨天 00:00:00 ~ 23:59:59 |
| 前天 | 前天 00:00:00 ~ 23:59:59 |
| 本周 | 本周一 00:00:00 ~ 当前时间 |
| 上周 | 上周一 00:00:00 ~ 上周日 23:59:59 |
| 本月 | 本月1号 00:00:00 ~ 当前时间 |
| 上月 | 上月1号 00:00:00 ~ 上月最后一天 23:59:59 |
| 今年 | 当年 01-01 00:00:00 ~ 当前时间 |
| 去年 | 去年 01-01 00:00:00 ~ 12-31 23:59:59 |
当用户未提供任何时间信息时: publish_time_start = 当前时间 - 90 天 publish_time_end = 当前时间
now)--output-file (string, optional): 将结果保存到指定JSON文件--output-console (flag, optional): 强制输出到控制台当指定 --output-file 时保存为JSON格式:
{
"total": 100,
"fallback_to_web": false,
"items": [
{
"title": "文章标题",
"summary": "文章摘要",
"source_name": "信源名称",
"data_type": "news",
"url": "https://example.com"
}
]
}
格式化文本输出到控制台,包含:
默认情况下,所有生成的文件保存在当前SKILL目录下:
sources/result.json生成的JSON文件应根据情况删除:
示例清理流程:
# 生成结果到指定目录
python3 search.py --json-input '{"keywords": "test"}' --output-file sources/result.json
# 使用结果后,如不再需要则清理
rm sources/result.json # 删除临时JSON文件
python3 search.py --json-input '{"keywords": "人工智能 政策", "limit": 20}'
python3 search.py --json-input '{"keywords": "乡村振兴", "limit": 10}'
python3 search.py --json-input '{
"keywords": "人民日报 一带一路",
"source_name": "人民日报",
"publish_time_start": "2026-03-25 00:00:00",
"publish_time_end": "2026-04-01 17:02:28"
}'
python3 search.py --json-input '{"keywords": "经济 发展"}' --output-file results.json
python3 search.py --json-input '{"keywords": "科技创新"}' --output-console
需要配置API密钥环境变量:
NEWS_BIGDATA_API_KEY: API密钥NEWS_BIGDATA_API_SECRET: API密钥密钥当运行 search.py 脚本发生异常时:
常见异常情况:
scripts/media_search.py: 核心搜索引擎scripts/SearchParameters: 搜索参数模型scripts/MediaSearchEngine: 媒体搜索引擎类# 1. Search and view results in console
python3 search.py --json-input '{"keywords": "关键词"}' --output-console
# 2. Search and save to file
python3 search.py --json-input '{"keywords": "关键词"}' --output-file results.json
# 3. Search with filters
python3 search.py --json-input '{
"keywords": "关键词",
"limit": 20
}'
# Search with multiple criteria
python3 search.py --json-input '{
"keywords": "人工智能 机器学习",
"keyword_position": "标题或正文",
"source_name": "科技日报",
"limit": 30
}' --output-file ai_research.json
NEWS_BIGDATA_API_KEY 和 NEWS_BIGDATA_API_SECRET