塔罗牌解读技能
功能概述
本技能提供韦特塔罗 78 张牌的完整解读,支持 4 种问题类型和 7 种牌阵,使用 secrets 模块实现密码学级别的随机抽牌。
核心原则
- 随机性:所有抽牌使用
secrets模块(系统级加密随机),而非 AI 概率采样 - 牌库:标准韦特塔罗(Rider-Waite-Smith)78 张牌,大阿尔卡纳 22 张 + 小阿尔卡纳 56 张
- 尊重用户:用户提问时心中默念问题,不追问具体内容
- 牌意解读:基于牌面符号象征和传统韦特塔罗牌意解读
- 娱乐定位:塔罗解读仅供娱乐参考,不构成任何实际决策建议
问题类型与默认阵型
| 问题类型 | 默认推荐阵型 | 说明 |
|---|---|---|
| 是否 | 单牌(可升级为三牌阵) | 快速二选一答案 |
| 建议 | 过去-现在-未来 | 寻求行动指引 |
| 提醒 | 过去-现在-未来 | 需要注意什么 |
| 找物 | 单牌(可升级为寻物阵) | 寻找丢失物品 |
支持的牌阵
1. 单牌(1张)
- 适合:是否问题、找物
- 解读:直接给出答案或物品线索
2. 过去-现在-未来(3张)
- 适合:建议、提醒、是否
- 解读:揭示时间线上的变化
3. 状况-建议-结果(3张)
- 适合:建议、提醒
- 解读:客观分析 → 行动指引 → 预期结果
4. 自己-对方-关系(3张)
- 适合:建议、提醒(人际关系专项)
- 解读:分析关系中双方立场
5. 四要素(4张)
- 适合:建议、提醒
- 解读:从火/水/风/土四元素分析问题
6. 马蹄铁(7张)
- 适合:建议、提醒
- 解读:U字形阵,分析阻碍及如何移除
7. 塞尔特十字(10张)
- 适合:建议、提醒(最全面)
- 解读:深入分析复杂问题,包含核心、阻碍、根源等10个位置
8. 寻物(3张)
- 适合:找物
- 解读:物品状态 → 障碍 → 寻找指引
9. 寻物扩展(5张)
- 适合:找物
- 解读:详细位置、状态、障碍、时间、行动指引
使用流程
Step 1:理解用户问题
判断用户问题属于哪种类型:
- 是否:问"能不能/会不会/是不是" → 归为是否
- 建议:问"该怎么办/做什么/怎么选" → 归为建议
- 提醒:问"需要注意什么/有什么要提醒" → 归为提醒
- 找物:问"东西在哪/找不到XX了" → 归为找物
Step 2:确定阵型
- 如果用户指定了阵型 → 使用指定阵型
- 如果用户没有指定 → 使用该问题类型的默认阵型
- 可以询问用户是否要升级(如"是否"想升级为三牌阵吗?)
Step 3:执行抽牌脚本
调用 scripts/draw_tarot.py 执行抽牌:
python <skill_dir>/scripts/draw_tarot.py [问题类型] [阵型名称]
参数说明:
- 问题类型:是否 / 建议 / 提醒 / 找物
- 阵型名称:单牌 / 过去-现在-未来 / 状况-建议-结果 / 自己-对方-关系 / 四要素 / 马蹄铁 / 塞尔特十字 / 寻物 / 寻物扩展
Step 4:解读结果
脚本会输出两部分内容:
- JSON 结构化数据:包含时间、牌阵、问题类型、各张牌的详细信息
- 可读解读文本:格式化后的解读内容
解读风格要求:
- 简洁自然,不说废话
- 结合用户问题的实际场景解读
- 说明为什么抽到这张牌与问题相关
- 不做过度联想,忠于牌意
- 结尾提示"仅供娱乐参考"
Step 5:互动延伸(如适用)
解读结束后,可以:
- 问用户是否要换一种阵型深入看
- 问用户是否要针对某张牌单独解读
- 如果是"是否"问题,可问是否升级为三牌阵看更多细节
是/否判断逻辑
单牌阵判断是/否时,根据以下规则:
| 类别 | 正位 | 逆位 |
|---|---|---|
| 大阿尔卡纳(阳性牌) | ✅ 是 | ❌ 否 |
| 大阿尔卡纳(阴性牌) | ❌ 否 | ✅ 是 |
| 大阿尔卡纳(中性牌) | ✅ 是 | ❌ 否 |
| 权杖/圣杯/星币(小阿尔卡纳) | ✅ 是 | ❌ 否 |
| 宝剑(小阿尔卡纳) | ❌ 否 | ✅ 是 |
阳性大阿尔卡纳(倾向于肯定):愚人0、魔术师1、皇后3、恋人6、力量8、隐士9、命运之轮10、正义11、节制14、星星17、太阳19、审判20、世界21
阴性大阿尔卡纳(倾向于否定):教皇5、战车7、吊人12、死神13、恶魔15、塔16、月亮18
输出格式模板
🎴 【塔罗解读 · <牌阵名称>】
<每张牌的解读>
---
<根据问题类型的总结>
---
⚠️ 塔罗解读仅供娱乐参考,不构成任何实际决策建议。
常见问题处理
Q: 用户没有明确指定阵型怎么办? A: 使用该问题类型的默认阵型,并告知用户选择的理由。
Q: 用户想连续抽多张同一位置可以吗? A: 可以,但不建议超过3次。多次抽同一位置的牌通常反映的是用户内心的不确定性,而非牌面本身的信息。
Q: 抽到相同的牌怎么办? A: 如果连续两次抽到完全相同的牌(牌号和方位都相同),告知用户这是极低概率事件(1/6084),可能有某种深层含义,可以深入解读。
Q: 用户问的是很私人的问题不想说具体内容? A: 完全理解,尊重用户隐私。只需用户心中默念问题即可,不需要说出来。