星座(Zodiac Astrology)
概述
本技能提供星座一站式服务:星座判定、星座信息查询、每日/每周运势生成、星座配对分析。所有确定性计算(日期校验、星座归属、交界日判断、运势评分、配对指数)由脚本 scripts/zodiac.py 完成,agent 负责把脚本输出的 JSON 素材组织成轻松的中文文案。性格特质等叙述性素材存放在 references/zodiac_traits.md,按需加载。
触发场景
出现以下任一情况时使用本技能:
- 用户给出出生日期,询问「我是什么星座」(公历日期)
- 用户询问某个星座的基本信息:日期范围、元素、守护星、性格特点
- 用户询问运势:「今天/本周 XX 座运势如何」「帮我看看今天的运势」(未指明星座时先询问对方星座或生日)
- 用户询问配对:「白羊座和狮子座合不合」「我和 TA 的星座配对指数」
- 用户泛泛聊星座话题、要求生成星座类内容(如星座性格盘点、榜单、文案)
不适用:农历生日推星座(需先请用户换算公历)、严肃占星咨询(本技能为娱乐向)。
输入参数格式
| 参数 | 格式 | 说明 |
|---|---|---|
出生日期 --date |
YYYY-MM-DD、YYYY/M/D、MM-DD、YYYY年M月D日 |
公历;仅 MM-DD 也可判定(星座与年份无关,但交界日建议补年份);闰年 2 月 29 日合法,2 月 30 日等非法日期会被拦截 |
星座名 --sign |
中文全称(狮子座)、简写(狮子)、英文(Leo) | 大小写不敏感,自动容错 |
运势类型 --type |
daily / weekly |
daily 面向单日;weekly 自动对齐目标日所在周(周一至周日) |
配对 --sign1 --sign2 |
两个星座名 | 同一星座与自己配对也支持 |
调用方式
统一入口为 scripts/zodiac.py,四个子命令,输出均为 UTF-8 JSON:
PYTHON=<本机 python 可执行文件>
SCRIPT=<本技能目录>/scripts/zodiac.py
# 1. 判定星座(含校验与交界提示)
$PYTHON $SCRIPT sign --date "1990-08-23"
# 2. 查询星座基本信息
$PYTHON $SCRIPT info --sign 狮子座 # 或 leo
# 3. 生成运势(--date 缺省为今天)
$PYTHON $SCRIPT fortune --sign 狮子座 --type daily --date 2026-09-29
$PYTHON $SCRIPT fortune --sign 狮子座 --type weekly
# 4. 配对分析
$PYTHON $SCRIPT match --sign1 白羊座 --sign2 狮子座
处理规则:
- JSON 中
ok: false表示输入有误(非法日期、未知星座名)。按error字段向用户说明问题并请其重新提供,不要自行编造结果。 sign结果中is_boundary: true时,必须把boundary_note原文转述给用户(交界日期因年份而异,建议提供出生年份甚至出生时刻)。- 运势按「星座+日期」种子化生成:同一天重复查询结果一致,跨天自动更新,无需缓存。
- 撰写性格特质、配对点评等叙述文案前,从
references/zodiac_traits.md读取对应星座章节(可用 Grep 按星座名定位,不必全文加载)。
输出风格规范
- 语言:简体中文;语气轻松活泼,可适度用 emoji 与网络化表达,但不过度堆砌。
- 结构:分区块 + 小标题 + 星级(直接使用 JSON 中的
score_stars,如★★★★☆),运势建议使用「综合 / 爱情 / 事业 / 财运 / 健康」五维结构。 - 篇幅:单星座单日运势控制在 150-300 字;星座介绍 200-400 字;配对分析 200-350 字;周运势可放宽至 400 字内。每个部分点到为止,不写长篇大论。
- 必备免责声明:运势与配对输出末尾附一句轻量提示(如「以上仅供娱乐,好运主要靠自己✨」),不使用严肃说教口吻。
- 忠实于脚本数据:评分、幸运色、幸运数字、速配星座等一律采用脚本输出值,不得自行改动;agent 只做文字润色与串联。
示例对话
示例 1 · 判定星座(交界日期)
> 用户:我是 1990 年 8 月 23 日出生的,我是什么星座?
> 助手:(调用 sign --date "1990-08-23",is_boundary: true)
> 输出:你是处女座(8月23日 - 9月22日,土象星座,守护星水星)♍
> 小提示:8月23日正好处于狮子座与处女座的交界日。不同年份太阳换座的精确时刻略有差异,本结果按通用日期表判定为处女座;如果想要更精确的结果,可以告诉我你的出生年份和出生时刻哦~
示例 2 · 每日运势
> 用户:今天狮子座运势怎么样?
> 助手:(调用 fortune --sign 狮子座 --type daily)
> 输出:♌ 狮子座今日运势
> 综合 ★★★★☆ | 事业 ★★★★☆ | 健康 ★★★★★ | 财运 ★★★☆☆ | 爱情 ★★☆☆☆
> 幸运色:白色 | 幸运数字:3 | 速配星座:处女座
> 宜:复盘开销、犒劳自己一顿好的;忌:暴饮暴食、临时改计划
> 贵人运在线,多请教前辈~(以上仅供娱乐,好运主要靠自己✨)
示例 3 · 配对分析
> 用户:白羊座和狮子座合得来吗?
> 助手:(调用 match --sign1 白羊座 --sign2 狮子座)
> 输出:♈ 白羊座 × 狮子座 ♌ 配对指数 93% —— 天作之合!
> 双火象的强强联合:互相点燃、互相欣赏,只要都愿意让一步舞台,就是全场最闪的一对。(娱乐向参考,真实关系取决于双方的经营❤️)
示例 4 · 每周运势
> 用户:帮我看看双鱼座这周运势
> 助手:(调用 fortune --sign 双鱼座 --type weekly,按 theme、scores、highlights 组织)
> 输出:本周主题「柳暗花明」……周五是本周高光日,适合主动出击。(以上仅供娱乐✨)
示例 5 · 非法输入处理
> 用户:我是 2000 年 2 月 30 日生的,什么星座?
> 助手:(sign 返回 ok: false)
> 输出:2月只有 28/29 天哦,这个日期好像不太对~方便再核对一下生日吗?
资源清单
| 文件 | 用途 |
|---|---|
scripts/zodiac.py |
核心脚本:sign / info / fortune / match 四个子命令,含全部确定性数据与校验逻辑 |
references/zodiac_traits.md |
十二星座性格特质素材库(含元素速查表),撰写文案时按需加载对应章节 |
实现备注
- 星座日期边界按通用日期表(如处女座 8/23-9/22);交界日为每个区间首尾 ±1 天,脚本自动给出提示与相邻候选星座。
- 运势评分维度:overall / love / career / money / health(2-5 星),由「星座+日期」的 MD5 种子驱动
random.Random生成,保证可复现且每日不同。 - 配对指数 = 元素关系基础分(火风 92、土水 90、同元素 85-88、火土 62、风土 58、风水 55、火水 45)或 16 组经典配对覆盖值,叠加 ±3 微扰后收敛到 [30, 99],等级:≥90 天作之合 / ≥80 默契十足 / ≥60 需要磨合 / <60 互补挑战。