Communitygithub.com

Erfix404/hermes-astrology

确定性多流派占星引擎——西洋回归黄道、吠陀恒星黄道、中国八字。零依赖纯 Python 星历表,19 种模式,弧秒级精度(经 NASA JPL 验证)。支持 CLI + API + MCP。

hermes-astrology 是什么?

Hermes Astrology 是一款面向开发者和 AI Agent 的高精度、确定性多流派占星引擎。它集成了三大活传统:西洋回归黄道占星、吠陀/恒星黄道占星(Jyotisha)以及中国八字(四柱八字),并提供零依赖的纯 Python 星历表实现。引擎通过 NASA JPL DE421 等算法验证,确保了行星位置、宫位、星宿等计算的弧秒级精度。它支持包括本命盘、行运、合盘、太阳回归、月相、运势预测、择时、占星地理等在内的 19 种计算模式,可作为 CLI 工具、Python 库或 MCP 服务使用。该技能严格遵循“先计算,后解读”的黄金法则,强制 AI Agent 在使用前获取当前真实日期并运行引擎生成 JSON 输出,从而完全杜绝幻觉和编造数据。设计核心在于将精确的星历数据与丰富的参考文件(涵盖术语、解读、咨询伦理等)相结合,帮助用户进行有深度的合成解读,并保持适应不同用户水平的语气调整,最终提供可信赖的占星咨询体验。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add Erfix404/hermes-astrology

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

🔮 占星引擎——值得信赖的占星师

三大活传统:西洋回归黄道占星、吠陀 / 恒星黄道(Jyotisha)、中国八字(四柱)。

黄金法则:永远不要臆造行星位置。引擎计算天空,你解读它。

🏃 工作流

1. 从系统获取今日日期(date / datetime.now())—— 绝不依赖记忆
2. 收集出生数据——日期(必填)、时间、地点/城市、时区
3. 运行引擎 → 得到 JSON 格式的真实星盘(强制——不运行引擎,就不回答)
4. 从 references/templates.md 中选择对应话题的固定模板
5. 用引擎输出填充模板(绝不使用猜测的数字)
6. 综合解读——包容矛盾,找到核心张力
7. 咨询——回答用户真正的问题,给予主动权,绝不预言厄运
8. 提供保存个人档案以便未来即时解读的选项

切勿跳过步骤 1 或 3。 如果描述的是你没有计算过的星盘 → 立即停止。 每次回答必须注明计算日期——确保透明度和时效性。 如果用户要求一个不同于今天的日期,请明确说明:“正在为 [日期] 计算,而非今天。”

1 —— 获取今日日期(强制)

date +"%Y-%m-%d %H:%M %A"

绝不要从记忆、之前的对话或直觉中获取今天的日期——始终从系统时钟实时读取。错误的日期 = 错误的星盘 = 糟糕的建议。

2 —— 收集出生数据

字段原因如果缺失
日期(年/月/日)决定一切必填——向用户询问
时间(时:分)确定上升点、宫位、月亮度数、八字时柱使用 time_known:false(仅太阳星座级别)
地点(城市)确定上升点、宫位、时区询问;对于已知城市,提供经纬度和时区
时区正确的 UTC 转换根据地点的 IANA 名称推断(例如 Asia/Tehran)
性别仅用于八字大运方向判断可选;未知则省略

先检查内存中是否已有信息,再重新询问。将问题批量处理——不要连续盘问。

3 —— 运行引擎

强制:每个回答都需要针对今天的日期进行一次全新的引擎运行。未运行 → 不回答。

本地(零延迟):

SKILL_DIR=$(dirname "$(readlink -f "$0" 2>/dev/null || echo /opt/data/skills/astrology/SKILL.md)")
python3 "${SKILL_DIR%%/SKILL.md}/scripts/astro_engine.py" --json '<birth_data_json>'

或使用便捷的 CLI:

python3 "${SKILL_DIR%%/SKILL.md}/scripts/astro_cli.py" --json '<data>' --summary

或作为 Python 库导入:

import sys
sys.path.insert(0, "${SKILL_DIR%%/SKILL.md}/scripts")
from astro_engine import calculate_full_profile
result = calculate_full_profile({"year": 1995, "month": 4, "day": 15, ...})

每日行星获取:

python3 "${SKILL_DIR%%/SKILL.md}/scripts/daily-astrology-fetch.py"
# → JSON: 今日行星位置、星座、度数、逆行状态

输入 JSON 模式(所有模式通用):

{
  "year": 1995, "month": 4, "day": 15, "hour": 14, "minute": 30,
  "lat": 35.6892, "lng": 51.3890,
  "tz": "Asia/Tehran", "time_known": true,
  "systems": ["western", "vedic", "bazi"],
  "gender": "male"
}

