README

太卜

太卜

开源、可自托管的 AI 命理术数平台

排盘交给代码,解读交给 AI

Release taibu-mcp taibu-core Next.js PostgreSQL Docker

中文 | English

在线体验 · 更新日志 · 自托管 · MCP 手册 · 报告问题


简介

太卜把传统命理术数做成可以复现、可以核对的工具,再让 AI 在工具结果上做解读。

  • 排盘由代码完成:taibu-core 实现 11 个体系的历法与排盘规则,输出规范文本与 canonical JSON,口径写在 ALGORITHM_RULES.md。模型不手算干支、卦象与星曜。
  • 解读由 AI 完成:普通对话、后台 Agent、协作成员与定时任务都使用同一组工具和 15 个解读方法。
  • 工具对外开放:同一套实现经 MCP、离线 Skill 与 npm 包提供给 Claude、Cursor、Cherry Studio 等任意 AI 客户端。
  • 完全自托管:Next.js + PostgreSQL + Redis 的 Docker Compose 栈,一个镜像同时运行 Web 与 worker。

功能

占术与排盘

体系 主要能力
八字 真太阳时、公历农历与四柱反推;十神、藏干、纳音、神煞、十二长生、干支刑冲合害;大运、流年、流月、流日;合盘;不知时辰时排三柱,或由 Agent 列候选时辰推算
紫微斗数 十二宫、三方四正、主辅杂曜、四化与自化、命主身主、小限、博士十二星;大限至流时运限;飞星与宫位详查
六爻 硬币、时间、数字与选卦起卦;明动暗动、世应、六亲六神、旺衰空破、伏神;互卦、错卦、综卦;应期线索;逐爻详查
梅花易数 年月日时、物数声数、字占、丈尺与方位起卦;体用生克、月令旺衰、应期线索
奇门遁甲 转盘与飞盘,拆补、茅山与节气均分局法;九宫、八门、九星、八神、值符值使、格局;宫位详查
大六壬 天地盘、四课三传、十二天将、遁干、神煞与课体;本命行年;课传详查
小六壬 · 太乙 小六壬起课与宫位落点;太乙九星观测与传统七十二局
塔罗 78 张完整牌面与逆位,9 种牌阵与自定义牌阵,星座与元素对应、生命数字
西方占星 本命盘与流运、七种宫制、自定义相位容许度、恒星黄道;单点详查
黄历择日 每日宜忌、方位、十二时辰吉凶、二十八星宿;按事项与多人生肖冲煞筛选吉日
其他 关系合盘(情侣、事业、亲子)、MBTI、面相与手相照片解读、周公解梦、日运与月运、年度报告

结果页只负责排盘与展示,解读统一交给 AI 对话;对话里可以 @ 引用任意命盘和记录。

AI 对话

  • 多模型、思考等级、附件(PDF、Word、Excel)、知识库检索与联网搜索;平台模型按 token 实际用量计费,也可以填自己的 API Key(BYOK),不计费。
  • 15 种内置图表与沙箱 HTML 可视化;引用回答片段继续追问;公开只读的对话分享链接。
  • 表达风格、用户画像、自定义指令与长期记忆;上下文用量显示在输入框里。

Agent

  • 持久执行:任务在后台 worker 中由 Pi Durable 运行,关掉页面、断网或重启服务都不丢进度。
  • 工作区:命盘随模型的查看自动显示、定位与高亮;排盘、详查、合盘与推算时辰的结果可以展开、固定与保存。
  • 计划与代码模式:先研究、经用户批准再执行;在沙箱中组合调用工具。低频工具按需加载,长对话可以 /compact。
  • 协作:分工汇总的协作成员与常驻的后台子分析,按体系专家、研究员、复核员或自定义角色分配工具、指令与模型。
  • 扩展:SKILL.md 技能、外部 MCP 连接器、经 Exa / Tavily 等 MCP 服务路由的联网搜索与读网页,外部工具调用前的确认策略可选。
  • 定时任务、生图与测评:定时把一轮任务追加到固定对话(内置「每日早报」);文生图;运行遥测与多模型测评排行。

Agent 的完整行为与边界见 Agent 手册。

