---
name: wechat-title
description: 基于热门数据生成公众号爆款标题或对用户标题进行多维度评分的专业工具。当用户需要生成公众号标题、查询爆款内容、分析热门趋势、获取创作灵感、参考爆款规律时使用。触发词：公众号标题、爆款标题、标题生成、标题评分、公众号爆款。
dependency:
  python:
    - requests>=2.28.0
  system:
---

# 公众号标题生成与评分

## 📋 概述

两大核心功能：
1. **标题生成**：基于热门数据生成具有传播力的公众号标题，提供参考爆款文章和分析
2. **标题评分**：对用户输入的标题进行多维度评测打分，提供优化建议

**功能判断**：

| 用户输入 | 使用功能 |
|---------|---------|
| 主题/关键词/赛道/分类 | 标题生成 |
| 标题 + 评分/优化意图 | 标题评分 |

**数据说明**：
- 阅读数据截止入库时间，非实时数据，入库后可能持续增长
- 数据库仅包含昨天至30天前的数据
- 默认查询最近7天（startDate = 今天 - 6天）

**启动欢迎语**（技能打开时必须自动输出）：

> 👋 欢迎使用公众号标题生成与评分！
>
> **1️⃣ 标题生成** — 输入主题、关键词、赛道、分类，基于热门数据生成公众号爆款标题
>
> **2️⃣ 标题评分** — 输入一个标题，测评打分并提供优化建议

## 🔐 鉴权

### 获取 API Key

