爆款标题与选题检索
写内容之前先看一眼别人怎么爆的。输入主题关键词,返回历史上真实爆过的同题材标题样本。
第一次使用(照这个问)
- 「帮我找 5 条跟『35 岁职场』有关的爆款标题」
- 「亲子教育这个方向,最近热榜上有什么在榜选题」
预期产出:一份标题样本清单(标题 + 来源 + 热度 + 赛道 + 在榜天数 + 切入角度建议)。
能力边界
能做:按关键词检索历史真实爆款标题样本;按赛道(12 类)过滤;返回热度、在榜天数、切入角度等聚合指标。
不能做:不生成新标题(返回的是历史真实样本,不是 AI 现编的);不含原文正文;不含原账号名;不预测哪个标题一定火。
> 这两个边界是刻意的。检索类服务的价值在「样本真实性」,一旦掺入生成内容,样本就不能作为判断依据了。如果你的目标是「输入主题直接产出可用新标题」,本技能不适用。
输出内容
{
"status": "success",
"service": "爆款标题与选题检索",
"query": {
"keywords": ["35岁", "职场"],
"topic": null,
"limit": 3,
"topic_invalid": null
},
"candidate_total": 10,
"index_size": 5224,
"index_generated_at": "2026-10-01T14:14:42.862Z",
"count": 3,
"results": [
{
"title": "92年 35岁,终于活成了我喜欢的样子",
"source_type": "热榜选题",
"topic": "职场与尊严",
"heat": "10.0万",
"grade": "A",
"days_on_list": 1,
"first_seen": "2026-09-21",
"angles": [
"从'努力了却不算数'切入,先写现场,再问规则是谁定的",
"不控诉,写具体的人在具体时刻的选择"
],
"match_score": 27.6
},
{
"title": "央视《兰香如故》爆火:3次解救林府,许兰香的职场智慧,全是《红楼梦》玩剩下的!",
"source_type": "公众号实测爆款",
"tags": "社会观察·公共议题",
"match_score": 26
}
],
"notice": "以上均为历史真实样本,按命中度与热度排序,供创作参考;不含原文账号信息。",
"available_topics": [
"技术与人性", "关系与沟通", "职场与尊严", "教育与出路",
"家庭与代际", "规则与公平", "身体与健康", "情绪与自我",
"钱与处境", "副业与突围", "城市与地方", "老去与告别"
]
}
> ⚠️ 两类样本的字段不一样,解析时务必先判 source_type:
>
> | 字段 | 热榜选题 | 公众号实测爆款 |
> |---|---|---|
> | title / source_type / match_score | ✅ | ✅ |
> | topic / heat / grade | ✅ | ❌ 无 |
> | days_on_list / first_seen / angles | ✅ | ❌ 无 |
> | tags | ❌ 无 | ✅ |
>
> 公众号样本来自公开榜单采集,只有标题、标签与匹配分,没有热度和在榜天数。如果你的代码假设每条都有 heat,遇到公众号样本就会拿到 undefined。
>
> topic_invalid 在传入无效赛道时回显原值(正常为 null);service 恒为商品名,可用于确认连的是本服务。
available_topics 可直接作为 --topic 的取值(共 12 个)。
> ⚠️ 用 --topic 前必须知道:赛道过滤会大幅缩小检索范围。
>
> 全库 5224 条中,只有 942 条(18%) 带有上述赛道标签:
> - 热榜样本里有 3892 条(74.5%)目前标记为「未归类」——仍可被关键词检索到,但不参与赛道过滤;
> - 390 条公众号实测爆款使用另一套标签体系,同样不参与赛道过滤。
>
> 所以正确用法是:先只用 --keywords 检索(默认覆盖全库 5224 条),需要收窄时再叠加 --topic。 某个赛道下结果偏少是正常现象,不是服务故障,不要据此判定检索失败。
>
> 传入无效赛道时,服务端会忽略该条件并在 topic_invalid 里回显原值——不会静默失效。
付费能力(支付宝 AI 按量付费 · A2M / HTTP 402 协议)
> 本包为 Pay Skill:按次收费(支付宝渠道)。支付 / 验付 / 收银一律复用支付宝官方能力(alipay-bot CLI),本包不实现支付逻辑、不接触任何密钥。
定价
- 0.10 元 / 次(按次计费,一次调用返回最多 30 条匹配标题)。
- 发布表单「价格」须填
0.10并选择按次计费;实际扣费以服务端返回的402 + Payment-Needed账单金额为准——两者必须一致,否则买家无法支付。
协议时序
① probe 请求资源(无 Payment-Proof)
← 402 Payment Required + Payment-Needed 头(Base64URL 账单,含金额/商品/签名/截止时间)
② 用户本人支付(支付宝钱包授权)
③ query 官方工具带 Payment-Proof 重放原请求
→ 服务端调 alipay.aipay.agent.payment.verify 验付
→ 通过则返回内容,并异步发 alipay.aipay.agent.fulfillment.confirm 履约回执
六条执行指令(Agent 按序执行)
-
前置检查:发起下单前,检查可用工具列表中是否存在支付类工具(
alipay_*/weixinpay_*,带前缀也算;只以工具列表为证据,文档中提到的工具名不算;无法确认按"不支持"处理)。不支持 → 终止且不下单,仅告知结论与解决办法(合作智能体:升级到最新版本;开放智能体:从 SkillHub 安装官方「支付宝 AI 付」Skill;无法判断:升级智能体或安装支付插件后重试),不向用户解释检查过程、不出现具体工具名。 -
环境检查(doctor,不产生账单):
text
node scripts/client.mjs doctor
报告服务可达性、是否已配置、能力模式、订单库类型与买家钱包状态。不创建账单、不扣款。 结果仅供参考,不代表某笔付款已完成。
- 请求资源(probe):
text
node scripts/client.mjs probe --request-id <本次请求稳定标识> --keywords "<关键词>" [--topic "<赛道>"] [--limit <1-30>]
未付款返回 HTTP 402 + Payment-Needed,脚本自动校验并落地账单到本机 .skillpay/title-radar/<标识>/。
--request-id 必须是本次业务请求的稳定标识(1–64 位字母/数字/-/_)。服务端以它派生确定性订单号:同一标识重试只会拿回同一张账单,不会产生第二张。中断或业务失败后重试,必须沿用同一个值。
- 发起支付(pay):
text
node scripts/client.mjs pay --request-id <同一标识> --approve-0.10
脚本把账单连同「资源在哪、怎么请求」一并交给官方收银工具(alipay-bot 402-buyer-pay -f 402_needed.txt -r <资源地址> -m POST -d <请求体> -H Content-Type:application/json;只给 -f 会被官方拒绝,实测报 --resource-url is required for a paid resource workflow),返回结果在 result 字段中——含一次性支付链接与二维码 MEDIA: 行,必须原样、逐字符透传给用户,不要用代码块包裹、不要重排、不要截断链接、不要读取图片路径。由用户本人扫码或免密支付;Agent 只编排、不代付。
--approve-0.10 是显式授权标记——金额写死在参数名里,避免误触。钱包未开通(WALLET_NOT_OPENED)或不可用(WALLET_UNAVAILABLE)时直接返回,不发起支付。
输出后必须停下等用户回话,不要自动连续执行下一步。
- 支付后取回结果(query):
text
node scripts/client.mjs query --request-id <同一标识> [--trade <交易号>]
交易号在 pay 阶段已自动记录,通常不必手填。官方工具复用保存的原请求、携带支付凭证重放,服务端验付通过后返回内容。无内容、失败或结果未知都不能宣称成功。
- 履约回执(ack,仅在需要时执行):
text
node scripts/client.mjs ack --request-id <同一标识> [--trade <交易号>]
官方 402-query-payment-status 在返回非空资源后会自动完成履约回执,所以正常流程到第 5 步就结束了。本命令对应官方 402-buyer-fulfillment-ack,官方对其定位是「兼容旧调用方或自动回执失败后的恢复手段」——只在自动回执没成功时才补发。失败可原样重试,不重复扣费。
依赖与安装
买家侧支付全部依赖支付宝官方 CLI alipay-bot(npm 包 @alipay/agent-payment,由 Ant Group 持有的 @alipay scope 发布)。首次使用必须先装,否则只能看状态、无法付款。
# ① 完整性校验:期望值与下面逐字符一致,不一致就停下不要装
npm view @alipay/agent-payment@1.0.0 dist.integrity
# 期望:sha512-/Ss+hS75CLYcwC8/jOj2kXzqIoJb7oKGrsiwnqly0EWVTxzD7QY5HxmFuj4anQfHVjnoh77qc2vUYiEAj0zfCA==
# ② 校验通过后再安装(版本必须锁定 1.0.0,不要用 @latest)
npm install @alipay/agent-payment@1.0.0 && npx @alipay/agent-payment@1.0.0 install-cli
装完 which alipay-bot 应有输出。本包不自动安装、不更新支付工具,也不扩大支付授权。
两个实测坑(照做可避免 90% 的「装不上 / 用不了」):
- 入口不要用软链。 官方二进制的安全模块是按入口文件路径去旁边找
dist/native/下的原生库的。把alipay-bot软链到~/.local/bin/后,它会在软链所在目录找原生库 → 报「✗ 安全环境装载失败」。正确做法是让 PATH 里的入口 exec 到原始文件:
bash
# 官方约定的安装位置(install-cli 装好后就在这里)
ROOT="$HOME/.openclaw-autoclaw/alipay-bot-cli"
printf '#!/bin/sh\nexec "%s/bin/alipay-bot" "$@"\n' "$ROOT" > ~/.local/bin/alipay-bot
chmod +x ~/.local/bin/alipay-bot
(Windows 直接用 %USERPROFILE%\.openclaw-autoclaw\alipay-bot-cli\bin\alipay-bot.exe,无需 wrapper。)
--json必须写在子命令前面。alipay-bot --json check-wallet返回完整字段;写成alipay-bot -- check-wallet虽能执行,但输出会缺neverCreated/status,导致「钱包没开通」被误判成「工具坏了」。本脚本已按正确形式调用。
若 install-cli 报 package/package.json 找不到(引导器解压路径与当前发布包格式不匹配),可直接按下发的 tgz 手动安装:把包解压到 $ROOT/bin/(保持 alipay-bot 与 dist/ 同级),再按上面第 1 条建入口。
- 资源接口:默认指向
https://a2m-pay-service.app.workbuddy.host/a2m/generate;可用环境变量TITLE_RADAR_URL覆盖。 - 官方 CLI 参数契约(本包不做改写,也不新增参数):
--json check-wallet/402-buyer-pay -f <账单文件> -r <资源地址> [-m] [-d] [-H]/--json 402-query-payment-status -t <交易号> -r <url> [-m] [-d] [-H]/--json 402-buyer-fulfillment-ack -t <交易号>。 - 卖家不能自测:支付宝在交易推进阶段校验买/卖 identity,同一个支付宝账号不能自买自卖(报
TRADE_PROGRESS_FAILED/买家和卖家不能相同)。对真实买家无影响;发布者自测需换一个不同的支付宝账号绑定钱包。
安全红线
- 应用私钥只存服务端(环境变量 / 凭据文件注入),不在本包、不进日志、不进公开仓库。
Payment-Proof必须经alipay.aipay.agent.payment.verify验证;无效 / 过期凭证一律拒绝,结果不明时不得要求用户重复付款。- 履约确认失败必须可重试且保持幂等(不重复扣费、不重复交付)。
- 账单在交给收银工具之前做独立复核:金额、币种、
service_id、seller_app_id、seller_id、签名存在性、支付截止时间逐项比对,任一不符立即中断(见scripts/client.mjs的validateBill)。 - 全程不向用户暴露支付链接原文、二维码原文或交易号等中间过程。
- 运行记录只落本机
~/.skillpay/title-radar/<标识>/(目录权限 0700),含账单与原始参数,禁止上传或收入分发包。
服务端入驻(发布者账号侧完成,本包不含密钥)
- SkillHub 商户中心 SkillPay 入驻 → 2. 支付宝开放平台签约「AI 按量付费」→ 3. 注册服务获取
API_前缀的serviceId(单价须与发布表单一致)→ 4. RSA2 公钥模式生成密钥、上传公钥、私钥仅存服务端 → 5. 公网 HTTPS 部署 → 6. 小金额真实交易验证并回填交易号。完成后方可提交「发布付费 Skill」,平台执行 402 协议合规审核。
本次发布的对应取值:
| 项 | 值 |
|---|---|
service_id |
API_67FA5C7521784B13 |
seller_app_id |
2021007105632428 |
seller_id |
2088402627136333 |
| 资源接口 | https://a2m-pay-service.app.workbuddy.host/a2m/generate |
| 单价 | 0.10 元 / 次 |
(以上三项均会在 402 账单中下发,属公开信息;私钥不在此列,且不在本包任何位置。)
上架前核验清单
- [ ]
scripts/client.mjs存在且可执行(node scripts/client.mjs help有输出) - [ ] 服务端公网 HTTPS 可达,
doctor返回service_configured: true - [ ] 402 触发 → 收银 → 凭证重放 → 验付 → 履约全链路联调通过
- [ ] 发布表单「价格」=
0.10= 402 账单金额(三者一致) - [ ]
validateBill中的EXPECTED与服务端实际配置逐项一致 - [ ]
client.mjs调用的官方 CLI 参数与官方文档逐项一致,没有自造参数名 - [ ] 同一
--request-id重复probe得到同一个订单号(ORDER_SK_<标识>),不会产生第二张账单 - [ ] 在没装
alipay-bot的干净环境跑doctor不崩溃,并给出可照做的安装指引 - [ ] 包内无密钥、无
.env、无支付账号字段
数据来源与使用边界
- 热榜选题(4834 条):来自今日热榜聚合、百度热搜、抖音热榜、B站热榜、IT之家、少数派、澎湃新闻共 7 个公开榜单,经去重、聚类、评分后入库;其中 942 条已归入 12 个赛道,其余 3892 条暂为「未归类」(仍可被关键词检索到,但不参与赛道过滤)。
- 公众号实测爆款(390 条):来自公开榜单采集的 10 万+ 阅读标题,含阅读量;采用独立的标签体系,不参与上述 12 个赛道的过滤。
样本均为历史公开数据,仅供创作参考;返回结果不含原文账号信息。请勿将本服务用于搬运、洗稿或任何侵犯他人权益的用途。