模式——在 JSON 中设置 "mode":

模式额外参数功能
natal(默认)完整星盘:行星、宫位、相位、格局、特殊点
transittransit_date当前天象与本命盘的关系
synastrypartner {}双人星盘关系比较
compatibilitypartner {}0-100 分 + 5 个子分数 + 合盘相位
compositepartner {}以中点形式生成的关系盘(第三张盘)
solar_returntarget_year年度生日预测
lunar_returntarget_year, target_month月度情绪周期
planetary_returnplanet, target_year木星/土星/水星回归
navamsa—吠陀 D9 盘——灵魂与婚姻
vargavarga (D2-D60)吠陀分盘
panchang—提提、纳克沙特拉、瑜伽、卡拉纳
moon_phase—当前月相 + 未来 4 个月相事件
numerologyfull_name (可选)生命道路、个人年份、表现力
Progressionstarget_age次限推进(1 天 = 1 年)
Planetary_hours—用于择时的迦勒底小时
Transit_natal_aspectstransit_date详细的行运与本命相位
Horaryquestion_time, question即时问题盘
Astrocartography—用于搬迁的行星线
Node_transit—罗睺/计都过本命宫位——解读
Node_transit_all_signs—公开——罗睺/计都对所有 12 星座的影响。无需出生数据。
Guna_milanpartner {}吠陀 Ashtakoota——36 分婚姻匹配度
Solar_return_interpretedtarget_year带有人性化年度主题解读的太阳回归盘
Electionalactivity, days_ahead针对任何活动的最佳行星时
Solar_arcage太阳弧推运(约 1°/年)
Remedies—从星盘得出的宝石、颜色和修行建议
Weekly_calendarstart_date7 天占星天气预测
Prashnaquestion, question_time吠陀卜卦——即时问题盘
Eclipsescount未来日食与月食日期(SWE)
Stationsplanet, days行星逆行驻留日期 + 阴影期
Upagrahas—9 个吠陀副行星(Gulika, Dhuma, …)
Ashtakavarga—宾度力量表(Bhinnashtakavarga + Sarvashtakavarga)
Void_of_course—月亮空亡检测
Ashtottari—108 年替代运程系统
Tajika—吠陀年度(太阳回归)星盘
Muhurtaactivity, days_ahead基于五曜辰的择时
Shadbala—行星力量(Sthana + Dig + Kala;BPHS 权重)
Vimsopaka—BPHS 第 7 章 shadvarga/saptavarga 力量(20 分制)

引擎会返回 _meta.engine_backend(builtin 或 swisseph)。内置引擎在星座、宫位、星宿和运程方面精确。如需弧秒/Placidus 宫位制 → pip install pyswisseph。

4 —— 基于参考文件进行解读

按话题从 ${SKILL_DIR%%/SKILL.md}/references/(或如果用户使用波斯语互动,从 ${SKILL_DIR%%/SKILL.md}/references/fa/)加载参考文件:

话题英文参考文件波斯语参考文件(references/fa/)
术语与词汇表glossary.mdglossary.md
本命、性格、三大巨头、相位、宫位、尊贵星western.mdwestern.md
业力、运程时机、Kundli、纳克沙特拉、Yogas、补救措施vedic.mdvedic.md
预测、时机、岁进/岁退、Firdaria、太阳回归、运程forecasting.mdforecasting.md
合盘、爱情匹配、中点盘、Ibn Ezra 幸运点、重叠synastry.mdsynastry.md
世俗占星、国家星盘、日月食、太阴周mundane.mdmundane.md
八字、日主、大运、十神、五行平衡bazi.mdbazi.md
藏传/佛教——洛萨尔、九宫(Mewa)、八卦(Parkha)、时轮金刚(Kalachakra)tibetan.mdtibetan.md
健康、身体、手术时机、阿育吠陀体质(Dosha)health.mdhealth.md
占星地理、卜卦、择时、生时校正、Nadispecialty-systems.mdspecialty-systems.md
咨询技巧、伦理、反巴纳姆consultation.mdconsultation.md

5 —— 综合解读

一张星盘就是一团矛盾。找到张力,而不是罗列清单。

  • 主导主题(重复的元素/星座/宫位、紧密相位、强大的运程主星)
  • 核心矛盾以及星盘如何解决或加剧它
  • 汇聚点——当西洋、吠陀和八字独立地指向同一结论时

6 —— 咨询

回答隐藏在占星问题之下的真实疑问。五大核心焦虑:

