Install
openclaw skills install ai-promotion-query腾讯音乐人宣推数据查询能力。当用户提到"我这些歌宣推情况如何"、"看一下宣推数据"、"这首歌宣推效果怎么样"、"我有哪些歌在投放"、"这首歌还要不要继续投"、"宣推诊断"、"宣推表现"、"投放效果"等与宣推数据查询相关的请求时触发。本 Skill 整合了两大子场景:① **宣推概览**——拉取当前登录用户名下所有宣推歌曲的概览(账号级 + 单曲摘要列表);② **获取歌曲宣推指标**——按 `songId` 查询指定单首歌的宣推指标详情。③ **结合宣推知识库做指标分析**——基于 `knowledge.md` 把原始指标转成分阶段诊断、加投/维持/调整/暂停建议与后续追问。
openclaw skills install ai-promotion-query✨ 自包含登录态:本 Skill 需要用户登录态,已由
tme-openapiSkill 自动处理——无需任何手动架设。首次使用会弹出浏览器扫码登录,Token 有效期约 30 天。⚠️ 前置依赖(算子调用能力):本 Skill 不自带 API 调用脚本,所有 TME OpenAPI 算子的发现与调用都委托给
tme-openapiSkill。你需要了解tme-openapi提供的 4 个通用工具(list_apis/search_apis/get_api_detail/invoke_api)及其标准调用流程。⚠️ 对外表达依赖:本 Skill 的输出是上层 Agent(
ai-promotion/readme.md)的内部数据依据,不直接面向用户。最终对用户的自然语言回复,必须遵守ai-promotion/readme.md的对外规则,并统一通过宣推结构化输出skill 输出。
本 Skill 分为两个部分:
tme-openapi 的通用调用能力,完成"宣推概览查询"和"获取歌曲宣推指标查询"两个子场景的业务编排。knowledge.md,把查询结果归类到推广前 / 推广中 / 推广后规则,再生成定性判断、动作建议和衍生问题。tme-openapi本 Skill 的所有后端调用都通过 tme-openapi Skill 完成。该 Skill 提供 4 个通用工具来发现和调用腾讯音乐开放平台的「算子」API:
Tool(来自 tme-openapi) | 作用 | 在本业务中的典型用途 |
|---|---|---|
search_apis | 按关键词模糊搜索算子 | 用关键词定位"宣推概览"、"获取歌曲宣推指标"算子 |
list_apis | 列出所有可用算子摘要 | 搜索失败时兑底探查 |
get_api_detail | 获取指定算子的完整详情 | 调用前查 inputSchema / detailedDescription |
invoke_api | 调用指定算子 | 真正发起业务调用(同步返回结果) |
标准调用流程(由 tme-openapi 定义):
search_apis(keyword) → [可选] get_api_detail(operatorCode) → invoke_api(operatorCode, arguments)
当前算子平台仅支持同步调用,
invoke_api一次请求即为终态,无需轮询异步结果。
tme-openapi 的脚本位于同级目录 ../tme-openapi/scripts/。在 qclaw / Code Buddy 中,脚本安装路径为 ~/.<client>/skills/tme-openapi/scripts/。本 Skill 正文中的「搜索算子」「调用算子」等步骤,都是对这些脚本的逻辑调用,不再赘述具体命令行形式——按 tme-openapi/SKILL.md 的"标准调用流程"执行即可。
tme-openapi 继承)operatorCode 或参数结构,一律通过 search_apis / get_api_detail 动态发现accountId / userId 等身份参数,后端会从 Token 中自动识别INVALID_ARGUMENT,回退到 get_api_detail 重新确认 schema 和 example 后再试UNAUTHORIZED,引导用户删除 ~/.tme-login/token.json 后重跑,tme-openapi 会自动触发重新登录tme-openapi/SKILL.md注意:本 Skill 不硬编码任何算子 code 或参数结构。关于算子的参数细节、取值约束、返回结构等信息,请通过 tme-openapi 的 get_api_detail 获取详情后,阅读 detailedDescription 字段,并参考本目录下 detailed_description_overview.md / detailed_description_metric.md 两份本地说明作为辅助。
宣推数据查询是音乐人宣推助手的基础能力:
songId 即 yyrSongId字段。songId 获取单首歌的完整宣推指标,用于回答单首歌的宣推表现、诊断、加投/止损判断等问题。两个接口均为同步接口,invoke_api 直接返回结果,无需关心异步轮询。
songId / 歌手名 / 发布时间 / 版本信息,固定使用 ai-promotion/readme.md 中的兜底文案当用户说"我这些歌宣推情况怎么样"、"看一下宣推数据"、"我有哪些歌在投放"、"宣推表现如何"等账号级 / 未指定具体歌曲的问题时:
userIdpageNo 默认 1、pageSize 默认 10(以 inputSchema 为准)pageNo / pageSize),对用户使用自然语言描述detailed_description_overview.md通过 tme-openapi 的 search_apis:
search_apis({ keyword: "宣推概览" })
若无命中,换用备选关键词重试:宣推歌曲、宣推列表、宣推数据。
从返回中定位名称/描述与"宣推概览 / 宣推歌曲概览"匹配的条目,记住其 name(operatorCode)。
首次调用前,务必先获取详情:
get_api_detail({ name: "<上一步找到的 operatorCode>" })
仔细阅读 detailedDescription、inputSchema、exampleOutput。如与本地 detailed_description_overview.md 冲突,以后端返回为准。
根据 inputSchema 构造参数并通过 tme-openapi 的 invoke_api 调用:
invoke_api({
name: "<operatorCode>",
arguments: { /* 以 get_api_detail 返回的 inputSchema 为准,通常可传空对象 {} 或 { pageNo, pageSize } */ }
})
从返回中提取:
songId、songName、promotionStatus、定性标签等)该结果 不直接对外,而是作为上层 ai-promotion/readme.md 判断问题类型、组装回答所需的内部数据。
ai-promotion/readme.md 的 B 类或 A 类规则)message + 最后一个 moreQuestions(4 个衍生问题),不输出 songCardsongId 进入场景二;若无法唯一定位,按 ai-promotion/readme.md 的"单首歌无法定位规则"输出固定兜底文案| 情况 | 内部处理 | 对外表达 |
|---|---|---|
| 返回列表为空 | 判断是否从未宣推过 | 用定性语言告知"当前没有在宣推的歌曲",不要暴露技术细节 |
UNAUTHORIZED | 登录态失效 | 引导用户删除 ~/.tme-login/token.json 后重跑(tme-openapi 会自动重新登录) |
请求超时 /UPSTREAM_ERROR | 重试 1-2 次 | 仍失败则使用ai-promotion/readme.md 中的"系统繁忙"兜底文案 |
| 用户继续问某一首 | 从概览结果中匹配songName / 关键词 | 匹配成功则进入场景二;匹配失败按"单首歌无法定位规则"输出兜底文案 |
当用户说"这首歌宣推效果怎么样"、"《XXX》宣推诊断"、"这首歌要不要继续投"、"这首歌宣推有什么问题"等指向单首歌的问题时:
songId 必填。如无 songId,先走场景一拿到候选池并匹配songId 的,直接使用,不要再向用户追问songId / 技术参数名称detailed_description_metric.mdsongId按优先级尝试:
songId(上层 Agent 透传、概览匹配结果、做歌/发行透传) → 直接使用songName 匹配ai-promotion/readme.md 的"单首歌无法定位规则"输出固定兜底文案(抱歉哦,系统繁忙中暂时无法为您提供该歌曲宣推评估...)通过 tme-openapi 的 search_apis:
search_apis({ keyword: "获取歌曲宣推指标" })
若无命中,换用备选关键词:宣推指标、宣推数据详情、单曲宣推、歌曲宣推详情。
记下匹配条目的 name(operatorCode)。
get_api_detail({ name: "<上一步找到的 operatorCode>" })
仔细阅读 detailedDescription / inputSchema / exampleOutput。若与本地 detailed_description_metric.md 冲突,以后端为准。
通过 tme-openapi 的 invoke_api:
invoke_api({
name: "<operatorCode>",
arguments: {
"songId": "<目标歌曲ID>"
/* 其他字段以 inputSchema 为准,如 startDate / endDate */
}
})
拿到返回后:
performanceTag / diagnosisTag),优先用定性字段对外后续分析与回答组装逻辑,见 Part 2:宣推指标分析。
ai-promotion/readme.md)A 类问题必须按以下顺序输出 4 个协议块(全部通过 宣推结构化输出 skill 输出):
message — 对该歌曲当前宣推表现的定性总结(亮点 / 短板 / 当前状态),严禁展示具体指标数值songCard — {"songId":"<真实可定位的 songId>"}message — 围绕该单首歌的具体、可落地的操作建议,必须说明依据,避免空泛moreQuestions — 4 个衍生问题,优先落在知识库已覆盖主题(数据解读 / 问题诊断 / 投流节奏 / 素材优化 / 生命周期 / 加投止损判断)| 情况 | 内部处理 | 对外表达 |
|---|---|---|
无songId 且场景一无法匹配 | 不向用户追问任何补充信息 | 按ai-promotion/readme.md 的"单首歌无法定位规则"输出固定兜底文案,不输出 songCard |
songId 不存在 / 无权访问 | 回到场景一重取候选池 | 用定性语言提示"无法获取到该歌曲的宣推数据",不要暴露 songId 字段 |
| 歌曲不在宣推中 | 无宣推数据可分析 | 用定性语言提示"该歌曲暂无宣推数据,可以从其他歌曲入手" |
INVALID_ARGUMENT | 回退到get_api_detail 重新确认 schema | 内部修正后重试,不要外露过程 |
UNAUTHORIZED | 登录态失效 | 引导用户删除 ~/.tme-login/token.json 后重跑(tme-openapi 会自动重新登录) |
请求超时 /UPSTREAM_ERROR | 重试 1-2 次 | 仍失败则输出"系统繁忙"固定兜底文案 |
1. 场景一:查宣推概览 → 拿到账号级摘要 + 单曲候选池
↓
2. 按用户问题定位目标 songId(或直接回答账号级问题并结束)
↓
3. 场景二:按 songId 获取歌曲宣推指标 → 拿到单首完整指标
↓
4. Part 2:结合宣推知识库做分析 → 按 A 类结构输出
本部分负责把 Part 1 查到的原始指标,结合本地知识库 knowledge.md,转化为对用户可用的诊断与建议。
Part 2 现在按固定流程执行。执行时必须:
knowledge.md 的对应章节生成定性判断、动作建议和 moreQuestions优先读取本地文件:
按需读取,不要把整份知识库搬进回答。优先定位以下标题:
## 2. 核心指标口径## 3. 推广前判断## 4. 推广中判断## 5. 推广结束后的复盘判断## 6. 特殊场景适配## 7. FAQ 归纳## 8. 面向 Agent 的落地规则performanceTag、diagnosisTag、promotionStatus)账号级问题以概览结果为主,不强行展开到单曲深诊断;单曲问题以 songId 对应的指标详情为主。
结合用户问题、接口字段和知识库语义,把当前歌曲归到以下三类之一:
若阶段不明确,优先按用户问法判断;若问法也不明确,再按数据字段判断。仍无法确定时,只输出保守结论,不越级给出强动作建议。
knowledge.md 的 ## 2 与 ## 3knowledge.md 的 ## 2 与 ## 4knowledge.md 的 ## 2 与 ## 5## 6## 7## 8,确保没有把内部阈值直接说给用户必须先做内部映射,再决定怎么说给用户。映射时遵守以下原则:
重点关注:
结论至少包含以下三部分:
若是账号级问题,可按“当前整体盘子 + 候选重点歌曲 + 共性建议”组织;若是单首歌问题,必须围绕当前这首歌给出判断。
读取 knowledge.md 的 ## 3 后,优先把歌曲归入:
然后按用户身份给建议:
补充平台与方式建议时,优先使用:
读取 knowledge.md 的 ## 4 后,优先把歌曲归入:
动作建议必须四选一为主:
若需要补充原因,优先解释:
读取 knowledge.md 的 ## 5 后,优先把歌曲归入:
后续建议要围绕:
遇到以下情况时,必须额外套用 knowledge.md 的 ## 6:
分析结果不直接对外,而是作为 A 类或 B 类问题输出结构的数据源,交由上层 ai-promotion/readme.md。
生成时必须遵守:
moreQuestions 生成规则moreQuestions 必须从知识库已覆盖主题里挑 4 个,优先级如下:
避免生成以下无依据问题:
| 文件 | 说明 |
|---|---|
detailed_description_overview.md | "宣推概览"算子的调用指引、参数参考骨架、返回结构参考、边界 |
detailed_description_metric.md | "获取歌曲宣推指标"算子的调用指引、参数参考骨架、返回结构参考、边界 |
knowledge.md | 宣推知识库主文件:指标口径、推广前/中/后规则、特殊场景、FAQ、Agent 输出约束 |
以上两份文档为参考骨架,真实 schema 和字段以后端
get_api_detail返回的detailedDescription/inputSchema/exampleOutput为准。
ai-promotion/readme.md ← 最上层:音乐人宣推助手人设,定对外表达规则
│
▼
ai-promotion-query (本 Skill) ← 本层:业务编排(宣推概览 / 宣推指标 / 指标分析)
│
▼
tme-openapi ← 基础能力:算子发现 + 调用,同时内嵌登录态获取(自包含)