账户、计费与管理

  • 邮箱密码、邮箱验证码、找回密码与 Linux.do 登录。
  • 美元钱包与订阅:按 5 小时、天、周、月或整期发放额度,兑换码、管理员加款、余额购买套餐;配置商户参数后开启易支付(支付宝、微信)。
  • 管理后台:公告、功能开关、计费、AI 服务(网关、模型、models.dev 目录补全)、Agent 扩展(MCP 服务、技能、角色、用户扩展权限)与日志中心(用量、Agent 任务、定时任务、部署日志)。
  • 管理员在侧栏看到当前版本,新版本发布后可以一键更新。
  • 社区、站内通知、记录与知识库;Web 适配桌面与手机,另有 Android / iOS 客户端(Capacitor)。

MCP、Skill 与 SDK

taibu-core 提供 26 个工具:11 个排盘工具与 15 个低频工具(详查、大运、四柱反推、运限、飞星、择日、合盘、推算时辰)。另有 15 个解读方法:每个体系一个默认方法,加上流派方法「盲派八字」、不需排盘的「周公解梦」,以及技法「推理时柱」与「验证前事」。

公共 MCP Server

{
  "mcpServers": {
    "taibu": {
      "type": "streamable-http",
      "url": "https://mcp.mingai.fun/mcp"
    }
  }
}

无需 OAuth、API Key 或会话 Header。服务实现 MCP 2026-07-28,同时接受 2025 年协议的无状态请求。客户端不能自行按需加载工具时,把地址换成 https://mcp.mingai.fun/mcp/core:只列 11 个排盘工具,其余工具经 tool_search / tool_call 使用,给模型看的工具说明约减少六成。

本地 stdio

{
  "mcpServers": {
    "taibu": {
      "command": "npx",
      "args": ["-y", "taibu-mcp"]
    }
  }
}

完全离线运行,只需要 Node.js。设 "env": { "TAIBU_MCP_TOOLS": "core" } 可得到与 /mcp/core 相同的精简列表,见 taibu-mcp。

Skill

skills/taibu-divination 是自包含的 Agent Skill:计算引擎已打包,只要求 Node.js 18+。把整个目录复制到客户端的技能目录(如 Claude Code 的 ~/.claude/skills/)即可,方法卡位于 methods/。

SDK

npm install taibu-core
import { calculateBazi, toBaziText } from 'taibu-core/bazi';
import { executeTool, renderToolResult } from 'taibu-core/mcp';

const chart = calculateBazi({ gender: 'male', birthYear: 1990, birthMonth: 1, birthDay: 15, birthHour: 9 });
console.log(toBaziText(chart));

const result = await executeTool('qimen', { year: 2026, month: 3, day: 19, hour: 21, timezone: 'Asia/Shanghai' });
console.log(renderToolResult('qimen', result).content[0].text);

各领域子路径、输出契约与算法口径见 taibu-core。

