用途
联合搜索技能用于跨多个平台统一搜索内容,适合需要同时从 GitHub、Reddit、社交媒体和各类搜索引擎获取信息的场景。它是一个包含多个独立搜索脚本的技能包,所有脚本位于 scripts/ 目录,并遵循标准化的输入/输出约定。
适用需求包括:跨多个平台搜索内容(GitHub、Reddit、社交媒体、搜索引擎);按时间范围、互动指标或内容类型过滤结果;批量搜索或下载并归档原始响应;以及在需要无 API 密钥的搜索方案时使用。
主要能力
开发者与社区搜索
- GitHub:仓库、代码、问题/PR 搜索(GITHUB_README.md)
- Reddit:帖子、子版块、用户搜索(REDDIT_README.md)
社交媒体与网络搜索
- 小红书:笔记搜索,支持过滤排序(XIAOHONGSHU_README.md)
- 抖音:视频搜索,支持过滤选项(DOUYIN_README.md)
- Bilibili:视频搜索,双 API 支持(BILIBILI_README.md)
- Twitter:帖子和时间线搜索(TWITTER_README.md)
- YouTube:视频、评论搜索(YOUTUBE_README.md)
- 知乎:中文问答平台(ZHIHU_README.md)
- 微信:微信公众号文章搜索,JS 版(WECHAT_JS_README.md)
- Google:Custom Search API(GOOGLE_SEARCH_README.md)
- Tavily:AI 驱动搜索引擎(TAVILY_SEARCH_README.md)
- 秘塔搜索:AI 驱动搜索,智能摘要(METASO_README.md)
- 火山引擎:字节跳动融合信息搜索(VOLCENGINE_README.md)
- Exa:神经搜索,代码/公司/人物/深度研究(EXA_SEARCH_README.md)
注意:火山引擎的图片搜索功能已集成到 union_image_search 模块。
通用搜索引擎(无需 API 密钥)
- DuckDuckGo:隐私搜索引擎(DUCKDUCKGO_README.md)
- Brave:隐私搜索引擎(BRAVE_README.md)
- Yahoo:雅虎搜索引擎(YAHOO_README.md)
- Bing:微软搜索引擎(BING_README.md)
- Wikipedia:百科全书搜索(WIKIPEDIA_README.md)
- Anna's Archive:电子书搜索(ANNASARCHIVE_README.md)
其他搜索工具
- 联合搜索:统一多平台搜索接口(UNION_SEARCH_README.md)
- 图片搜索:18 平台批量图片下载,含火山引擎(UNION_IMAGE_SEARCH_README.md)
- RSS:订阅源内容搜索(RSS_SEARCH_README.md)
使用方式
1. 配置凭据
在项目根目录创建 .env 文件(参考 ENV_TEMPLATE.txt):
# 复制模板
cp ENV_TEMPLATE.txt .env
# 编辑配置
# 填入必要的 API 凭据
详细配置指南参考 API 凭据获取指南。
2. 执行搜索
建议使用统一的 CLI 入口 union_search_cli.py:
# 联合搜索(推荐)- 同时搜索多个平台
python union_search_cli.py search "AI Agent" --group dev --preset large
# 指定平台搜索
python union_search_cli.py platform github "machine learning" --limit 5
# 提取网页内容到 Markdown
python union_search_cli.py defuddle https://example.com --json
# 运行环境检查
python union_search_cli.py doctor
常用参数:
- --preset:预设结果数量(small=3, medium=5, large=10, extra=20)
- --limit / -l:自定义每平台结果数量
- --platforms / -p:指定平台(空格分隔)
- --group / -g:指定平台组(search, social, dev, no_api_key)
- --deduplicate:跨平台去重
- --pretty:格式化 JSON 输出
- -o / --output:保存输出到文件
3. 查看结果
- 终端输出:格式化的 Markdown 表格
- 原始响应:保存在 responses/ 目录(使用 --save-raw 参数)
通用参数
大多数工具支持:--limit / -n(返回结果数量)、--json(JSON 格式输出)、--pretty(格式化 JSON 输出)、--markdown(Markdown 格式输出)、-o / --output(保存输出到文件)、--save-raw(保存原始 API 响应到 responses/ 目录)。
配置优先级
所有工具支持三种配置方式(优先级从高到低):命令行参数(--token YOUR_TOKEN 或 --api-key YOUR_KEY)、环境变量(项目根目录的 .env 文件)、配置文件(工具特定配置文件,如 GitHub 的 ~/.github-search.json)。
适用场景
- 跨多个平台同时检索同一主题,并比较不同来源的结果
- 按平台分组(search、social、dev、no_api_key)批量执行搜索
- 抓取网页内容并转换为 Markdown
- 批量搜索、下载图片并归档原始响应文件
- 在无 API 密钥的情况下使用通用搜索引擎进行检索
最佳实践
结果过滤:使用 --limit 控制输出量;应用时间过滤器获取最新内容;按互动指标排序以找到热门内容。
响应管理:不要将完整的原始 JSON 粘贴到对话中;需要完整数据访问时引用 responses/ 文件;使用 grep/jq 从保存的响应中提取特定字段。
多平台搜索:为不同平台依次运行脚本;使用保存的响应文件比较跨平台结果。
项目结构
union-search-skill/
├── scripts/ # 所有搜索脚本
│ ├── union_search/ # 联合搜索(新增)
│ ├── github/ # GitHub 搜索
│ ├── reddit/ # Reddit 搜索
│ ├── xiaohongshu/ # 小红书搜索
│ ├── douyin/ # 抖音搜索
│ ├── bilibili/ # Bilibili 搜索
│ ├── youtube/ # YouTube 搜索
│ ├── google_search/ # Google 搜索
│ ├── tavily_search/ # Tavily 搜索
│ ├── exa_search/ # Exa 神经搜索
│ ├── duckduckgo/ # DuckDuckGo 搜索
│ ├── brave/ # Brave 搜索
│ ├── yahoo/ # Yahoo 搜索
│ ├── bing/ # Bing 搜索
│ ├── wikipedia/ # Wikipedia 搜索
│ ├── annasarchive/ # Anna's Archive 搜索
│ ├── wechat/ # 微信公众号文章搜索
│ ├── union_image_search/ # 图片搜索
│ ├── rss_search/ # RSS 搜索
│ └── zhihu/ # 知乎搜索
├── references/ # 参考文档
│ ├── api_credentials.md # API 凭据获取指南
│ ├── rate_limits.md # 速率限制说明
│ ├── platform_notes.md # 平台特定说明
│ ├── troubleshooting.md # 问题排查指南
│ └── google_search_guide.md # Google 搜索技巧
├── responses/ # API 响应存档
├── ENV_TEMPLATE.txt # 环境变量模板
├── SKILL.md # 本文件
└── README.md # 项目说明
参考文档与帮助
references/ 目录包含:API 凭据获取指南、速率限制说明、平台特定说明、问题排查指南、Google 搜索技巧速查。
常见问题:缺少凭据(检查 .env 文件配置)、API 速率限制(降低请求频率或限制结果数量)、网络超时(增加超时值或使用代理)、无效参数(查看模块 README 或使用 --help)、403 Blocked(使用代理或降低请求频率)、平台特定问题(查看平台说明)。
各模块均有 README(scripts/*/README.md),也可使用 --help 参数查看脚本用法。
限制
具体各平台的速率限制与配额信息暂未在资料中详细提供,需参考 references/rate_limits.md。收费、价格等信息资料中未提供。