懂车帝用户搜索和作品订阅
📝 简介
输入关键词就能搜到懂车帝上的用户(作者)账号,粉丝数、简介一目了然;选中想看的用户,立即拉取他的作品列表,标题、类型、阅读、点赞、评论、收藏、发布时间全部呈现,每条作品都能点链接跳转原页。
✨ 功能特性
| 功能模块 | 能力描述 | 核心价值 |
|---|
| 用户关键词搜索 | 输入关键词搜索懂车帝用户(作者) | 精准发现目标用户 |
| 用户数据展示 | 昵称、粉丝数、简介、主页链接 | 快速评估账号影响力 |
| 作品列表查询 | 选中用户后获取其作品列表(标题/类型/阅读/点赞/评论/收藏/发布时间),默认展示最新 20 条,可查看全部 | 一览内容表现 |
| 作品直达 | 每条作品附可点击链接 | 一键跳转查看原作品 |
| 翻页浏览 | 用户列表支持多页翻看 | 不遗漏任何一个候选用户 |
| 订阅推送 | 订阅用户后每天 9:00 自动推送 TA 昨日更新的作品 | 持续追踪,不错过更新 |
🎯 适用对象
- 🔍 内容创作者 — 找汽车领域对标账号,研究他们的选题方向和内容表现。
- 📊 运营 / 数据分析 — 摸清某个品牌/车型在懂车帝上有哪些活跃创作者。
- 🏢 品牌 / MCN — 筛选汽车领域潜在合作达人,按粉丝量和作品数据评估价值。
- 🚗 汽车行业从业者 — 追踪喜欢的车评人,快速浏览其近期全部作品。
🔑 鉴权
获取 API Key
请前往 红狐hub 获取 API KEY
配置 API Key
方案1: 以 OpenClaw 为例,将 REDFOX_API_KEY 添加到 ~/.openclaw/openclaw.json 中:
{ "env": { "REDFOX_API_KEY": "ak_xxxx..." } }
方案2: 终端配置
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:调用用户搜索脚本
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 表格(全部展示)
| # | 用户昵称 | 粉丝数 | 简介 | 用户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. 翻页提示(⚠️ 紧接在表格之后,不可省略,每次必须输出)
📄 当前第 {page} 页。回复「下一页」继续查看。
- 若
has_next 为 false(已是最后一页):
📄 当前第 {page} 页,已无更多数据。
翻页时「下一页」调用规则: 若用户回复「下一页」,调用脚本时递增页码:
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. 调用作品列表脚本
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. 告知用户查询范围
📊 用户「XXX」共收录 N 条作品,以下是详细数据:
📊 用户「XXX」在 {date} 更新了 N 条作品,以下是详细数据:
A2. 渲染 Markdown 表格(保持接口原始顺序,禁止二次排序)
- 常规查询(
date 为空):默认仅展示前 20 条;count ≤ 20 时全部展示
- 日期筛选查询(
date 非空,如订阅推送):不设条数限制,全部展示
| # | 发布时间 | 作品标题 | 类型 | 阅读 | 点赞 | 评论 | 收藏 |
| --- | ------------------ | ------------------------------------- | -------- | ------ | ---- | ---- | ---- |
| 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} 无更新作品。(订阅推送时可表述为「昨日无更新作品」)
😔 用户「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 模板(每个订阅用户一条命令,多用户依次罗列):
拉取懂车帝订阅用户昨日更新的作品并展示给用户(保持接口原始顺序,禁止二次排序;某用户昨日无更新时输出「{昵称}:昨日无更新作品」):
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 起),不发起新的接口请求,不输出「下一页」式翻页提示
- 所有数据来自红狐收录,部分用户可能存在作品未收录或收录滞后的情况