# Weibo Realtime Search

> 微博作品搜索工具。根据用户输入的关键词调用 Redfox 接口搜索微博博文，支持按搜索类别（综合排序/热门排序/实时排序）和认证类型筛选。当用户需要搜索微博内容、查找微博热门博文时使用。触发词：微博搜索、搜微博、微博热门、微博博文、微博账号搜索。

- Skill: `redfox-data/weibo-realtime-search` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds add redfox-data/weibo-realtime-search`
- Raw SKILL.md: https://api.skillmd.com/api/skills/redfox-data/weibo-realtime-search/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: redfox-data (https://skillmd.com/u/redfox-data)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/redfox-data/weibo-realtime-search

---


# 微博作品搜索

## 📝 简介

微博作品搜索工具，根据关键词调用 Redfox 接口搜索微博博文，支持按搜索类别和认证类型筛选。

## ✨ 功能特性

| 功能模块 | 能力描述 | 核心价值 |
|---------|---------|---------|
| 关键词搜索 | 关键词搜索微博博文 | 精准发现目标赛道的内容 |
| 搜索类别 | 支持综合排序/热门排序/实时排序三种类别 | 按不同维度发现优质内容 |
| 认证筛选 | 支持普通用户/个人认证/机构认证过滤 | 精准筛选优质博主 |
| 智能拓展 | 无结果时自动生成 10 个扩展词 | 突破搜索瓶颈发现相关内容 |
| 分页浏览 | 支持多页结果浏览 | 逐页探索大量搜索结果 |
| 订阅推送 | 支持关键词每日推送 | 定时获取最新搜索结果 |

## 🔑 鉴权

### 获取 API Key

请前往 [红狐hub](https://redfox.hk/settings/api-keys?source=github) 获取 API KEY

### 配置 API Key

方案1: 以 Qoder 为例，将 REDFOX_API_KEY 添加到 `~/.openclaw/openclaw.json` 中：

```bash
{ "env": { "REDFOX_API_KEY": "ak_xxxx..." } }
```

方案2: 终端配置

```bash
export REDFOX_API_KEY="ak_xxxx..."
```

## 🔄 工作流程

### Step 1：理解用户意图，提取关键词和筛选参数

**⚠️ 核心规则：语义理解优先，优先提取细分方向词，而非泛化大类词**

**1. 提取关键词**

- 从用户描述中提取 2~6 字的细分关键词
- 若用户意图模糊（如"帮我搜微博"），主动询问：「请问你想搜索哪个方向或领域的内容？」
- 不得在用户未提供关键词时擅自猜测并调用脚本

**2. 识别筛选参数**（用户未指定时使用默认值）

- **搜索类别**（`--search-type`）：默认 `1`（综合）
    - 用户提到"热门"、"爆款"、"火"、"热搜" → `60`（热门排序）
  - 用户提到"最新"、"实时"、"现在" → `61`（实时排序）
  - 未提及搜索类别 → `1`（综合排序，默认）
- **页码**（`--page`）：默认 `1`
  - 用户提到"下一页"、"第2页" → 对应页码
  - 用户提到"上一页" → 当前页 - 1
  - 未提及页码 → `1`（默认）
- **认证类别**（`--ext-param`）：默认不传
  - 用户提到"机构认证"、"蓝V" → `3`
  - 用户提到"个人认证"、"黄V" → `2`
  - 用户提到"普通用户"、"个人" → `0`
  - 未提及认证类别 → 不传（不过滤）

### Step 2：调用搜索脚本

```bash
python3 ~/.agents/skills/weibo-search/scripts/search_weibo.py "<关键词>" [--search-type 搜索类别] [--page 页码] [--ext-param 认证类别]
```

**参数说明：**

| 参数             | 可选值                    | 含义                                    |
| ---------------- | ------------------------- | --------------------------------------- |
| keyword          | 任意字符串                | 搜索关键词                              |
| `--search-type`  | `1` / `60` / `61`           | 综合排序 / 热门排序 / 实时排序（默认1）|
| `--page`         | 正整数                    | 页码，从1开始（默认1）                   |
| `--ext-param`    | `0` / `2` / `3`           | 认证类别：0-普通用户 2-个人认证 3-机构认证（默认不传）|

脚本以 JSON 格式输出：

| 字段                 | 说明                           |
| -------------------- | ------------------------------ |
| `articles`           | 关键词匹配博文列表              |
| `search_type_label`  | 本次搜索类别文字说明            |
| `ext_param_label`    | 本次认证类别文字说明            |
| `page`               | 当前页码                       |
| `has_next`           | 是否有下一页（true/false）     |

每条博文字段：

| 字段             | 说明     |
| ---------------- | -------- |
| `title`          | 博文内容（取自API `text` 字段）|
| `author`         | 博主名称 |
| `like_count`     | 点赞数   |
| `comment_count`  | 评论数   |
| `share_count`    | 转发数（取自API `forwardNum` 字段）|
| `work_url`       | 博文链接 |
| `publish_time`   | 发布时间 |
| `follower_count` | 粉丝数   |

### Step 3：判断结果并展示

#### 情况 A：articles 数量 > 0（有匹配结果）

**A1. 告知用户查询范围**

> 📊 关键词「**XXX**」查询到 **N 条**博文（搜索类别：{search_type_label} | 认证：{ext_param_label} | 第 {page} 页），以下是详细数据：

**A2. 渲染 Markdown 表格（全部展示）**

```markdown
| #   | 博文内容           | 博主   | 点赞数 | 评论数 | 转发数 |
| --- | ------------------ | ------ | ------ | ------ | ------ |
| 1   | [博文内容](链接)   | 博主名 | 305.2w | 7.1w   | 51.0w  |
```

**数字格式化规则：**
- `< 10000`：原始数字（如 `320`）
- `≥ 10000`：`x.xw` 格式（如 `1.2w`）

**标题规则：** `[博文内容](work_url)`；超过 30 字截断并加 `...`；标题为空时显示 `-`

**A3. 搜索类别与认证筛选提示（紧接在表格之后，每次必须输出）**

> 🔧 **支持以下搜索类别，回复对应指令即可切换：**
> - **综合排序** — 综合搜索博文
> - **热门排序** — 搜索热门博文
> - **实时排序** — 搜索最新发布的博文
>
> 📌 当前：**{search_type_label}**
>
> 🔧 **支持以下认证筛选，回复对应指令即可过滤：**
> - **不过滤** — 不限制认证类型
> - **普通用户** — 仅搜索普通用户
> - **个人认证** — 仅搜索个人认证（黄V）
> - **机构认证** — 仅搜索机构认证（蓝V）
>
> 📌 当前：**{ext_param_label}**
>
> 示例：「按热门、个人认证重新搜索」

**A4. 翻页提示（⚠️ 紧接在 A3 之后，不可省略，每次必须输出）**

- 若 `has_next` 为 true：
> 📄 当前第 **{page}** 页。回复「下一页」继续查看。

- 若 `has_next` 为 false（当前页不足 9 条或为空，已是最后一页）：
> �� 当前第 **{page}** 页，已无更多数据。

**⚠️ A1~A4 缺一不可，必须在同一轮输出中连续完成。输出 A4 后紧跟 Step 4 订阅提示。若缺少 A4，视为执行错误，必须重新补充输出。**

#### 情况 B：articles 数量 = 0（无匹配结果）

**B1. 抱歉提示 + 拓词推荐**

> 😔 抱歉，未找到与「**XXX**」直接相关的内容，你可以尝试用更短或更宽泛的关键词重试（扩展词1,扩展词2,...扩展词10）

AI 必须生成**固定 10 个**扩展词，2~6 字，英文逗号分隔，不得少于 10 个。

**B2. 搜索类别与认证筛选提示（紧接在 B1 之后，每次必须输出，格式同 A3）**

**⚠️ B1~B2 必须在同一轮输出中连续完成，输出 B2 后紧跟 Step 4 订阅提示，不得中断。**

### Step 4：提示订阅

全部内容展示完毕后，**不等待、立刻结束输出**，仅在末尾附上订阅提示：

> 📩 是否订阅「**XXX**」的每日推送？订阅后每天 09:00 自动推送最新博文。回复「确认订阅」即可创建定时任务。

### Step 5：创建定时任务（用户回复「确认订阅」时执行）

优先使用平台内置定时任务能力，若无则提供通用方案：

**平台内置定时任务（优先）：**
- 任务名称：`微博搜索订阅 - <关键词>`
- 执行频率：每天 09:00（cron：`0 10 * * *`）
- 执行内容：运行脚本并将结果按 Step 3~4 格式展示推送到当前对话

**通用配置方案：**
```bash
# Linux/macOS crontab
0 10 * * * python3 ~/.agents/skills/weibo-search/scripts/search_weibo.py "<关键词>"
```

创建成功后告知用户："已成功订阅关键词「<关键词>」的微博博文推送，每天 09:00 将自动查询最新数据并通知你。"

