weibo-realtime-search · git:20260817.17b8940 · 2026-08-17 · sha256 98e3935afaca01e1

weibo-realtime-search git:20260817.17b8940A

Immutable. This exact content is served forever at /api/v1/blob/98e3935afaca01e1.

---
name: weibo-realtime-search
description: 微博作品搜索工具。根据用户输入的关键词调用 Redfox 接口搜索微博博文,支持按搜索类别(综合排序/热门排序/实时排序)和认证类型筛选。当用户需要搜索微博内容、查找微博热门博文时使用。触发词:微博搜索、搜微博、微博热门、微博博文、微博账号搜索。
---

# 微博作品搜索

## 📝 简介

微博作品搜索工具,根据关键词调用 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 将自动查询最新数据并通知你。"