音乐推荐助手
基于你的豆瓣音乐收藏,随机选择 2 张 5 星专辑作为"种子",然后基于音乐知识和品味分析,推荐 5 张风格相近或延伸的优质专辑。
触发条件
当用户想要音乐推荐时使用此 skill,例如:
- "推荐一些音乐"
- "今天听什么好"
- "基于我的收藏推荐专辑"
工作流程
1. 读取收藏数据
从 projects/music-recommender/douban-music-collect.csv 中读取所有 5 星专辑。
2. 随机选择种子专辑
随机选择 2 张 5 星专辑作为推荐种子。如果专辑有 genre 标签,记录标签信息。
3. 分析种子专辑
对于每张种子专辑,分析:
- 艺人背景:艺人的音乐风格、时期、影响
- 专辑特点:录音年代、流派特征、乐器编制
- 音乐元素:节奏、和声、音色、情绪
4. 基于知识推荐
基于对种子专辑的理解,推荐 5 张专辑,考虑:
- 直接关联:同一艺人的其他经典作品
- 风格相近:同流派/同年代的经典专辑
- 影响关系:影响种子专辑的作品或被种子专辑影响的作品
- 延伸探索:风格相近但略有不同的专辑,拓展听感边界
5. 过滤已收藏专辑 【必须执行】
在最终确定推荐列表前,必须检查每张候选专辑是否已在收藏中:
# 搜索艺人名或专辑名关键词(部分匹配即可)
grep -i "关键词" projects/music-recommender/douban-music-collect.csv
执行步骤:
- 对每张候选专辑,搜索艺人名和专辑名的关键词
- 查看匹配结果,语义判断是否为同一张专辑或同一艺人的其他作品
- 如果判断已收藏,必须替换为其他候选
- 这一步是强制性的,不是可选项
注意:部分匹配可能返回多条结果,需要人工判断是否真正重复。例如搜索 "Coltrane" 会返回多张专辑,需要确认具体是哪一张。
6. 保存推荐结果【每次推荐后执行】
每次推荐完成后,将推荐结果保存为 Markdown 文件。
文件位置:projects/music-recommender/recommendations/{YYYY-MM-DD}.md
保存内容:
- 种子专辑介绍(2 张)
- 推荐专辑(5 张),包含流派、关联种子、推荐理由、听感预期
- 推荐逻辑总结
执行方式:使用 write_file 工具创建文件
7. 标记推荐专辑到 CSV【用户要求时执行】
当用户要求"标记"或"记录"某张推荐专辑时,将其添加到收藏 CSV 中。用于记录用户感兴趣的推荐专辑,方便后续追踪。
CSV 列结构:
title,artist,year,rating,date,url,genre,recommendation_reason
填写规则:
genre:流派标签recommendation_reason:合并写入「关联种子 + 推荐理由 + 听感预期」,格式如下:关联种子: {种子专辑名}。{推荐理由}。听感预期: {听感描述}
执行命令:
echo "{专辑名},{艺人},{年份},,{日期},,{流派},"关联种子: {种子}。{理由}。听感预期: {听感}"" >> projects/music-recommender/douban-music-collect.csv
示例:
echo "Trilogie de la Mort,Éliane Radigue,1993,,2026-04-21,,Drone / Minimal Electronic,"关联种子: Sketches From New Brighton。电子合成器 drone 的先驱,Loscil 的传统可追溯至此。听感预期: 单音持续数十分钟,泛音缓慢变化"" >> projects/music-recommender/douban-music-collect.csv
8. 输出推荐
以 Markdown 格式输出,包含:
- 种子专辑介绍(2 张)
- 推荐专辑(5 张),每张包含:
- 艺人 - 专辑名 (年份)
- 流派/风格标签
- 推荐理由(为什么基于种子专辑推荐这张)
- 听感描述(预期音乐特点)
输出格式
# 🎵 音乐推荐 - {日期}
## 🌱 今日种子专辑
### 1. {艺人} - {专辑名} ({年份})
- **你的评级**: ★★★★★
- **流派**: {流派标签或分析}
- **特点**: {简要描述音乐特点}
### 2. {艺人} - {专辑名} ({年份})
- **你的评级**: ★★★★★
- **流派**: {流派标签或分析}
- **特点**: {简要描述音乐特点}
---
## 💡 推荐专辑
### 1. {艺人} - {专辑名} ({年份})
- **流派**: {流派}
- **关联种子**: {种子专辑 1/2}
- **推荐理由**: {详细说明为什么推荐}
- **听感预期**: {描述预期听到的音乐特点}
### 2. {艺人} - {专辑名} ({年份})
...
### 5. {艺人} - {专辑名} ({年份})
...
---
## 📝 推荐逻辑
{简要说明本次推荐的整体思路,例如:
"本次推荐以 Spiritual Jazz 为主线,从 Yusef Lateef 的东方元素出发,
延伸到其他融合世界音乐的爵士作品,同时保持即兴和实验的边界探索。"}
推荐原则
- 🚫 绝对避免重复:【最重要】每张推荐专辑必须经过 CSV 过滤检查,已收藏的绝对不能推荐
- 质量优先:只推荐公认的经典/高评价专辑
- 多样性:5 张推荐应有不同的侧重点
- 可解释性:每张推荐都要有清晰的理由
- 适度延伸:既不要完全重复种子风格,也不要偏离太远
注意事项
- 推荐前检查 CSV 中的
title列,避免推荐已收藏专辑 - 如果种子专辑信息不足,基于艺人名和专辑名进行合理推断
- 推荐应跨越不同年代,展现音乐的历史脉络
- 可以适当推荐同一艺人的其他作品,但不超过 2 张
文件位置
- 收藏数据:
projects/music-recommender/douban-music-collect.csv - 推荐输出:
projects/music-recommender/recommendations/{YYYY-MM-DD}.md