dongchedi-user-search · git:20261010.fb24549 · 2026-10-10 · sha256 045dfb7ff9b7cf83
dongchedi-user-search git:20261010.fb24549A
Immutable. This exact content never changes and is served at /api/v1/blob/045dfb7ff9b7cf83.
---
name: dongchedi-user-search
description: 懂车帝用户搜索和作品订阅工具。输入关键词就能搜到懂车帝上的用户(作者)账号,粉丝数、简介一眼看清;选中想看的用户即可拉取他的作品列表,标题、类型、阅读、点赞、评论、收藏、发布时间全部呈现,每条作品点一下就能跳转原页;还支持订阅用户,每天自动推送 TA 昨日更新的作品。当用户需要搜索懂车帝用户、查找懂车帝作者/达人、查看懂车帝用户作品列表、订阅懂车帝用户更新、研究懂车帝创作者内容时使用。触发词:懂车帝、懂车帝用户、懂车帝作者、懂车帝作品、懂车帝账号、懂车帝搜索、懂车帝达人、懂车帝用户搜索、懂车帝订阅。
---
# 懂车帝用户搜索和作品订阅
## 📝 简介
输入关键词就能搜到懂车帝上的用户(作者)账号,粉丝数、简介一目了然;选中想看的用户,立即拉取他的作品列表,标题、类型、阅读、点赞、评论、收藏、发布时间全部呈现,每条作品都能点链接跳转原页。
## ✨ 功能特性
| 功能模块 | 能力描述 | 核心价值 |
|---------|---------|---------|
| 用户关键词搜索 | 输入关键词搜索懂车帝用户(作者) | 精准发现目标用户 |
| 用户数据展示 | 昵称、粉丝数、简介、主页链接 | 快速评估账号影响力 |
| 作品列表查询 | 选中用户后获取其作品列表(标题/类型/阅读/点赞/评论/收藏/发布时间),默认展示最新 20 条,可查看全部 | 一览内容表现 |
| 作品直达 | 每条作品附可点击链接 | 一键跳转查看原作品 |
| 翻页浏览 | 用户列表支持多页翻看 | 不遗漏任何一个候选用户 |
| 订阅推送 | 订阅用户后每天 9:00 自动推送 TA 昨日更新的作品 | 持续追踪,不错过更新 |
## 🎯 适用对象
- 🔍 **内容创作者** — 找汽车领域对标账号,研究他们的选题方向和内容表现。
- 📊 **运营 / 数据分析** — 摸清某个品牌/车型在懂车帝上有哪些活跃创作者。
- 🏢 **品牌 / MCN** — 筛选汽车领域潜在合作达人,按粉丝量和作品数据评估价值。
- 🚗 **汽车行业从业者** — 追踪喜欢的车评人,快速浏览其近期全部作品。
## 🔑 鉴权
### 获取 API Key
请前往 [红狐hub](https://redfox.hk/settings/api-keys?source=github) 获取 API KEY
### 配置 API Key
方案1: 以 OpenClaw 为例,将 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 字的细分关键词,如品牌名("比亚迪")、车型("理想L8")、领域词("越野""车评")
- **过滤冗余修饰词**:用户说的"xx用户""xx作者""xx账号""xx达人""xx博主",搜索关键词仅取核心部分 **xx**,去除末尾的类别修饰词。例如"小米作者" → 搜索"小米","越野达人" → 搜索"越野"
- 若用户意图模糊(如"帮我搜懂车帝用户"),主动询问:「请问你想搜索哪个方向或领域的懂车帝用户?」
- 不得在用户未提供关键词时擅自猜测并调用脚本
**2. 识别页码参数**(用户未指定时使用默认值)
- **页码**(`--page`):默认 `1`
- 用户提到"下一页"、"第2页" → 对应页码
- 用户提到"上一页" → 当前页 - 1
- 未提及页码 → `1`(默认)
### Step 2:调用用户搜索脚本
```bash
python3 ~/.agents/skills/dongchedi-user-search/scripts/search_user.py "<关键词>" [--page 页码]
```
**参数说明:**
| 参数 | 可选值 | 含义 |
| -------- | ---------- | --------------------- |
| keyword | 任意字符串 | 搜索关键词 |
| `--page` | 正整数 | 页码,从1开始(默认1) |
脚本以 JSON 格式输出:
| 字段 | 说明 |
| ------------- | ----------------------------------- |
| `users` | 匹配的用户列表(保持接口原始顺序) |
| `page` | 当前页码 |
| `has_next` | 是否有下一页(true/false) |
| `next_offset` | 下一页偏移量(翻页信息,无需展示给用户) |
| `total` | 当前页返回条数 |
每个用户字段:
| 字段 | 说明 |
| ------------- | ---------- |
| `nickname` | 用户昵称 |
| `user_id` | 用户ID(Step 4 拉取作品列表时使用) |
| `followers` | 粉丝数 |
| `bio` | 用户简介 |
| `avatar` | 头像URL |
| `profile_url` | 主页链接 |
**⚠️ 完整数据读取规则:** 脚本输出 JSON 数据量较大时,终端可能截断中间内容并显示 `// This is the omitted part`。此时必须读取 Bash 输出中提示的完整文件路径(如 `Full output saved to: /path/to/file`),使用 Read 工具获取完整 JSON 后再生成表格,确保所有字段数据完整可见,不遗漏任何记录。
### Step 3:判断结果并展示用户列表
#### 情况 A:users 数量 > 0(有匹配结果)
**A1. 告知用户查询范围**
> 📊 关键词「**XXX**」查询到 **N 个**懂车帝用户(第 {page} 页),以下是详细数据:
**A2. 渲染 Markdown 表格(全部展示)**
```markdown
| # | 用户昵称 | 粉丝数 | 简介 | 用户ID | 主页链接 |
| --- | ---------------- | ------- | --------------------------- | ------------ | ----------------------- |
| 1 | 小米公司 | 359.8w | 小米公司官方信息发布账号。 | 3446334881 | [访问主页](profile_url) |
```
**格式化规则:**
- 粉丝数:`< 10000` 用原始数字(如 `320`);`≥ 10000` 且 `< 1亿` 用 `x.xw` 格式(如 `1.2w`、`359.8w`);`≥ 1亿` 用 `x.x亿` 格式(如 `1.2亿`)
- 昵称:完整展示,不截断
- 简介:最多展示 40 字,超出以 `...` 结尾;为空时显示 `—`
- 用户ID:完整展示
- 主页链接:固定显示文字 `[访问主页](profile_url)`,点击可跳转至懂车帝用户主页
**A3. 翻页提示(⚠️ 紧接在表格之后,不可省略,每次必须输出)**
- 若 `has_next` 为 true:
> 📄 当前第 **{page}** 页。回复「下一页」继续查看。
- 若 `has_next` 为 false(已是最后一页):
> 📄 当前第 **{page}** 页,已无更多数据。
**翻页时「下一页」调用规则:** 若用户回复「下一页」,调用脚本时递增页码:
```bash
python3 ~/.agents/skills/dongchedi-user-search/scripts/search_user.py "<关键词>" --page {page+1}
```
**A4. 引导选择用户(⚠️ 必须输出,不可省略)**
> 👉 想看谁的作品列表?直接回复序号或昵称即可(如「2」或「小米公司」)。
**⚠️ A1~A4 缺一不可,必须在同一轮输出中连续完成。若缺少 A3 或 A4,视为执行错误,必须重新补充输出。**
#### 情况 B:users 数量 = 0(无匹配结果)
**B1. 抱歉提示**
> 😔 抱歉,未找到与「**XXX**」相关的懂车帝用户,可以换个关键词试试(如品牌名、车型或领域词)。
**⚠️ B1 必须在同一轮输出中完成,不得中断。**
### Step 4:识别用户选择并调用作品列表脚本
**1. 匹配用户**
- 用户回复**序号**(如「2」)→ 匹配上一轮用户表格中该序号对应的用户
- 用户回复**昵称** → 在上一轮用户表格中按昵称匹配
- 若无法匹配或存在歧义(如多个相似昵称),询问用户确认具体想看哪个用户
**2. 调用作品列表脚本**
```bash
python3 ~/.agents/skills/dongchedi-user-search/scripts/work_list.py "<user_id>"
```
**参数说明:**
| 参数 | 可选值 | 含义 |
| ---------- | ---------- | --------------------------------- |
| user_id | 字符串 | 用户ID(来自用户搜索结果的 `user_id`) |
| `--date` | `YYYY-MM-DD` / `yesterday` / `today` | 按发布时间筛选指定日期的作品;订阅推送时传 `yesterday`,默认不筛选 |
**⚠️ 作品查询不支持分页:** `cursor` 固定传 `0`,单次返回该用户收录的全部作品(最多约 100 条封顶),不存在翻页参数,也不具备更早作品的翻页能力。
脚本以 JSON 格式输出:
| 字段 | 说明 |
| ---------- | ------------------------ |
| `user_id` | 用户ID |
| `date` | 日期筛选值(未筛选时为空字符串) |
| `total_count` | 该用户收录的作品总数(筛选前) |
| `count` | 当前返回的作品数(筛选后) |
| `works` | 作品列表(保持接口原始顺序,按发布时间从新到旧) |
每个作品字段:
| 字段 | 说明 |
| ------------------- | -------------------------------- |
| `work_id` | 作品ID |
| `title` | 作品标题/描述(已做 Markdown 清理) |
| `work_type` | 作品类型(1/2/7/9) |
| `work_type_label` | 类型中文名:文章 / 视频 / 图文动态 |
| `publish_time` | 发布时间(Unix 时间戳,秒) |
| `publish_time_str` | 发布时间格式化结果(YYYY-MM-DD HH:MM) |
| `read_count` | 阅读数 |
| `like_count` | 点赞数 |
| `comment_count` | 评论数 |
| `collect_count` | 收藏数 |
| `duration_seconds` | 视频时长(秒),视频类型时有值 |
| `cover_url` | 封面图URL |
| `image_urls` | 图片列表(图文类型时包含多张图片) |
| `video_id` | 视频ID,视频类型时有值 |
| `work_url` | 作品详情页链接 |
| `author_name` | 作者昵称 |
| `author_id` | 作者ID |
**⚠️ 完整数据读取规则:** 同 Step 2,若终端输出被截断,必须读取提示的完整文件路径获取完整 JSON 后再生成表格。
### Step 5:判断结果并展示作品列表
#### 情况 A:works 数量 > 0(有作品)
**A1. 告知用户查询范围**
- 常规查询(`date` 为空):
> 📊 用户「**XXX**」共收录 **N 条**作品,以下是详细数据:
- 日期筛选查询(`date` 非空,如订阅推送):
> 📊 用户「**XXX**」在 **{date}** 更新了 **N 条**作品,以下是详细数据:
**A2. 渲染 Markdown 表格(保持接口原始顺序,禁止二次排序)**
- 常规查询(`date` 为空):默认仅展示前 **20** 条;`count` ≤ 20 时全部展示
- 日期筛选查询(`date` 非空,如订阅推送):不设条数限制,全部展示
```markdown
| # | 发布时间 | 作品标题 | 类型 | 阅读 | 点赞 | 评论 | 收藏 |
| --- | ------------------ | ------------------------------------- | -------- | ------ | ---- | ---- | ---- |
| 1 | 2026-10-09 17:11 | [13万价位,后驱,激光雷达,磁流变悬架...](work_url) | 图文动态 | 6706 | 2 | 0 | 0 |
```
**格式化规则:**
- 作品标题:使用 `[标题](work_url)` 超链接格式;超过 30 字截断并以 `...` 结尾
- 类型:直接使用 `work_type_label` 字段(文章 / 视频 / 图文动态)
- 发布时间:直接使用 `publish_time_str` 字段
- 数字(阅读/点赞/评论/收藏):`< 10000` 用原始数字;`≥ 10000` 且 `< 1亿` 用 `x.xw` 格式(如 `1.2w`、`12.5w`);`≥ 1亿` 用 `x.x亿` 格式
**A3. 查看全部提示(⚠️ 常规查询且 `count` > 20 时必须输出)**
> 📄 已展示前 **20** 条(共 **N 条**作品),回复「查看全部」查看所有作品。
**A4. 订阅提示(⚠️ 必须输出)**
> 📬 想持续追踪 TA 吗?订阅「**XXX**」后每天 9:00 自动推送 TA **昨日更新的作品**,回复「订阅」即可创建。
**A5. 看完作品后的引导(⚠️ 必须输出)**
> 👉 需要查看其他用户的作品或搜索其他关键词吗?直接告诉我即可。
#### 情况 B:works 数量 = 0(无作品)
**B1. 提示(按场景区分)**
- 日期筛选且 `total_count` > 0(订阅推送 / 指定日期场景):
> 😔 用户「**XXX**」在 **{date}** 无更新作品。(订阅推送时可表述为「昨日无更新作品」)
- 常规查询或 `total_count` = 0:
> 😔 用户「**XXX**」暂无收录作品(红狐未收录该用户的公开作品,或作品较少),可以换个用户看看。
**⚠️ B1 必须在同一轮输出中完成,不得中断。**
#### 查看全部处理(用户回复「查看全部」时)
**触发条件:** 用户在作品列表展示后表达继续查看作品的意图(如「查看全部」「全部」「查看所有作品」「下一页」等)时执行。
**1. 展示方式**
- **作品查询不支持分页**:不得按「下一页」方式分批展示(如每次 20 条),也不输出任何「下一页」式翻页提示;继续查看一律**一次性**展示全部剩余作品
- 基于上一轮已获取的完整作品数据,**续接展示**第 21 条起的所有剩余作品(相同表格格式与格式化规则,编号从 21 连续递增,保持接口原始顺序,禁止二次排序),直至全部展示完毕
- 数据优先复用上一轮脚本输出;若上一轮输出被截断,按「完整数据读取规则」读取 Bash 输出中提示的完整文件路径获取
- **不发起新的接口请求**;仅当上一轮完整数据确实不可获取时,才重新执行一次相同脚本命令
- 若回复「查看全部」时作品已全部展示(如 `count` ≤ 20),直接说明已展示全部作品即可,无需重复输出
- 若用户在日期筛选展示(订阅推送)后要求「查看全部」,则对该用户执行一次常规查询(不带 `--date`)并完整展示其全部作品(不再套用前 20 条限制)
**2. 后续输出**
- 续接展示完成后,仅输出引导语(A5),订阅提示与查看全部提示不再重复输出
### Step 6:订阅处理
**触发条件:** 用户在作品列表展示后回复「订阅」(或明确表达订阅当前用户的意向)时,为其创建每日推送任务。
- 若用户未先展示作品、直接要求订阅(如「订阅懂车帝的小米公司」),先按 Step 1~4 定位到唯一用户(存在歧义时先请用户确认),再执行本步骤。
> **静默执行原则:** 任务查询、创建/更新等中间步骤不得向用户输出过程性提示(如「正在创建订阅」),仅展示最终订阅成功提示。
**1. 查询现有订阅任务**
使用 `automation_update mode=list` 获取「懂车帝订阅」相关任务,读取各任务中已订阅的用户与对应 userId。
**2. 判断追加 / 新建**
| 条件 | 操作 |
| ---- | ---- |
| 现有订阅用户数 + 新用户 ≤ 10 | 追加:`automation_update mode=update`,在现有任务 prompt 中追加该用户的拉取命令(去重) |
| 超过 10 | 新建:`automation_update mode=create`,新建独立每日任务「懂车帝订阅作品日报 #2」 |
| 用户要求取消订阅 | 从对应任务 prompt 中移除该用户的命令;若任务中已无用户,则删除该任务 |
**3. 任务配置**
- 执行时间:每天 9:00(`FREQ=DAILY;BYHOUR=9;BYMINUTE=0`)
- automation prompt 模板(每个订阅用户一条命令,多用户依次罗列):
```text
拉取懂车帝订阅用户昨日更新的作品并展示给用户(保持接口原始顺序,禁止二次排序;某用户昨日无更新时输出「{昵称}:昨日无更新作品」):
python3 ~/.agents/skills/dongchedi-user-search/scripts/work_list.py "{user_id}" --date yesterday
```
- `--date yesterday` 由脚本内部按发布时间筛选「昨日」数据,无需手工比对时间
**4. 订阅成功提示(唯一对外输出)**
> ✅ 订阅成功!每天 9:00 自动推送「**XXX**」昨日更新的作品。如昨日无更新,会提示「XXX:昨日无更新作品」。
### Step 7:结束输出
全部内容展示完毕后,不等待、立刻结束输出。
## 📌 注意事项
- 作品查询不支持分页,`cursor` 固定传 `0`;单次拉取红狐收录的该用户作品(最多约 100 条封顶),不具备更早作品的翻页能力
- 日期筛选(`--date`)由脚本内部按发布时间(本地时区)比对完成,仅在本次单次拉取返回的作品范围内筛选
- 作品数据保持接口返回顺序(按发布时间从新到旧),禁止二次排序
- 常规查询作品列表默认展示前 20 条;唯一续接逻辑为用户回复「查看全部」后,基于已获取数据一次性展示全部剩余作品(编号从 21 起),不发起新的接口请求,不输出「下一页」式翻页提示
- 所有数据来自红狐收录,部分用户可能存在作品未收录或收录滞后的情况