| name | union-search-skill |
| description | 当用户需要跨多个平台搜索内容时使用此技能,包括 GitHub(仓库、代码、问题)、Reddit(帖子、子版块、用户)、小红书、抖音、Bilibili、YouTube、Twitter、微信(公众号文章)、Google、Tavily、秘塔搜索、火山引擎,以及通用搜索引擎(DuckDuckGo、Brave、Yahoo、Bing、Wikipedia、Anna's Archive),或从 18 个图片平台(百度、Bing、Google、Pixabay、Unsplash、火山引擎等)下载图片。提供统一的搜索接口,支持结构化输出格式、结果过滤、排序、自动响应归档和批量图片下载(保留元数据)。 |
联合搜索技能
目的
提供跨多个平台的统一搜索能力,支持 20+ 个平台的内容搜索和数据获取。所有搜索脚本遵循标准化的输入/输出约定,提供可靠、可读的结果。
何时使用此技能
- 跨多个平台搜索内容(GitHub、Reddit、社交媒体、搜索引擎)
- 按时间范围、互动指标或内容类型过滤结果
- 批量搜索/下载并归档原始响应
- 需要无 API 密钥的搜索方案
可用的搜索工具
所有脚本位于 scripts/ 目录,每个模块都有详细的 README 文档。
开发者与社区搜索
社交媒体与网络搜索
注意: 火山引擎的图片搜索功能已集成到 union_image_search 模块
通用搜索引擎(无需 API 密钥)
其他搜索工具
快速开始
1. 配置凭据
在项目根目录创建 .env 文件(参考 ENV_TEMPLATE.txt):
cp ENV_TEMPLATE.txt .env
详细配置指南: 参考 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
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 参数)
使用工作流
标准搜索流程
- 运行前: 验证
.env 配置存在且包含有效凭据
- 运行: 从技能目录直接执行脚本
- 运行后: 检查终端输出和
responses/ 目录中的原始响应文件
通用参数
大多数工具支持以下参数:
--limit / -n: 返回的结果数量
--json: JSON 格式输出
--pretty: 格式化 JSON 输出
--markdown: Markdown 格式输出
-o / --output: 保存输出到文件
--save-raw: 保存原始 API 响应到 responses/ 目录
最佳实践
结果过滤:
- 使用
--limit 控制输出量
- 应用时间过滤器获取最新内容
- 按互动指标排序以找到热门内容
响应管理:
- 永远不要将完整的原始 JSON 粘贴到对话中
- 需要完整数据访问时引用
responses/ 文件
- 使用 grep/jq 从保存的响应中提取特定字段
多平台搜索:
- 为不同平台依次运行脚本
- 使用保存的响应文件比较跨平台结果
参考文档
详细的配置、限制和问题排查信息,请参考 references/ 目录:
常见问题速查
| 问题 | 解决方案 | 详细文档 |
|---|
| 缺少凭据 | 检查 .env 文件配置 | API 凭据 |
| API 速率限制 | 降低请求频率或限制结果数量 | 速率限制 |
| 网络超时 | 增加超时值或使用代理 | 问题排查 |
| 无效参数 | 查看模块 README 或使用 --help | 各模块 README |
| 403 Blocked | 使用代理或降低请求频率 | 问题排查 |
| 平台特定问题 | 查看平台说明 | 平台说明 |
项目结构
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 # 项目说明
配置优先级
所有工具支持三种配置方式(优先级从高到低):
- 命令行参数:
--token YOUR_TOKEN 或 --api-key YOUR_KEY
- 环境变量: 在项目根目录的
.env 文件中配置
- 配置文件: 工具特定的配置文件(如 GitHub 的
~/.github-search.json)
获取帮助
- 模块文档: 每个模块都有详细的 README(
scripts/*/README.md)
- 参考文档: 查看
references/ 目录中的详细指南
- 命令行帮助: 使用
--help 参数查看脚本用法
- 项目 README: 查看
README.md 了解项目概览