开源工具将占卜过程中的随机抽卡/卦象生成与结果解读解耦,前者由本地脚本完成确保可复现,后者才交给模型,避免LLM凭空发明答案。
三千年前,商王将占卜刻于甲骨之上——这是甲骨上可审计的神谕记录。Oraclebone 将同样的规范引入 AI Agent:审计脚本负责产生卦象、抽牌、八字柱;模型只解读它被给予的结果,从不凭空发明结果。
问题在于:AI 占卜是幻觉加了几步工序
随便问任何一个聊天机器人要塔罗牌解读,它会愉快地从想象中「抽出」三张牌。问它要《易经》卦象,它会生成一个——有时甚至是六十四卦中根本不存在的卦。问八字,它会从农历新年来计算年柱,而传统体系用的是立春(节气)。这些不是边缘案例,而是语言模型做占卜时的默认行为。
对于一种以对给定结果进行符号性反思为核心价值主张的实践,让模型凭空发明结果是灾难性的。解读也许令人安慰,但它不指向任何事物。你无法审计它、复现它或分享它。
Oraclebone(GitHub · PyPI)是我尝试解决这个问题的方法——一个小型开源工具包,将占卜拆分为两个可审计的作业:
本地脚本使用系统熵(默认)或用户提供的种子(用于可复现的演示)来产生抽牌、卦象或八字柱组合。
AI Agent 在有文档记录的安全边界内解读该 JSON 输出。
模型从不生成占卜结果,它只读取结果。
四种占卜系统,同一种规范:
三个接口,同一套引擎:
MCP server(uvx oraclebone-mcp)——零依赖,通过 stdio 的 JSON-RPC 2.0。五种工具:tarot_draw、iching_cast、xiaoliuren_cast、bazi_cast、interpretation_template。可挂载到 Claude Desktop、Codex、Cursor、Continue 或任何 MCP host。
CLI(oraclebone / 旧版 ai-divination)——oraclebone tarot --spread three-card --reversals,输出 JSON。
Agent skills——自包含的 skill 文件夹,带有针对 Claude(claude.yaml)、OpenAI/Codex(openai.yaml)、Gemini(gemini.yaml)、Cursor(cursor.mdc)的适配器。一行命令安装:curl -fsSL https://raw.githubusercontent.com/sapuyou45-bit/oraclebone/main/install.sh | bash。
每个 JSON 输出都带有审计元数据:方法、种子(熵驱动则为 null)、近似模式的警告,以及每个系统的来源信息。文档站(sapuyou45-bit.github.io/oraclebone)提供六种语言版本,并带有实时浏览器内演示。
为什么「审计」不只是品牌噱头:正确性审计
这是我最引以为傲的部分。在 v8.2.0 中,我针对传统参考文献进行了正确性审计,发现了两个真实的 bug:
小六壬 off-by-one。传统方法是走三步——月从第一宫起算,日从月宫起算,时从日宫起算——每一步都把起始宫计数为一。原实现使用 ((month + day + hour - 2) % 6),导致每次起卦都晚了一宫。农历正月 / 初一 / 子时返回的是 留连(Liú Lián),而不是 大安(Dà'ān)。已用 ((month + day + hour - 3) % 6) + 1 修复,并用已知的传统结果锚定了测试用例。
八字生肖边界。立春到农历新年之间出生的生辰产生了矛盾输出:年柱是丙午(马),但生肖是蛇。现在生肖从年柱的地支推导,农历新年惯例单独保留,两者均可审计。
这些正是模型生成的解读永远不会暴露的 bug——因为模型不做算术,它只是叙述算术。当脚本来做计算时,计算是可以被检查的。
占卜是符号性反思,不是预测。Oraclebone 的共享策略拒绝医疗、法律、金融或危机建议,将结果定位为反思,保留用户能动性,并明确说明不确定性。好的解读将陈述与生成的结果联系起来——仅此而已。
# 一条命令,无需安装:
uvx oraclebone-mcp
# 或者安装包:
pip install oraclebone
# 或者直接用 CLI:
oraclebone tarot --spread three-card --reversals
oraclebone iching --method yarrow
oraclebone xiaoliuren --method numbers --month 3 --day 12 --hour 7
oraclebone bazi --datetime 1990-05-20T14:30:00
或者完全跳过终端:打开在线演示。
仓库:github.com/sapuyou45-bit/oraclebone——想要更多体系支持就给它加星(紫微斗数?六爻?如尼石?——路线图由社区驱动)
PyPI:pypi.org/project/oraclebone
许可证:MIT · Python:3.9–3.12 · 无运行时依赖(bazi 需要可选的 lunar-python extra)
如果你曾经对聊天机器人「抽出」你的牌感到尴尬,这就是解决方案。甲骨开裂,模型解读。🔮