全部 26 个工具
工具 功能 提问例子
bazi 八字排盘(公历/农历,神煞,天干五合,地支半合与三会,胎元与命宫;不知时辰时排三柱) “我是 1990 年 5 月 15 日 15 点生,请帮我排盘”
bazi_pillars_resolve 四柱反推出生时间候选(1900–2100) “我的八字是丙午庚寅丙辰癸巳,可能是哪天出生?”
bazi_dayun 大运、小运与流年(太岁标注) “帮我看看接下来十年的大运”
bazi_relations 岁运刑冲合害详查(大运、流年、流月、流日叠加到原局) “我 2027 年流年和原局有哪些刑冲合害?”
bazi_wuxing 五行旺衰详查(月令、通根、自坐、相邻生克、缺失五行;只列事实) “看看我八字日主有没有根”
bazi_liunian_scan 流年扫描(逐年干支、所在大运、与原局和大运的关系,至多 30 年) “扫一下我 2026 到 2035 年的流年”
bazi_hepan 八字合盘(两盘之间的干支关系、日主互见十神、年命纳音;只给事实不打分) “我 1990 年 1 月 15 日 9 点生,她 1992 年 8 月 3 日 14 点生,我们合不合?”
bazi_hour_candidates 推算出生时辰(当天各时辰的候选与区分事实,可带往事年份比对) “我 1995 年 1 月 9 日出生,不知道几点,能帮我推一下时辰吗?”
ziwei 紫微斗数排盘(命主身主、小限、博士十二星、三方四正) “我是农历 1990 年四月初八生,请排紫微盘”
ziwei_horoscope 紫微运限(大限至流时,流年星曜) “帮我看看 2026 年的紫微运限”
ziwei_flying_star 紫微飞星(飞化、自化、四化落宫) “分析一下我命宫的飞星”
ziwei_palace 紫微宫位详查(星曜四化、三方四正、夹宫、宫干飞化与运限叠加) “看看我命宫的三方四正”
liuyao 六爻起卦与分析(含互卦、错卦、综卦) “我想占今年的事业运,请帮我起卦”
liuyao_line 六爻逐爻详查(纳甲、旺衰、空亡、回头生克与变爻) “六爻里官鬼那一爻的旺衰如何?”
meihua 梅花易数(年月日时、物数声数、字占、丈尺、方位、报数) “现在起一卦,看这次合作能不能成”
tarot 塔罗抽牌(9 种牌阵,78 张牌面,逆位,星座与元素对应) “请为我抽一张塔罗牌,看看近期的感情”
almanac 黄历(方位、十二时辰吉凶、二十八星宿) “今天的黄历怎么样?适合搬家吗?”
almanac_select 择日(区间内按事项筛宜忌、避开多人生肖冲煞,至多 92 天) “帮我挑下个月适合结婚的日子,我们属马和属鸡”
astrology 西方占星命盘与流运(三巨头、本命主星、重大流运) “帮我看一下这段时间的占星流运重点”
astrology_point 占星单点详查(落座、传统尊贵、相位与流运触发) “看看我的金星落在哪、和谁有相位”
qimen 奇门遁甲排盘(九宫、八门、九星、八神、值符值使) “用奇门看一下今天谈合作是否顺利”
qimen_palace 奇门宫位详查(天地盘、星门神、旺衰、生克与格局) “奇门里值符落哪一宫?”
taiyi 太乙九星观测与七十二局 “用太乙看一下这个项目的推进情况”
daliuren 大六壬排盘(四课三传、天地盘、天将) “用大六壬看一下这件事的结果”
daliuren_lessons 大六壬课传详查(四课上下、三传递生递克、神将与类神) “细看这课的三传和神将生克”
xiaoliuren 小六壬占测 “用小六壬看一下今天出行顺不顺”

快速开始

本地运行

需要 Docker(含 Compose v2)、Node.js 24 与 pnpm 10。

git clone https://github.com/hhszzzz/taibu.git
cd taibu
pnpm install
pnpm local:update   # 首次:生成配置,构建镜像,启动 db、redis、web、worker、mailpit

浏览器打开 http://127.0.0.1:3080,注册邮件在 Mailpit(http://127.0.0.1:8025)里查看;实际端口以 pnpm local:status 为准。随机生成的密钥和端口保存在 .taibu-local/taibu-v2/,不要公开或提交。

pnpm local:up       # 复用已有镜像启动
pnpm local:status   # 端口与健康状态
pnpm local:logs     # 跟随日志(凭据已脱敏)
pnpm selfhost down --project taibu-v2   # 停止,保留数据卷

注册后把自己设为管理员,再在「设置 → AI 服务」添加网关与模型,步骤见 自托管手册。

生产部署

生产使用 deploy/compose.base.yml + deploy/compose.prod.yml,镜像由 CI 发布在 ghcr.io/hhszzzz/taibu,主机只拉取不构建:

# /opt/taibu/source 是仓库,/opt/taibu/env/ 保存 compose.env 与按容器拆分的私有配置
EDGE_MODE=host deploy/deploy.sh v1.0.1   # 宿主已有 Caddy / Nginx 时
deploy/deploy.sh v1.0.1                  # 由本栈的 Caddy 接管 80/443

脚本会先备份数据库,再执行数据库初始化与迁移,成功后滚动更新并检查健康,失败自动回退。环境变量以 .env.example 为准,邮件、备份、计费与一键更新见 自托管手册,旧部署升级见 升级说明。