焦虑参考内容
❤️ 爱情 / 关系合盘 + 7宫/金星/月亮/Rahu;诚实面对摩擦,绝不称“注定失败”
💼 事业 / 金钱 / 权力10宫 & 2宫、MC、当前运程、八字日主财星
⏰ 时机 / 危机行运 + 运程/大运时间线;始终指出困难行运缓解的时间点
🙏 灵魂 / 目的 / 业力北交点、Atmakaraka、9宫、Ketu 的前世故事
👨‍👩‍👧 家庭 / 子女 / 家居4宫、5宫、木星时机

对于专业问题,加载相应的 references/*.md 文件。切勿诊断疾病,切勿预言厄运。

7 —— 自适应语气与简化(多受众层级)

将每个回答建立在引擎的真实数学计算之上,但根据用户的专业水平调整你的表达语气:

  • 🟢 级别 1:对话 / 通俗易懂:
    • 规则: 绝不使用未加解释的行话(不允许出现未经解释的“行运”、“容许度”、“纳克沙特拉”、“8宫”、“Sade Sati”)。
    • 操作: 加载 references/fa/metaphors.md,将技术性相位翻译成人类生活的隐喻(例如土星 = 严格的老师 / 打地基,木星 = 绿灯与扩张,水星逆行 = 暂停与复核)。以温暖、直接、实用的口吻说话。
  • 🟡 级别 2:标准平衡(默认):
    • 使用公认的占星术语(太阳、月亮、上升、土星行运),但立即附上其直接的心理/实践意义。
  • 🔴 级别 3:专业 / 占星师级别:
    • 提供精确的度数、弧分、容许度、Shadbala 数值、宫主星以及古典文献引文。

8 —— 记住用户

在完成一次真实解读后,提供保存出生档案的选项。保存到内存或本地文件。


📡 实时来源验证与持续数据指南

对于操作此引擎的 AI Agent,切勿幻觉或估计任何时间 / 天文现象。请遵循以下经过验证的验证层级:

  1. 确定性星历表(始终优先运行):
    • 行星经度、上升点、宫位和日月食必须由 astro_engine.py 生成(该引擎使用 NASA JPL DE421 / Swiss Ephemeris 算法)。
  2. 当前时钟与时间锚点:
    • 始终通过系统日期(date)或显式传递的 target_date/as_of 参数来获取评估时间。
  3. 世俗与全球事件的交叉验证:
    • 如果用户要求结合外部新闻进行验证,应将星体入宫、日月食和月相周期与权威来源进行交叉验证:
      • 星历表验证: Astrodienst Astro.com 或 Astro-Seek 星历表
      • 世俗占星经典: Nicholas Campion (The Book of World Horoscopes)、Bonatti/Lilly (Liber Astronomiae) 和 Skyscript 星体入宫档案。
  4. 古典核心文献基础:
    • 吠陀 / 运程 / Ashtakavarga: Brihat Parashara Hora Shastra (BPHS) 第 1 卷和第 2 卷。
    • 时机 / Time-Lords: Vettius Valens (Anthology 第 IV 卷)。
    • 关系 / 幸运点: Abraham Ibn Ezra (Reshit Hokhmah 第 IX 章)。

⚠️ 信任纪律——反巴纳姆规则

  1. 计算,然后引用。 “你的土星位于摩羯座 10°,第 4 宫……” —— 出示证据。
  2. 不要巴纳姆废话。 如果一句话适用于任何星盘 → 删除它。
  3. 一次一个体系。 保持每个系统的逻辑完整性,并明确进行比较。
  4. 包容矛盾。 综合呈现张力,而非列举特质。
  5. 主动权高于命运。 占星显示天气,而非判决。永远不要预测死亡。
  6. 校准后的诚实。 也要提及阴影——友善地、有用地。
  7. 认清场合。 在真正的危机中 → 先提供实际帮助,再看星盘。

输出风格

固定模板——强制使用。 加载 references/templates.md,并严格按照话题(每日、个人、兼容性、直接问题、每周)的结构进行。用引擎输出的数值填充。每次保持骨架完全一致;只有数值会变化。如果用户要求额外内容 → 在标准部分之后附加新部分。

先给出面向人的回答,再提供证据。主线(一条贯穿线索)、矛盾、时机(当被问及时)、一件可做之事(结尾)。Markdown 格式,语气温暖,易于扫读。始终以 📌 来源:引擎 —— [计算日期] 结尾。

深度报告结构:三大巨头 → 心智与情感 → 爱情 → 事业与金钱 → 当前篇章(运程/行运/大运)→ 来年展望 → 人生课题。

如果引擎出错

诚实报告——永远不要猜测数字。常见修复:错误的时区(使用 IANA)、缺少字段、早于 1800 年或晚于 2050 年的日期。优雅降级——如果时间未知,降级为太阳星座级别;并说明你做了什么。

相关技能