Fortune Telling Bazi
/install fortune-telling-bazi
fortune-telling-bazi 八字算命
核心流程
首次启用
- 用户说「开始算命」→ 调用
python3 scripts/main.py status - 无用户 → 询问生日(姓名/年份/月份/日期/时间/性别)
- 调用
python3 scripts/main.py add \x3Cname> \x3C年> \x3C月> \x3C日> \x3C时> \x3C性别>(分可省略) - 本地计算八字(
scripts/calc.py)→ 保存到data/users.json→ 显示摘要 - 调用
python3 scripts/main.py active \x3Cname>激活 - 标记
is_active = true,此后每条回复注入八字摘要
非首次启用
- 用户说「开始算命」→
python3 scripts/main.py status - 有记录 → 显示所有已保存用户列表,询问「用哪个/哪几个」
- 用户选一个或多个人 →
python3 scripts/main.py active \x3Cname1,name2,...> - 标记
is_active = true,注入对应八字摘要
退出
- 用户说「停止算命」→
is_active = false
数据文件
data/
├── users.json # 所有用户的生日+八字(JSON格式)
└── active.json # 当前激活的用户列表
命令一览
| 命令 | 功能 |
|---|---|
python3 scripts/main.py add \x3Cname> \x3Cyear> \x3Cmonth> \x3Cday> \x3Ctime> \x3Cgender> |
添加新用户(time格式:16 / 16:30 / 下午4 / 晚8) |
python3 scripts/main.py update \x3Cname> \x3Cyear> \x3Cmonth> \x3Cday> \x3Ctime> \x3Cgender> |
更新已有用户 |
python3 scripts/main.py list |
列出所有已保存用户 |
python3 scripts/main.py view [name] |
查看某人八字详情(默认当前激活) |
python3 scripts/main.py remove \x3Cname> |
删除某人八字 |
python3 scripts/main.py active [name1,name2,...] |
设置激活用户,多人用逗号分隔 |
python3 scripts/main.py status |
检查激活状态 |
python3 scripts/main.py joint [name1,name2] |
联合分析(默认当前激活用户) |
八字摘要格式(单人被注入到 context)
━━━ 八字信息 ━━━
姓名:{name} | {gender} | 农历{lunar_str}
八字:{year_ganzhi} {month_ganzhi} {day_ganzhi} {hour_ganzhi}
生肖:{shengxiao} | 日主:{me}({yinyang})
五行:{wuxing} | {mingge} | 旺衰:{wangshuai}
喜用:{xiyong}
神煞:{shensha}
大运:{current_dayun}({start_age}-{end_age}岁)
━━━ 八字信息 ━━━
联合分析格式(多人被注入到 context)
━━━ 联合分析 ━━━
【{name1}】{gender} | {bazi_str} | {mingge}
【{name2}】{gender} | {bazi_str} | {mingge}
━━━ 合冲刑害 ━━━
年支关系:{analysis}
日支关系:{analysis}(夫妻/伴侣位)
月支关系:{analysis}
━━━ 五行契合 ━━━
{analysis}
━━━ 婚配分析 ━━━
{analysis}(仅两人时)
━━━ 八字信息 ━━━
触发关键词
| 关键词 | 动作 |
|---|---|
开始算命、算命、看看八字、我的八字 |
激活算命流程 |
停止算命、不算了、退出算命 |
退出算命模式 |
联合分析、合盘、双人八字 |
触发联合分析 |
添加八字、加个人、录入八字 |
添加新用户 |
查看用户、都有谁、八字体检 |
列出所有已保存用户 |
联合分析内容
地支关系分析:
- 年支 vs 年支(双方祖辈/原生家庭/根基是否相合)
- 日支 vs 日支(夫妻/伴侣位合冲刑害)
- 月支 vs 月支(父母/环境/外环境关系)
五行契合分析:
- 喜用五行是否相生(你生我或我生你为吉)
- 五行是否互补
婚配分析(仅两人时):
- 日支合冲刑害婚姻判断
- 桃花重叠警告
- 天乙贵人重叠吉兆
技术实现
-
八字计算:完全本地,不依赖任何远程API
-
依赖库:
scripts/lunar_core.py自包含单文件,提供本地农历换算和四柱计算。- 计算范围覆盖 1899-2060 年。
- 无远程 API、无第三方运行时依赖。
-
lunar_core.py 调试经验(2026-04-26 已修复):
jd_greg()反算公历年时曾少减 4800,导致Solar.toYmd()出现67870114这类错误年份;现已修正 JD → Gregorian 转换。_from_solar()现在按月首 JD 反推真实农历年,避免 11/12 月重复数据和立春年混用;立春年柱判断放在_compute()中按 solar year 查询LICHUN_JD/LICHUN_YMD。- 日期比较统一使用
int(s.toYmd())/int(LICHUN_YMD[year]),exact 年柱用含时分秒的 Julian Day 比较。 - 三个测试案例:1987/3/14 16:30→丁卯/癸卯/壬戌/戊申;1998/1/19 16:00→丁丑/癸丑/丙寅/丙申;2000/2/1 00:30→己卯/丁丑/己丑/甲子
-
农历计算:完全自包含的
lunar_core.py,基于 LY_DATA V6B 天文表,覆盖 1899-2060 年。 -
命格算法(已验证 12/12 测试全过):直接用
TEN_GOD[日干][月干]→ 格局映射,一行代码:def calc_mingge(day_stem, month_stem): return TEN_GOD_TO_GE[TEN_GOD[day_stem][month_stem]]- 9个普通格:正官→正官格,偏官→偏官格,七杀→七杀格,正印→正印格,偏印→偏印格,食神→食神格,伤官→伤官格,正财→正财格,偏财→偏财格
- 特殊格:比肩→比肩格,劫财→阳刃格
- 不需要藏干强度表,不需要透干逻辑
- "财才格" = "正财格" 的别名(2024/2/10 案例验证)
-
喜用神算法:
- 天干强度表(10天干 × 12月令地支)
- 地支藏干强度表(12地支藏干 × 12月令地支)
- 同类总分(日主五行 + 生我五行)vs 异类总分(克我 + 我克 + 泄我)
- 身强 → 宜泄(取异类);身弱 → 宜扶(取同类)
-
calc.py TEN_GOD table bug(2026-04-26 已修复):
- 100 个条目全部写错 — 用的是缩写(比/劫/食/伤)而非全称(比肩/劫财/食神/伤官)
- 修复:替换为完整的十神表(全称版本),重新验证 12 个案例
-
代码位置:所有 Python 文件统一放在
scripts/下,数据文件放在data/下。 -
代码架构(6个文件):
scripts/ ├── main.py # CLI 入口,命令路由,时间解析 ├── calc.py # 八字计算核心(常量和计算逻辑) ├── report.py # 输出格式化(单人详情 / 联合分析) ├── store.py # 数据存储(users.json / active.json) ├── lunar_core.py # 自包含农历/八字底层换算 └── test_lunar_core.py # 单元测试(12 个固定样例 + 128 个随机日期) -
测试命令:
python3 -m unittest scripts/test_lunar_core.py -
已实现功能:
- 四柱天干地支(含藏干)
- 五行纳音
- 十神(以日干为中心)
- 地支阴阳
- 旬空
- 胎元、胎息、命宫、身宫
- 大运排盘(10步大运)
- 神煞:桃花、天乙贵人、驿马、将星、劫煞
- 旺衰判断(量化算法:月令强度 × 天干 + 藏干权重)
- 喜用判断
- 联合分析:合冲刑害、五行相生、婚配
注意事项
python3 scripts/main.py joint支持2-N人联合分析,默认用当前激活用户- 激活多个用户时,所有人的摘要都注入 context
- 若只激活一人,格式同单人摘要
- 注入摘要时放在回复最前面,然后回答问题
- 大运排盘需要性别参数(第7个参数:男=1,女=0)
架构可复用性
本 skill 的多人+联合分析架构可复用到其他领域:
- 任何「alias + 结构化数据 + 联合分析」场景都适用
- 核心数据结构:
users.json(key=alias)、active.json(当前激活列表) scripts/main.py(入口)+scripts/calc.py(计算)+scripts/report.py(展示)+scripts/store.py(存储)+scripts/lunar_core.py(农历换算)- 联合分析的维度(合冲刑害/五行/喜用等)可根据不同领域替换
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install fortune-telling-bazi - 安装完成后,直接呼叫该 Skill 的名称或使用
/fortune-telling-bazi触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Fortune Telling Bazi 是什么?
八字算命 skill — 支持多人八字存储+联合分析,首次询问生日,后续对话自动附带八字信息。说"停止算命"退出。 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 105 次。
如何安装 Fortune Telling Bazi?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install fortune-telling-bazi」即可一键安装,无需额外配置。
Fortune Telling Bazi 是免费的吗?
是的,Fortune Telling Bazi 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Fortune Telling Bazi 支持哪些平台?
Fortune Telling Bazi 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Fortune Telling Bazi?
由 youhan2021(@youhan2021)开发并维护,当前版本 v1.0.2。