v2 to v4

50 added, 31 removed. Audit A to A.

---
name: discover-anime
- version: 2
+ version: 4
description: 按标签/类型发现番剧或电影。用户可以说"我想看科幻片"、"推荐一些百合番"等。
+ tools:
+ - discover_bangumi
+ - discover_tmdb
+ - subscribe_by_bangumi_id
+ - add_subscription
+ - search_tmdb
---
# 番剧/电影发现技能
当用户说"我想看科幻片"时触发此技能。
当用户说"我想看百合番"时触发此技能。
当用户说"推荐一些日常番"时触发此技能。
当用户说"有没有恋爱番"时触发此技能。
当用户说"找热血类型的番"时触发此技能。
当用户说"我想看"时触发此技能。
当用户说"推荐一些"时触发此技能。
当用户说"有没有"时触发此技能。
当用户说"找电影"时触发此技能。
当用户说"有什么电影"时触发此技能。
+ ## 重要:上下文保持
+
+ **此技能需要两轮对话完成**:
+ 1. 第一轮:显示番剧/电影列表,等待用户选择
+ 2. 第二轮:用户输入数字,执行订阅
+
## 判断媒体类型
- 用户说"番"、"番剧"、"动漫" → 使用 `discover_bangumi`
- 用户说"电影" → 使用 `discover_tmdb` (media_type="movie")
- 用户说"美剧"、"日剧"、"韩剧" → 使用 `discover_tmdb` (media_type="tv")
- 默认 → 使用 `discover_bangumi`
## 番剧标签映射 (Bangumi)
| 用户说法 | 标签参数 |
|---------|---------|
| 科幻、科幻片 | 科幻 |
| 百合、百合番 | 百合 |
| 日常、日常番 | 日常 |
| 热血、热血番 | 热血 |
| 恋爱、恋爱番、爱情 | 恋爱 |
| 搞笑、搞笑番、喜剧 | 搞笑 |
| 奇幻、奇幻番 | 奇幻 |
| 冒险、冒险番 | 冒险 |
| 治愈、治愈番 | 治愈 |
| 悬疑、推理 | 悬疑 |
| 运动、体育 | 运动 |
| 机战、机器人 | 机战 |
| 异世界 | 异世界 |
| 校园 | 校园 |
## 电影类型映射 (TMDB)
| 用户说法 | 类型参数 |
|---------|---------|
| 科幻 | 科幻 |
| 动作 | 动作 |
| 喜剧 | 喜剧 |
| 恐怖 | 恐怖 |
| 爱情 | 爱情 |
| 动画 | 动画 |
| 冒险 | 冒险 |
| 奇幻 | 奇幻 |
| 剧情 | 剧情 |
| 犯罪 | 犯罪 |
| 悬疑 | 悬疑 |
| 战争 | 战争 |
- ## 执行流程
+ ## 工作流程
- ### 步骤 1: 解析用户意图
+ ### 第一轮:显示列表
- 从用户输入中提取:
- - 媒体类型:番剧/电影/剧集
- - 标签/类型
- - 年份(如有)
+ 从用户输入中提取媒体类型、标签/类型、年份,调用对应工具。
- ### 步骤 2: 调用工具
+ **番剧**:调用 `discover_bangumi(tag=..., year=..., sort_by="popularity.desc")`
+ **电影/剧集**:调用 `discover_tmdb(media_type=..., genre=..., year=..., sort_by="popularity.desc")`
- **番剧**:调用 `discover_bangumi`
- - tag: 提取的标签
- - year: 提取的年份
- - sort_by: "popularity.desc"
+ 工具会返回格式化的表格,直接显示给用户。
- **电影/剧集**:调用 `discover_tmdb`
- - media_type: "movie" 或 "tv"
- - genre: 提取的类型
- - year: 提取的年份
- - sort_by: "popularity.desc"
+ ### 第二轮:处理用户输入
- ### 步骤 3: 处理结果
+ **当用户回复数字时(如 "13" 或 "1 2 3"),你必须直接调用订阅工具!**
- 工具会返回格式化的表格,直接显示给用户。
+ **关键**:表格中每一行都包含 Bangumi ID 或 TMDB ID,你需要:
+ 1. 根据用户输入的编号,找到对应行的 ID
+ 2. 番剧 → 直接调用 `subscribe_by_bangumi_id(bangumi_id=xxx)`
+ 3. 电影/剧集 → 直接调用 `add_subscription(title=..., tmdb_id=..., media_type=..., season=1)`
- 如果用户输入编号:
- - 番剧 → 调用 `subscribe_by_bangumi_id`
- - 电影/剧集 → 调用 `add_subscription`
+ **示例**:用户输入 "13"
+ - 查看列表第13行,找到 Bangumi ID(例如 604826)
+ - 调用 `subscribe_by_bangumi_id(bangumi_id=604826)`
+ - 回复订阅结果
+ ## 禁止事项
+
+ 1. ❌ 用户输入数字时不要调用 `list_subscriptions`
+ 2. ❌ 不要询问用户想做什么 - 用户输入数字就是要订阅
+ 3. ❌ 不要调用其他不必要的工具
+
## 示例
**用户**: 我想看科幻番
**助手**:
- 1. 媒体类型:番剧
- 2. 调用 `discover_bangumi(tag="科幻")`
- 3. 显示科幻番剧列表
+ 1. 调用 `discover_bangumi(tag="科幻")`
+ 2. 显示科幻番剧列表
---
+ **用户**: 13
+
+ **助手**:
+ 1. 查看列表第13行,找到 Bangumi ID
+ 2. 调用 `subscribe_by_bangumi_id(bangumi_id=对应ID)`
+ 3. 回复:「✅ 已成功订阅《XXX》」
+
+ ---
+
**用户**: 推荐一些科幻电影
**助手**:
- 1. 媒体类型:电影
- 2. 调用 `discover_tmdb(media_type="movie", genre="科幻")`
- 3. 显示科幻电影列表
+ 1. 调用 `discover_tmdb(media_type="movie", genre="科幻")`
+ 2. 显示科幻电影列表
---
**用户**: 有没有2024年的百合番
**助手**:
- 1. 媒体类型:番剧
- 2. 调用 `discover_bangumi(tag="百合", year="2024")`
- 3. 显示2024年百合番剧列表
+ 1. 调用 `discover_bangumi(tag="百合", year="2024")`
+ 2. 显示2024年百合番剧列表