请前往 [红狐hub](https://redfox.hk/settings/api-keys?source=github) 获取API KEY

### 配置 API Key

方案1: 写入 `~/.openclaw/openclaw.json`：

```json
{ "env": { "REDFOX_API_KEY": "ak_xxxx..." } }
```

方案2: 终端配置：

```bash
export REDFOX_API_KEY="ak_xxxx..."
```

## ⚠️ 核心规则

### 数据来源
- **唯一数据来源**：通过 `scripts/fetch_official_account_trends.py` 脚本调用 API 接口
- **禁止**：联网搜索、使用其他数据源
- API 接口：`https://redfox.hk/story/api/cozeSkill/getWxCozeSkillData`

### 用词规范
- ❌ 禁止"爬取"、"抓取" → ✅ 统一用"获取"

### 执行顺序
- 标题生成：必须**先分析爆款标题**，**再生成新标题**，不可颠倒
- 泛化词：输出细分词推荐后，**必须等待**用户回复「拓展」或「不拓展」再调用脚本

### 关键词分类处理

| 关键词类型 | 示例 | 处理方式 |
|-----------|------|---------|
| 细分词/垂直赛道 | 职场穿搭、减脂餐、小个子穿搭 | 直接查询 |
| 具体内容词 | 防晒霜、情感故事、职场干货 | 直接查询 |
| 泛化词/大分类 | 穿搭、美食、情感 | 执行泛化词拓展策略 |

### 数据不足处理

不足5条时，按顺序自动扩展时间：近1天 → 近3天 → 近7天 → 近30天

每次扩展提示："该关键词近X天数据不足5条，已自动扩展时间范围至近Y天"

- ❌ 禁止因数据不足更换关键词、推荐其他词或触发泛化词拓展
- 最终兜底：扩展到30天仍不足5条，如实展示并提示数据不足
- 数据为0时：扩展到30天后仍为0，执行泛化词拓展策略

## 📊 交互流程

用户输入的任何内容都理解为要生成公众号爆款标题或进行标题评分。

### 第一步：理解用户输入并提取关键词

**精准原则**：用户输入什么就查询什么，不随意扩展到相关但不同的内容。

1. 从用户输入中提取核心主题和关键词
2. 按关键词类型处理（见核心规则→关键词分类处理）

示例：
- 用户输入："我想写关于护肤的内容" → 关键词：护肤 → 标题生成
- 用户输入："帮我评分这个标题：XXX" → 关键词：从标题提取 → 标题评分

### 第二步：泛化词拓展策略（仅泛化词执行，细分词跳过直接查询）

1. **生成细分词**：查询近7天相关公众号热点，生成10个细分词（趋势词、人群词、场景词、意图词各2-3个）
2. **等待用户回复**：禁止用户未回复时调用脚本
3. **根据回复执行**：
   - 回复「拓展」→ 搜索10个细分词
   - 回复「不拓展」→ 搜索原关键词

输出示例：

```text
我识别到「情感」是较大的分类，已查询近期热门趋势，推荐以下细分方向：
恋爱技巧、婚姻经营、婆媳关系、原生家庭、职场人际、社交恐惧、高情商沟通、情绪管理、心理疗愈、分手挽回
回复「拓展」将同时搜索这10个词，回复「不拓展」将继续搜索「情感」
```

### 第三步：时间范围与数据查询

**时间范围**：
- 数据范围：昨天至30天前
- 默认：最近7天（startDate = 今天 - 6天）
- 近N天：startDate = 今天 - (N-1)天

**执行命令**：

```bash
# 有关键词
python3 scripts/fetch_official_account_trends.py --keyword "<关键词>" --days <天数>

# 无关键词（全站热门）
python3 scripts/fetch_official_account_trends.py --keyword "" --days <天数>
```

`--days` 默认7，最大30，脚本自动计算开始日期。

**超范围处理**：

| 用户请求 | 回复 |
|---------|------|
| 今天/今日的数据 | "今天的数据暂未更新，已展示最近可用数据" |
| 超过30天 | "仅支持最近30天的数据，已展示最接近数据" |

### 第四步：读取爆款数据（内部执行，不输出）

执行命令后，读取生成的 Markdown 文件（`关键词_爆款数据.md`）。

### 第五步：分析爆款标题并生成新标题

**必须先分析再生成，顺序不可颠倒。**

1. **分析爆款标题**（内部执行，不输出）：提取爆款标题的结构、关键词、情绪、目标人群特征
2. **生成10个新爆款标题**：基于分析结果创新创作（非直接采用参考标题），每个标题包含：
   - 标题内容（≤30字）
   - 匹配指数（8.0-10.0，保留一位小数，同一值最多出现2次）
   - 参考的爆款（含文章链接和阅读数，多个用顿号分隔）
   - 推荐理由（自然口语化表达，禁止"采用XX结构"、"目标人群为"等AI化句式）

输出格式示例：

```markdown
基于本次分析，为您生成以下10个爆款标题：

**标题1：这款护肤品真的太好用了**
📈匹配指数：9.8
🔥参考的爆款：[爆款标题A](https://mp.weixin.qq.com/s/xxx)（阅读：XXX）、[爆款标题B](https://mp.weixin.qq.com/s/xxx)（阅读：YYY）
👍推荐理由：用"真的太好用了"这种真实的感受开篇，特别适合分享类文章，读者会忍不住点进去看看具体哪里好。

---

**标题2：新手必看的护肤技巧**
📈匹配指数：9.5
🔥参考的爆款：[爆款标题C](https://mp.weixin.qq.com/s/xxx)（阅读：XXX）
👍推荐理由："新手必看"四个字就能筛选出精准读者，想学护肤技巧的人会毫不犹豫点进来。

---

（共10个标题，格式同上）
```

**使用建议**：
1. 先测试匹配指数较高的2-3个标题，观察实际数据表现
2. 根据测试结果调整关键词和表达方式
3. 结合内容特点个性化修改

### 第六步：格式验证

输出前逐项检查：

| 检查项 | 要求 |
|-------|------|
| 标题格式 | `**标题X：[内容]**`，≤30字 |
| 匹配指数 | `📈匹配指数：[数值]`，8.0-10.0，一位小数，同值≤2次 |
| 参考爆款 | `🔥参考的爆款：[标题](链接)（阅读：XXX）`，多个用顿号分隔 |
| 推荐理由 | `👍推荐理由：[理由]`，自然口语化，禁止AI化表达 |
| 分隔线 | 每个标题块之间 `---` |
| 完整性 | 10个标题，每个4行内容 |

## 📝 标题评分

### 触发条件
用户直接输入标题并表达评分/优化意图（如"帮我看看这个标题怎么样"）

### 执行流程

1. **理解标题**：提取关键词、主题、目标人群
2. **查询数据**：

```bash
python3 scripts/fetch_official_account_trends.py --keyword "<关键词>" --days 30
```

3. **多维度评分**（总分100分，所有评分必须基于接口返回的真实数据）：

| 维度 | 满分 | 评分要点 |
|------|------|---------|
| 赛道匹配度 | 15 | 命中≥3核心词→15分；1-2个→8分；0个→0分。赛道不匹配标注「定位偏离，建议调整」 |
| 点击诱因强度 | 35 | 明确利益/痛点(18分)：清晰收益→18，模糊→9，无→0；情绪/好奇心钩子(12分)：有→12，通顺无钩→6，平铺直叙→0；稀缺/专属感(5分)：有→5，无→0 |
| 结构合规性 | 15 | 字数适配(8分)：15-25字→8，过短/过长→4，严重偏离→0；结构偏好(7分)：符合10w+→7，普通→4，无逻辑→0；违规扣3-8分 |
| 爆文潜质匹配度 | 35 | 近期热点匹配(20分)：命中7天热点→20，泛热点→10，无→0；10w+语义相似度(15分)：≥60%→15，30%-60%→8，<30%→0 |

4. **输出评分结果**：

```markdown
## 标题评分结果

**原标题**：[用户输入的标题]

**综合评分**：85分/100分

**各维度评分明细**：

**a. 赛道匹配度（15分）**
- 所属赛道：[自动识别的赛道]
- 命中核心词：[词1]、[词2]、[词3]
- 得分：15分

**b. 点击诱因强度（35分）**
- 明确利益/痛点：18分（有清晰的用户收益）
- 情绪/好奇心钩子：12分（有悬念感）
- 稀缺/专属感：5分（有稀缺暗示）
- 得分：35分

**c. 结构合规性（15分）**
- 字数适配：8分（18字，处于最优区间）
- 结构符合10w+偏好：7分（使用数字+利益结构）
- 无违规/负向感知：不扣分
- 得分：15分

**d. 爆文潜质匹配度（35分）**
- 近期热点匹配：20分（命中热点词XXX）
- 10w+语义相似度：15分（相似度75%）
- 得分：35分

**优势分析**：[自然语言描述标题优点]

**优化建议**：[自然语言描述改进建议]

**参考爆款标题**：
1. [爆款标题1](链接) - 阅读数：XXX
2. [爆款标题2](链接) - 阅读数：XXX
```

- 评分必须客观，基于实际数据和平台特性
- 优化建议必须具体可执行
- 参考爆款标题必须来自查询到的真实数据

## 📁 资源索引
- 数据查询脚本：[scripts/fetch_official_account_trends.py](scripts/fetch_official_account_trends.py)