架构

浏览器 / App ──► Caddy ──► web(Next.js:页面、API、SSE)
                              │
            ┌─────────────────┼──────────────────┐
            ▼                 ▼                  ▼
  PostgreSQL 17 + pgvector   Redis 8          文件卷
  业务数据 · RLS · 任务     限流 · 缓存 · BullMQ   附件 · 生成图片
            ▲                 ▲                  ▲
            └──────── worker(Agent、文档解析、邮件、定时与维护任务)

taibu-core ──► Web 与 Agent 进程内调用 · taibu-mcp(stdio)· taibu-mcp-server(HTTP)· Skill
组件 说明
Web Next.js 16 模块化单体(standalone),React 19、Tailwind CSS 4、Base UI
认证 Better Auth,独立的 identity schema 与连接角色
数据 Kysely ScopedDb:每个事务设置角色与身份,PostgreSQL RLS 隔离用户数据
后台 同一镜像的 worker:Pi Durable 执行 Agent,BullMQ 处理定时、邮件与维护任务
数据库定义 database/ 保存当前 SQL 与编号迁移,db:init 自动迁移、补齐与收敛
发布 推送 v* 标签后 CI 构建镜像并创建 GitHub Release

模块边界与数据权限见 项目架构。

仓库结构

src/                 Next.js 应用:页面、API 路由、组件与业务模块
packages/core/       taibu-core:算法、工具定义、方法与规范输出(MIT)
packages/mcp/        taibu-mcp:本地 stdio MCP Server(MIT)
packages/mcp-server/ taibu-mcp-server:公共 HTTP MCP Server(MIT)
skills/              taibu-divination Skill 与方法卡源文件
database/            PostgreSQL 当前定义、角色初始化与编号迁移
deploy/              Compose、Caddy、备份、部署与更新脚本
scripts/             构建、数据库工具、自托管、发布与测试
docs/                手册、工程规范与升级说明
android/ ios/        Capacitor 客户端

开发

pnpm test                         # 单元、路由、协议与守卫测试(自动构建所需的包)
pnpm test -- src/tests/chat-route.test.ts   # 只跑指定文件
pnpm lint && pnpm typecheck
pnpm test:db                      # 在临时 PostgreSQL 中验证 SQL、RLS 与并发
pnpm exec playwright install --only-shell chromium   # 首次运行浏览器测试前
pnpm verify                       # 完整验收:构建、全部测试、数据库、认证与浏览器(需要 Docker 与本地栈)

开发约定见 AGENTS.md 与 工程与设计规范,测试分层见 测试与验收。提交使用 Conventional Commits。

文档

文档 内容
自托管手册 本地栈、数据库、邮件、计费、发布、部署与备份
升级说明 从旧部署升级到 1.0.0,以及之后的版本更新
项目架构 运行组成、模块边界、数据权限与计费
Agent 手册 Agent 的任务、工具、扩展、协作、定时任务与计费
MCP 手册 MCP 客户端配置、协议行为、工具与自部署
taibu-core · 算法规则 SDK 用法、输出契约与算法口径
工程与设计规范 代码、组件、前后端、数据安全、测试与文档规范

版本

应用版本以根目录 package.json 为准,遵循 x.y.z:x 是重大架构变更,y 是功能新增,z 是问题修复。npm 包各自维护版本,当前为 taibu-core、taibu-mcp、taibu-mcp-server 4.0.0。发布流程见 自托管手册。

贡献

欢迎提交 Issue 与 Pull Request。提交前请阅读 AGENTS.md,并在 PR 中写明改了什么、为什么改、如何验证。

许可证

本仓库采用混合许可证:

  • packages/core、packages/mcp、packages/mcp-server 采用 MIT,允许商用、再分发与二次开发,需保留版权与许可声明;
  • 其余 Web、服务端、部署与运行时代码采用 AGPL-3.0-only:不禁止商用,但修改后对外提供网络服务时须开放相应源码。

第三方组件的许可见 licenses/ 与 THIRD_PARTY_NOTICES.md。


太卜 · 用 AI 解读命运,用科技传承文化

Made with ❤️ by hhszzzz

评论

暂无评论