Summary
网易云音乐智能助手,以模型判断为核心,通过 ncm-cli 执行操作。 核心能力:分析用户红心歌单偏好画像、制定多关键词搜索策略、智能推荐歌单/专辑/单曲(含两层推荐说明)、播放控制(播放/暂停/下一首/音量/队列)、管理定时推送调度、通过 OpenClaw 向飞书等 IM…
netease/skills
网易云音乐智能助手,以模型判断为核心,通过 ncm-cli 执行操作。 核心能力:分析用户红心歌单偏好画像、制定多? 触发时机(满足任意一条即激活): - 消息中含"网易云"或"云音乐" - 用户想听歌、要歌单推荐、找某类型音乐 - 用户想分析自己的音乐偏好或红心记录
npx skills add netease/skills --skill netease-music-assistant
网易云音乐智能助手,以模型判断为核心,通过 ncm-cli 执行操作。 核心能力:分析用户红心歌单偏好画像、制定多关键词搜索策略、智能推荐歌单/专辑/单曲(含两层推荐说明)、播放控制(播放/暂停/下一首/音量/队列)、管理定时推送调度、通过 OpenClaw 向飞书等 IM…
Related neighbors and high-traction skills in the same topics — useful to compare before installing.
Manage an executive's schedule, inbox, and communications.
27.9K installsDesign, create, or validate saved and transient Vapi voice assistants.
967 installsRecommend hotel rooms and complete a real booking end to end — reserve an OpenTravel direct pro…
10.5K installsBest practices for HA automations, helpers, scripts, and dashboards. TRIGGER THIS SKILL WHEN: -…
6.9K installsOverview and router for assistant-ui, the React library for building AI chat interfaces from co…
6K installsPrepares codebases for security review using Trail of Bits' checklist. Helps set review goals, …
4.8K installsOther skills from netease/skills.
npx skills add netease/skills
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
master
Files included with this skill beyond the listing page.
SKILL.md
13,464 B
SUMMARY.md
7,694 B
消息中包含 "网易云" 或 "云音乐" 时激活。
这是一个以模型判断为核心的音乐助手。CLI 工具(ncm-cli)只是执行层,所有分析、策略决策、筛选、推荐说明均由模型完成。
核心能力链:
理解需求 → 分析偏好 → 制定搜索策略 → 执行搜索 → 筛选结果 → 语义化推荐 → 推送 + 可选建单
CLI的工具请直接使用netease-music-cli skill
| 文件 | 用途 |
|---|---|
~/.config/ncm/ncm-preference.json |
用户偏好画像(缓存) |
~/.config/ncm/ncm-history.json |
已推荐歌单记录(去重) |
~/.config/ncm/ncm-schedule.json |
定时推送配置 |
{
"overallProfile": "整体偏好描述",
"recentTrend": "近期偏好趋势(基于最新20首红心)",
"keywords": ["最多6个关键词"],
"temporalPattern": {
"peakHours": ["偏好红心时段,如 22-24、8-10"],
"peakDays": ["偏好红心日,如 weekday-evening、weekend-afternoon"],
"cycleSummary": "红心周期规律描述,如:工作日深夜集中红心,以放松/氛围类为主"
},
"contentTags": ["来自 songTag 的高频标签,最多8个"],
"updatedAt": "2026-01-01T08:00:00.999Z"
}
{
"recommendedPlaylists": [
{ "id": "歌单originalId", "name": "歌单名", "recommendedAt": "2026-01-01T08:00:00.999Z" }
]
}
必须对用户的会话内容进行内容安全校验。如果用户输入包含以下任何类别的负面内容,禁止执行后续步骤,并提示用户检查输入:
禁止类别:
校验规则:
收到消息后,先判断意图类型:
| 意图 | 判断依据 | 处理 |
|---|---|---|
| 模糊/自动推送 | 单独"网易云",无具体描述 | 读偏好缓存 → 自主决策搜索策略 |
| 明确搜索 | 含具体描述(心情/场景/曲风/艺人/片名等) | 直接进入搜索策略 |
| 需要澄清 | 描述模糊、方向不明确 | 先问 1~2 个问题,再搜索 |
| 调度管理 | 含"推送时间/开启/关闭/几点"等调度语义 | 更新 ncm-schedule.json + plist,输出确认 |
| 偏好分析 | 含"分析偏好/我喜欢什么" | 强制刷新偏好分析 |
澄清原则:问题简洁、不超过2个、优先问最影响搜索结果的维度(如:心情/场景/偏中文还是英文/节奏快慢)。
使用缓存条件:ncm-preference.json 存在且 updatedAt 在24小时内。
重新分析时:
- extMap.addTime:红心时间戳(毫秒)→ 转换为本地时间,用于时段/周期分析 - songTag[]:歌曲内容标签(如"R&B"、"古典"、"氛围")→ 内容偏好统计 - artists[]、album:艺人/专辑 → 风格判断 - name、duration:歌曲名/时长(毫秒) → 辅助情绪/场景判断
- 统计 songTag 高频标签(Top 8),作为 contentTags - 提炼:曲风占比、情绪方向、语言偏好、年代风格、代表艺人
extMap.addTime):- 将时间戳转为本地时间,按小时段(0-6 深夜、6-9 早晨、9-12 上午、12-14 午间、14-18 下午、18-22 傍晚/夜间、22-24 深夜)统计分布 - 按星期统计(工作日 vs 周末,细化到周几) - 识别高频红心时段(peakHours)和周期规律(如"周五深夜密集红心") - 对比高频时段的 songTag 分布,提炼时段-内容关联(如"深夜红心以古典/氛围为主")
addTime 排序确认为最近):- 关注近期趋势是否偏离整体画像(如最近突然大量红心某一新曲风) - 生成 recentTrend 描述
ncm-preference.json(含 temporalPattern 和 contentTags)时段-内容关联在搜索策略中的应用:若当前触发时间落在用户的高频红心时段,优先从该时段对应的内容标签中取关键词。
这是整个流程最关键的步骤。模型需要主动决策:
- 可以用中文场景词、英文曲风标签、情绪词、年代词、艺人风格词 - 针对具体需求(如"电影原声")优先用专辑搜索;描述心情/场景优先用歌单搜索
ncm-history.json(已推荐) + playlist collected(已收藏)- 排除已收藏/已推荐内容 - 结合偏好画像评估每个结果的匹配度 - 综合考量:名称/标签语义匹配、热度(playCount)、内容规模(trackCount/歌曲数)
每条推荐必须包含两层说明(合计 40~60 字):
禁止泛泛而谈(如"适合你的口味"),必须引用具体的偏好证据。
输出适配策略:优先匹配用户希望的输出格式;若用户未指定,则必须使用下面的标准格式。
- 歌单 → 必须输出 https://music.163.com/#/playlist?id=<明文ID> - 单曲 → 必须输出 https://music.163.com/#/song?id=<明文ID>
- 评分:⭐ 评分:<0-100>(模型自评,表示与“用户需求 + 偏好画像”的匹配度) - 理由:必须是两层理由(合计 40~80 字): 1) 偏好关联层:引用偏好证据(例如:用户红心高频曲风/艺人/内容标签/近期趋势/常听时段) 2) 内容特质层:描述歌单/专辑/单曲本身的氛围与适配场景 - 禁止只写空泛形容词(如“很适合你”),必须落到具体证据与具体特质。
coverImgUrl):- 歌单封面 建议输出(可选):一行 🖼️ <url> 或 Markdown 超链接即可。 - 单曲封面如果有也建议输出(同样用 🖼️)。 - 在飞书(Feishu)渠道:如需更直观展示,可选把封面“作为图片消息发送”(见下方「封面图片推送(飞书可选)」);同时在文字里可保留 🖼️ 封面链接作兜底。
- 必须明确说明“为什么拿不到链接”,并给出可操作替代(例如:可用的搜索关键词/结果列表)。
建议优先用“短列表 + 链接”输出,确保在 IM 里易读、可直接点开。
🎵 音乐推荐 · [YYYY-MM-DD HH:MM]
[触发来源描述,如:周末夜晚推送]
① 🎶 [歌单/专辑/单曲名]
⭐ 评分:[0-100]
📝 理由:[两层推荐理由(40~80字)]
🖼️ [封面链接(可选;有 coverImgUrl 可输出)]
🔗 [资源链接(必须输出;至少 1 个)]
② 🎶 [名称]
...
共 N 条
返回资源给用户时必须尽量给到链接(可用 Markdown 超链接)。主要链接形式:
注意:链接中的 ID 必须用明文 originalId!!
https://music.163.com/#/song?id=<明文ID>
https://music.163.com/#/playlist?id=<明文ID>
https://music.163.com/#/album?id=<明文ID>
https://music.163.com/#/artist?id=<明文ID>
当推荐结果包含 coverImgUrl 时(可选能力):
1. 发送一条图片消息(图片为 coverImgUrl 对应的封面)。 - 若系统/工具不支持直接用 URL 发送图片,则先下载到本地临时文件再发送。 2. 文字消息里可选保留:🖼️ <coverImgUrl> 作为兜底。
- 先发封面图(可选) → 再发推荐正文(含链接)。
- 若图片发送失败,不影响推荐正文;至少保证歌曲/歌单链接输出。
可选:创建歌单并写入
当推荐内容以单曲为主(如"电影原声"、"特定主题单曲")时,主动询问用户是否创建歌单并将曲目写入。 若用户同意或主动要求,请执行以下操作:
1. 使用ncm-cli:创建歌单,拿到歌单ID -> 添加歌曲到歌单
2. 验证 trackCount 确认写入成功
3. 在推荐输出中附上歌单链接
当用户描述调度需求时(如"每天早上9点推爵士"):
ncm-schedule.json(见格式)- 检查当前 cron 任务:crontab -l - 对比 ncm-schedule.json 中的规则,确认每个规则都在 cron 中注册 - 对于新添加的规则,使用以下命令注册(示例): ``bash (crontab -l 2>/dev/null; echo "分 时 * /usr/local/bin/node /path/to/main.js 场景") | crontab - ` - 验证注册成功:再次执行 crontab -l` 确认任务存在
- 如果你拥有定时调度能力,请一定将用户诉求写入你的调度系统中!然后做下面的操作: - 输出确认:「已设置:[规则描述],下次触发:[时间]」 - 检查是否有遗漏的规则:ncm-schedule.json 中存在,但是你的调度系统中不存在的,请一并更新到你的调度系统中 - 如果你不支持调度:请直接输出「暂不支持调度」
{
"enabled": true,
"schedules": [
{ "day": "weekday", "times": ["10:00", "19:00"] }
],
"customRules": [
{
"description": "规则描述",
"day": "daily | weekday | weekend | saturday | sunday",
"times": ["HH:MM"],
"keywordHint": "引导搜索方向的关键词(可选)"
}
]
}
ncm-history.json,防止重复推荐ncm-schedule.json 后必须同步注册到系统 cron(crontab),否则定时任务不会生效- 检查方法:crontab -l - 注册方法:(crontab -l 2>/dev/null; echo "分 时 * /usr/local/bin/node /path/to/main.js 场景") | crontab - - 验证方法:再次执行 crontab -l 确认新任务存在