八字命理分析 Skill (BaZi Fortune Telling)
免责声明 (Disclaimer)
> ⚠️ 重要提示:本命理分析仅供文化参考与娱乐用途。八字命理是中华传统文化的重要组成部分,但不应作为重大人生决策的唯一依据。命运掌握在自己手中,命理仅供参考。
>
> ⚠️ Important: This reading is for cultural reference and entertainment purposes only. BaZi is an important part of traditional Chinese culture but should not be the sole basis for major life decisions.
工作原理
本 Skill 由两个 Python 脚本组成,分工如下:
用户输入(性别 + 出生日期时间)
│
▼
┌─────────────────────┐
│ scripts/paipan.py │ ← 核心天文历法引擎
│ (Paipan 类) │ 节气计算、真太阳时、
│ │ 农历转换、干支推算
└──────────┬──────────┘
│ 返回原始数据
▼
┌─────────────────────────┐
│ scripts/bazi_engine.py │ ← 排盘封装层
│ (BaziEngine 类) │ 结构化命盘输出
│ │ 四柱+藏干+十神+大运+刑冲合害
└──────────┬──────────────┘
│ 结构化 JSON
▼
┌───────────────────────────┐
│ scripts/bazi_analyzer.py │ ← 命理解读层
│ (BaziAnalyzer 类) │ 日主强弱判断
│ │ 格局用神推断
│ │ 性格特征分析
│ │ 大运势解读
│ │ 人生建议生成
└──────────┬────────────────┘
│ 完整分析报告
▼
展示给用户
执行方式
必须通过 execute_command 工具运行 Python 脚本,不能仅靠 AI 推理。
一、/bazi — 完整八字排盘与分析(核心命令)
触发条件
当用户提供以下任一信息时触发:
- 性别 + 出生日期时间 → 直接排盘分析
- 只提供出生信息(无时间)→ 排三柱并提示缺时柱的影响
- 问"我的八字怎么样"、"帮我算一下命"等自然语言
所需信息收集
在执行脚本前,必须从用户处确认以下信息:
| 信息 | 必需 | 说明 | 示例 |
|---|---|---|---|
| 性别 | ✅ 必需 | 影响大运顺逆排法 | 男 / 女 |
| 公历出生年 | ✅ 必需 | 年柱以立春为界 | 1990 |
| 公历出生月 | ✅ 必需 | 月柱以节气为界 | 5 |
| 公历出生日 | ✅ 必需 | 日柱查万年历得 | 15 |
| 出生时辰 | ⚠️ 建议 | 无时柱则分析不完整 | 10点 / 10:30 / 上午 |
若用户只给农历生日:先转换为公历再计算(paipan 内置农历转换)。
若用户不给时间:按中午12:00计算三柱,并在结果中明确标注"缺少时柱"。
Step-by-Step 执行流程
Step 1: 运行排盘引擎
cd ~/.workbuddy/skills/bazi-skill/scripts && python3 bazi_engine.py \
--gender "男" --year 1990 --month 5 --day 15 --hour 10 --minute 30 \
--json
参数说明:
- --gender: "男" 或 "女"
- --year/--month/--day: 公历出生日期
- --hour: 24小时制(0-23),不传则只排三柱
- --minute: 分,默认0
- --longitude/--latitude: 可选,用于真太阳时校正
- --json: 输出JSON格式
Step 2: 将 JSON 结果传给分析引擎
将 Step 1 输出的 JSON 保存或直接传递给分析器:
# 方法1:保存JSON文件后分析
python3 bazi_analyzer.py bazi_result.json
或者直接让 AI 读取 Step 1 的 JSON 输出后调用 BaziAnalyzer.full_analysis()。
Step 3: 整合报告并展示
根据以下模板格式化输出。
命盘展示模板
完成排盘和分析后,使用以下格式美观展示:
╔══════════════════════════════════════════════════════╗
║ 八 字 命 盘 ║
║ Four Pillars of Destiny ║
╠═════════╦═════════╦═════════╦══════════════════════╣
║ 年柱 ║ 月柱 ║ 日柱 ║ 时柱 ║
║ (Year) ║ (Month) ║ (Day) ║ (Hour) ║
╠═════════╬═════════╬═════════╬══════════════════════╣
║ XX(天干)║ XX(天干)║ XX(天干)║ XX(天干) ║
║ XX(地支)║ XX(地支)║ XX(地支)║ XX(地支) ║
╠═════════╬═════════╬═════════╬══════════════════════╣
║ 藏干: ║ 藏干: ║ 藏干: ║ 藏干: ║
║ X X X ║ X X X ║ X X X ║ X X X ║
╠═════════╬═════════╬═════════╬══════════════════════╣
║ 十神: ║ 十神: ║ 日主 ║ 十神: ║
║ XX ║ XX ║ —— ║ XX ║
╚═════════╩═════════╩═════════╩══════════════════════╝
生肖: XX | 星座: XXX | 农历: XXXX年XX月XX日
五行统计: 金X 木X 水X 火X 土X
日主: X (阴/阳 X行) | 月令: X月(X行)
日主强弱: 偏强/偏弱 | 格局: XXX格
用神: X | 喜神: X | 忌神: X, X
分析报告结构(9大部分)
1. 命盘总览
- 四柱干支及藏干
- 十神分布
- 五行统计
- 农历转换、生肖、星座
2. 日主分析
- 日干象意与核心性格
- 是否得令(月令)
- 是否有根(地支通根)
- 是否得生(印星生助)
- 综合强弱判定
3. 五行分析
- 各五行数量和占比
- 最旺/最弱五行
- 平衡度评估
- 缺行提示(如有)
4. 格局与用神
- 格局类型判断
- 用神、喜神、忌神、仇神
- 取用逻辑说明
5. 十神解读
- 各柱十神的含义
- 正面特质与潜在挑战
- 对应六亲关系
- 实用建议
6. 地支关系影响
- 刑冲合害列表
- 每种关系对命局的具体影响
- 应对策略
7. 大运概览
- 每步大运的起止年龄和干支
- 长十二宫状态
- 该步大运的主题和趋势
- 关注要点
8. 性格特征综合
- 从日主和十神推导的核心性格
- 优势与短板
- 整体性格画像
9. 人生方向建议
- 幸运颜色/数字/方位
- 适合行业方向
- 事业、财富、感情、健康、学习建议
- 总体寄语
二、/bazi-match — 合婚分析
用法
用户提供两人的出生信息(性别+出生日期时间),分别排盘后进行对比分析。
分析维度
- 双方日主五行相生相克
- 用神是否互补
- 地支合冲刑害情况
- 十神组合反映的感情模式
- 综合匹配度评估
输出示例
╔════════════════════════════════════╗
║ 八 字 合 婷 分 析 ║
╠════════════╦════════════════════════╣
║ 方 (男方) ║ 圆 (女方) ║
╠════════════╬════════════════════════╣
║ XXXX ║ XXXX ║
╚════════════╩════════════════════════╝
匹配度: ★★★★☆ (80/100)
主要亮点: ...
注意事项: ...
三、/bazi-year — 流年运势
用法
/bazi-year 2026 或 "看看我2026年的运势"
分析内容
- 流年干支与原命局的生克关系
- 流年与当前大运的叠加效应
- 当年各领域(事业/财运/感情/健康)运势
- 宜忌参考
风格与原则
语言风格
- 现代白话中文为主,术语首次出现时解释
- 语气温和正面,像一位博学的朋友
- 可用比喻帮助理解
- 绝不制造恐惧:不用"大凶"、"血光之灾"等恐吓语言
- 即使看到不利信息,也给出积极应对方案
准确性原则
- 不知道就说不知道:没时间就不编造时柱
- 注明不确定性
- 区分流派差异
- 推算有据
隐私保护
- 提醒用户出生信息属于个人隐私
- 不要在其他场景复用用户的出生信息
文件结构
bazi-skill/
├── SKILL.md # 本文件 - Skill 定义和工作流
├── scripts/
│ ├── paipan.py # 天文历法核心库(来自 hkargc/paipan 项目)
│ ├── bazi_engine.py # 排盘引擎(封装 paipan,输出结构化 JSON)
│ └── bazi_analyzer.py # 分析引擎(命理解读,生成完整报告)
└── references/
└── (可扩展:经典案例、名家论述等参考资料)
踩坑经验
(以下由AI在实际调用中自动积累)
- paipan.py 的 fatemaps() 中 xb=1 表示男性,xb=0 表示女性
- 时柱缺失时仍可做基本分析,但大运起法和部分结论可能不够精确
- 节气精确到秒级,paipan 使用了天文算法(VSOP87等价算法)
- 真太阳时校正在经度偏差大的地区很重要(如中国东西部差异可达1小时以上)