产品:AI 命理 / 占卜网页产品 · metasight.cloud · 证据:截图 01–39(2026-08-20 / 2026-08-22)+ 2026-08-22 实机核对(含随缘路由 [38] 与倾听模式 [39] 两次行为取证)+ 官方博客/文档披露 + Round 1–3 交付物 · 本轮为最终架构逆向汇总,后端实现除官方博客披露外一律不标已确认
| 来源 | 内容 | 等级 |
|---|---|---|
| 39 张操作截图 + 2026-08-22 实机核对 | 全旅程页面事实:问事完整链路 [15]–[18]、看运历史对话回放 [36][37]、随缘路由→看运类工具链 [38]、倾听零工具共情回复 [39]、定价 [26]、订阅额度 [34]、档案 [32]、星云图锁定 [30][31]、设置 [35] 等 | 已确认 |
| 官方博客《Serverless 数据库迁移实录》 [23] | Turso(SQLite)→ Neon PostgreSQL 迁移;真太阳时需求:存地理坐标、经纬度查时区、时间格式与时区转换;Serverless 架构;独立开发者 side project | 已确认(官方披露,唯一后端硬证据) |
| 官方文档(内嵌飞书 wiki 弹窗) [27] | @符号调用命盘、自然语言多人合盘、生辰时间矫正 & 子时盘处理、喜用神自研算法 | 已确认(官方声明);实际行为 未实测 |
| Round 1–3 交付物 | 用户旅程图、Agent 契约(A1/A2/A3/A4 + S1–S4 + 工具总表 + 全局上下文字段表)、A1/A2 功能等价 System Prompt | 继承各级标注 |
| 缺口 | 影响 |
|---|---|
| LLM 型号、提供方、模型网关 | 模型接入与路由层(§9)只能写「单一可见模型行为」,无法确认选型 |
| 起卦调用方(系统预执行 vs A1 工具调用)、问事链路为何不展示工具卡片 | 编排层结构存在两种等价读法 |
| 额度计次规则(计次点、哪些动作计次、耗尽拦截话术) | 计费相关设计只能给建议,无法还原现状 |
| A3 路由决策主体/准则与目的地边界([38] 仅天赋潜能类→看运一例,决策类/情绪类样本未取)、A4 倾听是否计次/多轮形态/危机倾诉兜底、每日运势、星云图生成过程、@命盘/合盘 | 路由与倾听的「存在与形态」已闭环([38][39]),机制细节仍只有单一样本或入口级证据 |
| 看运实时提交链路([20][21] 无响应)截图时机 vs 真实失败无法区分 | 「静默失败」标为缺陷实例存在、归因未知 |
| 任务队列、日志、链路追踪、评测、监控 | §10 只能写「需要的能力 / 不能确认的原因」 |
从用户视角还原的功能域,按页面实际证据检查;每域标注对应层级与证据等级。
| 功能域 | 包含内容 | 证据 | 等级 |
|---|---|---|---|
| 获客与内容 | 官网 hero / features / ai-showcase / divination-methods / pricing / reviews / faq;博客(工程实践/产品更新等 6 分类);文档弹窗(飞书 wiki);语言切换 | [01][22]–[27] | 已确认 |
| 账号与权限 | 注册(邮箱+邀请码可选+Cloudflare Turnstile)、登录(邮箱密码/验证码/Google/GitHub/忘记密码);个人资料(头像/姓名/邮箱不可改/语言/默认运势系统) | [03][04][35] | 已确认 |
| Onboarding | 5 步向导:欢迎 → 出生时间(阳历/阴历、时辰可留空)→ 个人信息(性别必填,感情/行业/职业/命理了解程度可选);步骤指示器错位缺陷 | [05]–[11] | 已确认 |
| 核心问答(聊天工作台) | 四模式 tab(随缘/看运/倾听/问事)+ 各模式副标题与推荐问题集;卦象卡片、命盘卡片、工具调用卡片、思考折叠条、流式输出、暂停、赞/踩、分享;历史对话侧栏(自动命名);随缘路由→看运类工具链 [38];倾听零工具纯共情回复 [39] | [12]–[21][28][29][36]–[39] | 已确认 |
| 命理资产 | 命运档案(八字命盘 CRUD、主八字标记、可搜索、可新增他人);人生星云图(查看/重新绘制/历史报告;已生成但锁定);每日运势(八字可用、紫微斗数即将推出) | [30]–[33] | 已确认;星云图生成过程 未知 |
| 订阅与计费 | 四档定价(免费 5 次/月、微光 ¥19.9/周 30 次、烛照 ¥39.9/月 100 次+星云图、洞见 ¥99.9/月 200 次+真人 1v1);月度解读次数 2/5 + 重置日;兑换码;邀请 2 好友解锁星云图 | [26][31][34][35] | 已确认;计次规则 未知 |
| 增长裂变 | 注册邀请码(可选)、设置-邀请好友、邀请 2 人解锁星云图 | [04][31][35] | 已确认(入口);计数联动 合理推断 |
| 错误反馈与任务状态 | 「聊天服务正常」状态条;生成中暂停按钮;提交后 loading/报错/重试引导完全缺失;额度将尽无预警 | [14][16][20][21][28] | 已确认(缺失本身是事实) |
选取证据最完整的任务:「看运模式问年度运势」(历史对话「年度运势分析」回放 [36][37],工具卡片文字以实机核对为准)。每步写清触发者/处理者/读取/判断/工具/结果/写回/确认/交接/失败分支,按五流展开。
| 步骤 | ① 用户交互流 | ② Agent 控制流 | ③ 工具调用流 | ④ 数据与全局上下文流 | ⑤ 资产流 | 失败分支 / 用户确认 |
|---|---|---|---|---|---|---|
| P1 进入看运 [19] |
用户切「看运」tab,看到副标题「根据生辰,解读过去、现在与未来」与运势类推荐问题 | 编排层将「当前模式=看运」写入会话上下文,决定后续 Agent 行为配置与工具集注入方式 | 无 | 读:模式 tab 状态(前端);写:会话模式字段推断 | 无 | 倾听 tab 副标题未随切换更新([29])——证明模式状态与文案上下文存在脱钩实例 缺陷 |
| P2 提交问题 [20][21] |
用户输入「今年我的运势如何」并提交(触发者=用户) | A2 接管,进入 planning:解析时间语义(「今年」→2026)推断,判定需取数(命盘+时间流) | 无(尚未调工具) | 读:用户问题文本、当前日期(推断作为「今年」的解析基准) | 无 | 现状:提交后无 loading/无报错/无重试引导([20][21] 静默无响应);无任何用户确认门 缺陷 建议:超时重试一次 + 显式报错 + 保留输入 建议设计 |
| P3 额度检查 计次点未确认 |
用户无感知 | 无证据表明 A2 执行前校验额度 未知 | 额度检查与计次功能命名(S3):读订阅档位+已用次数 → 放行/拦截存在性推断,拦截行为未确认 |
读:BillingContext(档位、2/5、重置日 [34]) | 无 | 额度耗尽时的拦截话术全产品无证据 未知;建议:提交前预估+拦截+告知重置时间与升级入口 建议设计 |
| P4 查询命盘 [36] 工具卡片① |
用户看到工具调用卡片「查询命盘-主命盘」+ 命盘卡片(巳/丑/辰/午、[性别称谓已脱敏]:庚(金)) | A2 自主决策调用(卡片顺序与问题语义对齐支持此读法)推断;处理者=A2 | 查询命盘半官方:输入=档案定位符(默认=主命盘)→ 输出=四柱/日主/性别称谓 |
读:ProfileContext 主命盘档案(Onboarding 经 S1 写入 [08]→[32]);写:工具结果进入回复上下文(具体注入机制未知)(英文摘要开篇复述 "User's Bazi…" [36]) | 命盘档案为只读引用,不产生新版本 | 无档案/时辰留空时的降级行为无证据 未知;建议:无档案→引导建档,缺时辰→显式声明时柱缺失 建议设计;调用不经用户确认 事实 |
| P5 查询时间流 [36] 工具卡片② |
用户看到工具卡片「查询时间流-2026年流年丙午·七杀·天河水」 | A2 在拿到命盘(日主[日主已脱敏])后发起第二次调用——顺序固定为先命盘后时间流(十神推算依赖日主)顺序依赖归因 | 查询时间流半官方:输入=目标年份(2026,由问题语义解析推断)+命盘 → 输出=流年干支丙午/十神七杀/纳音天河水;是否含大运 未知(正文引用大运 [37]) |
读:P4 的命盘结果、目标时段;写:时间流数据进入回复上下文(具体注入机制未知)(DivinationContext) | 时间流为派生计算结果,是否落库复用(每日运势/星云图共享)未知 | 工具失败处理无证据;建议:重试一次→降级(仅命盘静态分析+声明缺时间流)建议设计 |
| P6 流式生成解读 [36][37] |
「思考了片刻」折叠英文推理 → 分节中文长文(…三、财运 / 四、健康与身心…,断语式标题,先断语后展开)→ 免责声明固定文案 | A2 基于工具返回做命理推演(流年七杀→「有财可求但需主动出击」;火旺克金→「注意呼吸与情绪」),论断与工具数据逐字可互证 事实 | 流式文本生成功能命名:调用 LLM,输入=问题+命盘+时间流+分节模板 → 输出=分节长文 |
读:DivinationContext 全量取数结果 + 平台模板(E 类);写:思考摘要+正文随对话写入 | 无独立资产,产物依附对话记录 | 中断/暂停行为在实时链路未取证 未知;英文思考在中文语境出戏 缺陷观感;无结果质量自检证据,建议校验干支一致性 建议设计 |
| P7 落库与计次 [34][36] |
解读完整呈现,底部出现点赞/点踩/分享图标 | A2 或编排层触发持久化与计次(写入方未确认) | 对话记录持久化功能命名:完整对话(命盘卡片/思考/工具卡片/正文)→ 历史列表条目(自动命名「年度运势分析」);额度计次:月度解读次数计数(2/5) |
写:ConversationContext(对话记录,2 天后可完整回看 [36])、BillingContext(计数 -1推断,计次点未确认) | 产生资产:一条可回看的对话记录;对话进入左侧栏历史列表 | 计次失败/落库失败的行为无证据;建议:失败不阻塞展示、记录补偿、中断不重复计次 建议设计 |
| P8 反馈与交接 [37] |
用户可点赞/点踩/分享,或继续追问、或转去看星云图/每日运势 | 无下游 Agent——任务终结于本条对话 事实 | 无 | 写:赞/踩反馈状态;去向(是否回流排序/训练/客服)未知,疑似只写不读 | 对话资产持续可访问;是否反哺星云图/档案 未知 | 无确认门、无完成校验证据;建议:完成条件显式化(落库+计次各一次且仅一次)建议设计 |
不预设每层已确认;每层标注组件与其证据等级。全景图见 §13。
| 层 | 组件 | 确认程度 |
|---|---|---|
| L1 用户与渠道层 | 官网着陆/定价/博客/文档弹窗(飞书 wiki)[01][22]–[27];注册登录(邮箱/验证码/Google/GitHub + Cloudflare Turnstile)[03][04];邀请裂变(邀请码/邀请好友/邀请 2 人解锁)[04][31][35];语言切换(简中)[35] | 已确认 全部有页面证据 |
| L2 交互与工作台层 | 聊天工作台(四模式 tab、推荐问题、输入框、状态条);结果组件(卦象卡片/命盘卡片/工具调用卡片/思考折叠条/暂停按钮/赞踩分享);历史对话侧栏;底部工具栏六入口(BETA);订阅/设置/档案/星云图/每日运势页面 | 已确认 组件全部可见;缺陷:提交无 loading/报错、步骤指示器错位、模式副标题脱钩、淡入动画依赖真实交互 |
| L3 产品应用层 | Onboarding 向导模块 [05]–[11];对话管理(自动命名标题、历史列表)[36];命运档案 CRUD(主八字标记/搜索/新增)[32];星云图模块(查看/重新绘制/历史报告)[30];每日运势模块(八字可用/紫微即将推出)[33];订阅管理(额度/重置日/兑换码)[34];设置模块(六项)[35] | 已确认 均为可见 CRUD/流程模块 |
| L4 Agent 与流程编排层 | A1 问事解读 Agent [15]–[18];A2 看运解读 Agent [36][37];A3 随缘模式路由器(路由行为 [38]:「我天生适合做什么」→ 看运类工具链,决策主体/准则仍为推断);A4 倾听 Agent(零工具、不读命盘、共情三段式 + locale 注入 [39]);模式注入编排(问事不起盘/看运查命盘/倾听零工具的行为分野);无确认门、无可见重试、无可见状态机 | A1/A2/A4 已确认(行为可见,A4 为单一样本);A3 路由行为 已确认、决策主体/准则 合理推断;编排机制 合理推断 |
| L5 工具与服务层 | 工具:查询命盘、查询时间流(半官方,卡片文案 [36])、流式文本生成、对话记录持久化、额度检查与计次、@命盘检索/多人合盘(文档声明 [27],未实测);系统服务:S1 排盘(含真太阳时/经纬度时区换算博客[23]、生辰矫正/子时盘文档[27])、S2 起卦、S3 额度计次、S4 星云图生成器 |
S1/工具卡片/持久化 已确认;S2 产出物 已确认(调用方 未知);S3 计数 已确认(规则 未知);S4 未知(仅锁定态) |
| L6 模型接入与路由层 | 单一可见 LLM 行为:英文推理摘要外露("Let me analyze this hexagram…" / "User's Bazi: Birth: [出生时间已脱敏]…")[16][36][38] 表明是通用大模型;倾听模式思考摘要为中文(直接可读,含角色设定复述与 locale 决策)[39]——同一产品内摘要语言不一致;流式输出、可暂停;A1/A2/A4 是否同一底层模型不可见(A4 行为角色有证据,部署形态未知 [39]) | 单一模型行为 已确认;型号/提供方/动态路由 未知——按规范,页面只出现一个模型行为,不得推断具备动态路由 |
| L7 全局上下文与数据层 | 按领域拆分:UserContext(账户资料/语言/默认运势系统)、ProfileContext(命盘档案/主八字标记)、DivinationContext(卦象/时间流,对话级)、ConversationContext(历史对话/思考摘要/工具痕迹/赞踩)、WorkflowState(对话状态机)、BillingContext(档位/月度计数/重置日/兑换码/邀请关系)、NebulaAssetContext(星云图资产与版本)。详见 §7 | UserContext/ProfileContext/ConversationContext/BillingContext 已确认(有页面字段);DivinationContext 已确认(对话级数据可见);WorkflowState 建议设计(无状态机证据);NebulaAssetContext 合理推断 |
| L8 知识与公共资产层 | 六十四卦/爻辞知识体系(箴言直引贲卦上九爻辞「白贲无咎」[18]);十神/纳音/五行生克术语体系 [37];固定输出模板(四段骨架+免责声明固定文案,两模式逐字一致 [18][37]);推荐问题集(每模式 8 条)[12][15];喜用神自研算法(文档声明 [27]) | 知识与模板 已确认(产物中直接可见);注入机制(Prompt vs 编排层)合理推断;喜用神算法 文档确认(实现 未知) |
| L9 基础设施与治理层 | 数据库:Neon PostgreSQL(自 Turso/SQLite 迁移)官方博客[23];Serverless 运行时官方博客[23];Cloudflare Turnstile 人机验证 [04];前端托管/ CDN / 模型网关 / 任务队列 / 日志 / 链路追踪 / 评测 / 成本控制——无证据 | Neon/Serverless/Turnstile 已确认;其余 未知(§10 只写需要的能力与可能选型) |
| 角色 | 调用工具 / 服务 | 读上下文 | 写上下文 | 交接 | 证据 |
|---|---|---|---|---|---|
| A1 问事解读 元见·六爻 | 流式文本生成;起卦归属未确认(主设计:S2 提交时预执行、卦象作必填输入注入) | 模式=问事;卦象数据(DivinationContext);输出模板 | 对话记录(ConversationContext);触发计次(BillingContext)推断 | 无下游;终结于本条对话 | 已确认 [15]–[18];不读命盘 推断 |
| A2 看运解读 元见·命盘 | 查询命盘→查询时间流→流式文本生成(自主决策推断);@命盘/合盘登记为待验证扩展 | 模式=看运;主命盘定位(ProfileContext);当前日期;输出模板 | 对话记录+工具痕迹;赞踩状态;触发计次推断 | 无下游;时间流是否与每日运势/星云图共享 未知 | 已确认 [36][37] |
| A3 随缘路由器 | 模式分发功能命名([38] 证明分发到看运类链路真实执行:查询命盘×2→查询时间流→分节解读) | 用户问题;或读档案完备度未知 | 「本次实际使用模式」字段未知 | → A1/A2/A4 之一([38] 实例→看运类链路)目的地集合推断 | 路由行为 已确认 [38];决策主体/准则 合理推断(单一样本不能排除「随缘=默认看运」) |
| A4 倾听 Agent 独立人格 | 零工具:仅 流式文本生成(不查询命盘/时间流、不起卦) | 用户倾诉文本;locale=zh(显式注入);当前模式=倾听;会话轮次(首轮感知) | 对话记录(含中文思考摘要与正文,标题「近期压力疏导」);是否计次未知 | 无下游;是否经随缘路由可达未知 | 已确认 [39](单一样本)+ 入口 [28][29];人格独立(角色设定显式不同) |
| S1 排盘服务 非 LLM | 真太阳时换算(经纬度→时区博客)、生辰矫正/子时盘文档、喜用神算法文档 | Onboarding 表单、档案页新增表单 | 命盘档案(ProfileContext,含主八字标记) | → A2(经查询命盘)、档案页、@调用/合盘 | 已确认 产出物 [08]→[32][36];非 LLM 推断 |
| S2 起卦服务 非 LLM | 六爻摇卦(随机/时间种子推断) | 问事提交信号 | 卦象(DivinationContext)+ 卦象卡片渲染 | → A1(注入推理上下文) | 已确认 产出物 [16];调用方 未知 |
| S3 额度计次 | 档位维护、月度计数、兑换码改写档位 | BillingContext(档位) | 已用次数(2/5);重置日 | → 订阅页展示;A1/A2 提交前是否消费 未知 | 已确认 计数 [26][34];规则 未知 |
| S4 星云图生成器 | 生成「3D 多维运势可视化/100 年轨迹/关键年份解读」资产(含历史报告版本推断) | 命盘+时间流推断 | 星云图资产(NebulaAssetContext,状态=已生成但锁定) | → 星云图页(被权限拦截 [31]) | 未知(仅锁定态 [30][31],实机核对) |
不画无结构大框。按领域拆为 7 个 Context(Context 名为推导模板名,非官方命名);只有页面证据的字段标「真实字段」,否则标推断/建议。
| Context(模板名为推导) | 字段(实例) | 生产者 | 消费者 | 证据等级 |
|---|---|---|---|---|
| UserContext | 姓名「测试用户」、头像、邮箱(不可改)、语言(简中,locale=zh)、默认运势系统(八字)、邀请码 | 注册 [04] / 设置页 [35] | 聊天主页问候 [28]、设置页、每日运势入口 [33]、A4 倾听 Agent(locale 显式注入推理上下文 [39],全产品首次直接证实用户偏好字段注入) | 已确认(真实字段) |
| ProfileContext 命盘档案 |
出生时间([出生时间已脱敏],阳历/阴历、时辰可留空)、性别(已脱敏,必填)、个人背景可选字段(感情/行业/职业/命理了解程度)、主命盘([四柱已脱敏],日主[日主已脱敏],「主八字」标记)、他人命盘列表、(地理坐标博客[23]披露需存储) | Onboarding [08][09] → S1 排盘 → 档案页 [32]「+新增」 | A2(经查询命盘工具 [36])、档案页、@调用/合盘(文档 [27]) | 已确认;个人背景字段是否被消费 未知(疑似只写不读);地理坐标字段 博客确认(页面不可见) |
| DivinationContext 对话级命理数据 |
卦象(贲→旅、变爻三/上爻、逐爻老少);时间流(2026 流年丙午·七杀·天河水,或含大运来源未知) | S2 起卦 [16];查询命盘/查询时间流工具 [36][38] | A1/A2 推理上下文(英文摘要逐行复述,证明已在上下文中)、卦象/命盘卡片 UI | 已确认(数据在上下文中有直接证据);生命周期=单条对话 推断 |
| ConversationContext | 对话列表(自动命名标题、相对时间);对话内:问题、卦象/命盘卡片、思考摘要(问事/看运/随缘英文 [16][36][38],倾听中文 [39])、工具卡片(倾听无 [39])、正文、免责声明、赞/踩状态 | A1/A2/A4 完成后写入(写入方未确认) | 左侧栏历史列表 [36][38][39];历史回放完整可看(含工具链与思考摘要) | 已确认;写入方 推断 |
| WorkflowState 对话状态机 |
waiting_input / executing / generating / interrupted / completed / failed 等 | — | — | 建议设计:页面仅有「生成中可暂停」「服务正常状态条」等碎片状态,无统一状态事实源证据——静默失败 [14][20][21] 正是缺这一层的症状 |
| BillingContext | 订阅档位(基础/微光/烛照/洞见)、月度解读次数(2/5)、重置日(2026-09-20)、兑换码、邀请关系(邀请 2 人解锁星云图)、档案人数上限(免费档限 3 人) | 订阅系统/兑换码 [34];S3 计次;注册/邀请 [04][35] | 订阅页 [34]、定价页 [26]、星云图锁定判断 [31];A1/A2 提交前是否读取 未知 | 已确认(字段);计次规则与拦截消费 未知;邀请-解锁联动 推断 |
| NebulaAssetContext | 星云图资产(状态=已生成但锁定)、历史报告版本(「重新绘制/历史报告」按钮暗示版本化) | S4(触发时机未知) | 星云图页(被权限拦截 [31]) | 合理推断(仅锁定态与按钮证据 [30][31]) |
区分「项目/用户数据」与「可复用知识」,回答规范的六个问题。
| 问题 | 结论 | 等级 |
|---|---|---|
| 知识如何变成模型可执行信息? | 两条路径并存:①模板与规则注入 Prompt——四段输出骨架、免责声明固定文案(问事/看运逐字一致 [18][37])、断语式小节风格,说明存在平台级输出模板;②确定性计算结果注入上下文——卦象/命盘/流年干支由 S1/S2/工具算好后喂给模型(英文摘要逐行复述可证),模型只做「解释」不做「计算」。命理知识本体(六十四卦爻辞、十神生克)由模型参数知识与注入数据共同支撑 | 注入事实 已确认;模板化机制 推断 |
| 资产如何跨步骤复用? | 命盘档案是核心复用资产:Onboarding 一次录入 → S1 排盘 → A2 查询命盘消费 →(推断)每日运势/星云图共用同一档案。时间流计算结果是否在 A2/每日运势/星云图间共享无证据——若不共享则存在同一年份重复计算 | 档案复用 已确认;时间流共享 未知 |
| 系统如何知道模型能力边界? | 无证据。A1 不持有命盘/时间流工具(链路无卡片)说明工具集按模式做了静态隔离推断;但「模型知道自己不能干什么」完全依赖 Prompt 约束,未见工具级强制 | 合理推断 |
| 安全/计费规则在 Prompt 里还是工具强制执行? | 免责声明是 Prompt/模板层(固定文案出现在正文末尾);「一事一占,再占不灵」目前看只是文案层约束 [13];计费规则(额度拦截)应为工具强制,但拦截点未出现在任何截图中——最大黑盒。建议:计费/权限一律由工具层(S3)强制,不依赖 Prompt | 现状 未知;原则 建议设计 |
| 用户反馈是否沉淀为知识? | 赞/踩入口存在 [37],但无任何证据显示反馈影响后续输出(推荐问题未个性化、结果无变化),疑似只写不读 | 未知(疑似未闭环) |
| 私有与公共资产如何隔离? | 私有:命盘档案(含他人命盘,受档位人数上限约束 [26])、对话记录、星云图——均属用户账户域;公共:推荐问题集、输出模板、免责声明、命理知识、喜用神算法。隔离机制本身(行级权限/租户隔离)无证据,属 Neon 数据库上的应用层实现推断 | 边界划分 已确认;实现机制 未知 |
| 场景 | 能力需求 | 成本/延迟约束 | 切换策略 |
|---|---|---|---|
| A1 问事解读 | 中文长文、卦象-情境映射、文学性箴言 | 中(单次约 17 秒 [16]) | 主模型失败 → 同档备选一次重试 → 显式报错 |
| A2 看运解读 | 工具调用(function calling)稳定性、长上下文(命盘+时间流+模板)、数据一致性 | 中—高(两次工具往返+长文) | 工具调用失败重试一次 → 降级声明 → failed |
| A3 路由分类(若存在) | 轻量分类即可,可用小模型/规则 | 低延迟优先 | 分类置信度低 → 默认模式 + 披露路由结果 |
| A4 倾听(已确认存在 [39]) | 共情对话、低延迟流式(现状零工具纯 LLM) | 低成本高频 | 独立小模型档;危机倾诉需安全兜底(现状无证据) |
按规范只写:需要的能力 / 已知选型 / 可能选型 / 推荐方案 / 不能确认的原因。除博客披露外一律不标已确认。
| 能力 | 已知 / 证据 | 可能选型与推荐 | 确认程度 |
|---|---|---|---|
| 关系数据库 | Neon PostgreSQL(Serverless);由 Turso(SQLite)迁入,动因是真太阳时需求(存地理坐标、经纬度查时区、时间类型与时区转换)[23] | 已落地;建议:对话/工具调用/计次事件分表,计次用事务或原子计数器防并发重复扣 | 已确认(官方博客) |
| 运行时形态 | Serverless(「不需要单独管理数据库服务器」「冷启动」语境)[23] | Vercel / Cloudflare Workers 等 Serverless 平台之一 | Serverless 已确认;具体平台 未知 |
| 人机验证 | Cloudflare Turnstile(注册页「驗證您是人類」)[04] | — | 已确认 |
| 认证 | 邮箱密码 / 邮箱验证码 / Google / GitHub OAuth [03] | 自建或 Auth 服务(如 Auth.js/Clerk/Supabase Auth),无证据 | 能力 已确认;实现 未知 |
| 前端托管 / CDN | 无证据;页面有淡入动画且自动截图时渲染不完整,暗示重客户端渲染推断 | 与 Serverless 平台同栈(Vercel/CF Pages) | 未知 |
| LLM 接入 / 模型网关 | 无证据;页面展示的英文摘要 外露说明无中间包装层推断 | 直连官方 API 或经网关(OpenRouter/One-API 等);推荐加网关做重试、脱敏(隐藏原始英文思考)、成本归集 | 未知 |
| 支付 / 订阅 | 四档定价+兑换码 [26][34];支付方式页面未见 | 微信支付/支付宝/Stripe 之一(面向中文用户+海外域名,可能两者) | 档位 已确认;支付通道 未知 |
| 任务队列 / 异步 | 无证据;星云图「已生成但锁定」暗示存在异步/预生成任务推断 | Serverless 定时任务(cron)或轻量队列即可;独立开发者规模不需要重型 MQ | 未知 |
| 日志 / 链路追踪 / 评测 | 无证据;静默失败缺陷 [14][20][21] 若无追踪将极难定位推断 | 推荐:每次对话一条 trace(提交→工具→模型→落库→计次),失败节点可见 | 未知 |
| 命理计算库 | 排盘为自研或库实现未知;真太阳时/时区逻辑自研(博客详述)[23];喜用神「自研算法」(文档 [27]) | — | 能力 已确认;实现 未知 |
实体名为推导(模板名不代表真实表名);关系标注「页面证据」或「推导」。存储底座为 Neon PostgreSQL官方博客[23]。
| 实体(推导命名) | 关键字段(实例) | 证据 | 等级 |
|---|---|---|---|
| User | id、用户名「测试用户」、邮箱、头像、语言、默认运势系统、第三方登录绑定(Google/GitHub) | [04][28][35] | 已确认 |
| MingProfile(命盘档案) | 所属用户、姓名、出生时间(阳历/阴历原值)、时辰可空、性别、四柱([四柱已脱敏])、日主([日主已脱敏])、是否主八字、(地理坐标博客) | [08][09][32][36] + 博客[23] | 已确认;坐标字段页面不可见博客确认 |
| Conversation | id、所属用户、模式(问事/看运/…)、自动命名标题(「年度运势分析」「Offer选择分析」)、创建时间、相对时间展示 | [36] 侧栏 | 已确认 |
| Message(对话内容) | 对话 id、角色(用户/元见)、问题文本、思考摘要(英文)、正文(分节)、免责声明、卡片负载(卦象/命盘/工具)、时间戳 | [16]–[18][36][37] | 已确认(内容);拆分粒度 推导 |
| DivinationChart(卦象) | 对话 id、本卦(贲/22)、变卦(旅/56)、变爻(三爻、上爻)、逐爻阴阳老少 | [16] | 已确认(产出物);独立成表 推导 |
| ToolCall(工具调用痕迹) | 对话 id、工具名(查询命盘/查询时间流,半官方)、参数(主命盘/2026)、返回摘要(丙午·七杀·天河水) | [36] 工具卡片(实机核对) | 已确认(存在);存储结构 推导 |
| TimeFlowResult(时间流) | 命盘 id、目标年份(2026)、流年干支(丙午)、十神(七杀)、纳音(天河水)、(大运来源未确认) | [36][37] | 已确认(返回内容);是否落库 未知 |
| Subscription | 用户 id、档位(基础/微光/烛照/洞见)、周期(周/月)、到期时间 | [26][34] | 已确认 |
| QuotaCounter(月度额度) | 用户 id、已用/上限(2/5)、重置日(2026-09-20) | [34] | 已确认(字段);计次事件流 未知 |
| RedeemCode | 码(XXXX-XXXX-XXXX)、可兑换档位、状态;兑换规则 FAQ(续费/升级/高级用低级码) | [34] | 已确认 |
| Invitation | 邀请人、被邀请人、注册邀请码(可选);邀请计数 → 星云图解锁(满 2 人) | [04][31][35] | 入口 已确认;计数联动 推导 |
| NebulaReport(星云图资产) | 用户/命盘 id、体系(八字;西方星盘敬请期待)、状态(已生成但锁定)、版本(重新绘制/历史报告)、3D 可视化数据 | [30][31](实机核对) | 合理推断(仅锁定态+按钮证据) |
| Feedback | 消息 id、赞/踩、时间;去向未知 | [37] 入口 | 入口 已确认;消费 未知 |
| DailyFortune(每日运势) | 用户/命盘、日期、体系(八字);生成链路未进入取证 | [33] 仅入口 | 未知 |
实线消息=已确认链路 [36][37](实机核对);alt 块标注现状失败分支([20][21] 静默无响应)与建议修复。建议设计步骤以注释标明。
自上而下 9 层。实线=已确认,虚线(黄)=合理推断,点线(蓝)=建议设计,点线(红)+⚠节点=当前没做好的机制。箭头标签注明调用/读取/写入/展示关系;红色 ⚠ 节点挂在问题发生的层上。图 A 为只保留核心链路的可读主图;图 B 为全量组件与关系总图(较宽,以 100% 原始尺寸渲染,可横向滚动)。
| 问题 | 从图中能否回答 |
|---|---|
| 需求从哪进入? | 能:L1 官网 → L2 聊天工作台四模式输入框(推荐问题降门槛) |
| 谁决定调哪个 Agent? | 能:用户手动切 tab(已确认);倾听由 A4 接管(实线=已确认 [39]);随缘模式下 A3 路由器(路由行为已确认 [38],决策主体虚线=推断) |
| 每个 Agent 输入从哪来? | 能:A1=问题+卦象(C3 注入);A2=问题+主命盘(T1 读 C2)+时间流(T2) |
| 调用什么工具? | 能:A2 依次调查询命盘/查询时间流(实线);A1 无可见工具调用 |
| 产物由谁生成? | 能:LLM 流式生成正文;S1/S2 生成结构化命理数据 |
| 结果存哪? | 能:T4 → C6 → Neon PostgreSQL |
| 下游如何拿到上一步资产? | 能:命盘档案(C2)被 A2/档案页/星云图复用;时间流共享机制未知(缺口) |
| 用户如何确认修改? | 能(否定答案):全链路无确认门,提交即生成;追问机制无证据 |
| 失败后怎么办? | 能(暴露问题):现状=静默失败 ⚠PB1;建议=状态机 C4 + 显式报错(蓝点线) |
| 余额不足在哪拦截? | 能(暴露问题):⚠PB2 计次口径不明;建议在 C5→A1/A2 预检(蓝点线) |
| 知识从哪来? | 能:L8 命理知识/模板/推荐问题集 + 官方文档声明的喜用神算法 |
| 如何保证资产一致性? | 能(暴露问题):无机制——档案变更后对话缓存、时间流共享均无证据 |
| 为什么会出现状态不一致? | 能:⚠PB3——无统一状态事实源(C4 缺失),前端状态各自为政 |
| 系统如何知道任务真正完成? | 能(否定答案):无完成门/质量校验证据;建议输出自检与完成条件显式化 |
| 维度 | 现状(As-Is) | 证据 | 等级 |
|---|---|---|---|
| 入口与路由 | 用户手动切模式 tab 决定 Agent 行为;「随缘」路由真实发生([38]:天赋潜能类问题→看运类工具链),但无路由结果披露、决策主体与准则未知;倾听由独立人格 A4 接管(零工具纯共情 [39]) | [13][19][28][29][38][39] | 已确认(路由行为/倾听形态)/ A3 决策主体 推断 |
| 任务受理与状态 | 无受理回执:提交后无 loading/任务态/失败提示;唯一状态可见性是「聊天服务正常」横幅与生成中暂停按钮 | [14][16][20][21][28] | 已确认(缺失即事实) |
| 数据供给 | 结构化命理数据(命盘/卦象/流年)由确定性服务算好后注入模型——「系统计算、模型解释」,分工正确 | [16][36] + 博客[23] | 已确认 |
| 工具调用 | A2 自主调 2 个工具(顺序:先命盘后时间流);工具调用经卡片透明展示;A1 无可见工具调用 | [16][36] | 已确认 |
| 结果质量校验 | 无校验机制证据;所幸正文与工具数据一致性(丙午·七杀→火旺金受克)靠模型自觉达成 | [37] | 未知(无机制证据) |
| 计费 | S3 维护月度计数(2/5、重置日)并在订阅页展示;计次点、拦截行为、耗尽话术全部无证据;额度将尽无预警 | [26][34] | 计数 已确认;规则 未知 |
| 权限 | 星云图「已生成但锁定」——生成先于权限校验;解锁路径=烛照版或邀请 2 人 | [30][31](实机) | 已确认 |
| 反馈闭环 | 赞/踩入口存在,去向无证据,疑似只写不读 | [37] | 未知 |
| 幂等与重试 | 无任何幂等/重试机制证据;用户连点提交、网络重发时的行为完全黑盒 | — | 未知 |
| 状态一致性 | 前端状态各自为政:步骤指示器错位、模式副标题脱钩、页面展示英文思考摘要、旧版 404 | [06]–[11][16][25][29][36] | 已确认(缺陷实例) |
| 基础设施 | Serverless + Neon PostgreSQL(自 Turso 迁入);Turnstile 人机验证;独立开发者运维 | [04] + 博客[23] | 已确认(官方披露) |
仅针对已暴露问题与证据空白给建议,不泛化加码。每条对应 As-Is 行。
| 机制 | To-Be 设计 | 解决的现状问题 | 优先级 |
|---|---|---|---|
| 统一状态事实源(WorkflowState) | 每条对话一个显式状态机(submitted→executing→generating→completed/failed),前端所有 loading/卡片/按钮只读状态机,不再各自维护 UI 状态 | 静默失败、步骤指示器错位、模式副标题脱钩(⚠PB1/PB3 同根因) | P0 |
| 任务受理回执 + 显式失败 | 提交即返回任务 id 与受理态;超时自动重试一次;失败显式报错 + 保留输入 + 重发按钮 | [14][20][21] 三张「提交后无响应」截图 | P0 |
| 额度预估、冻结与透明计次 | 提交前预检额度(不足→拦截+重置日+升级入口);一次完整解读计一次且仅一次;中断/重试/工具重调不重复计次;计次事件留痕可对账(修复「4 条对话 vs 2/5」对不上) | 计次口径黑盒、耗尽无话术、无预警 | P0 |
| 结果质量校验(完成门) | 输出后自检:四段齐全、干支/十神/纳音与工具返回逐字一致、免责声明原文;失败修正重出,不得口头声称完成 | 结果正确性完全依赖模型自觉 | P1 |
| 幂等键 | 提交带幂等键(问题+时间窗),重复提交合并为一条链路,防双卦象/双计次/双记录 | 连点提交与网络重发行为黑盒 | P1 |
| 权限前置 | 星云图「查看」点击时先判权限再触发生成;免费档给一次局部预览替代全锁 | 「已生成但锁定」的生成成本与体验落差 [31] | P1 |
| 思考摘要本地化 | 模型网关层把页面展示的英文摘要 改写为中文命理「推演过程」摘要(或默认折叠到底) | 页面展示英文思考摘要破坏玄学信任感 [16][36] | P1 |
| 档案变更失效机制 | 命盘档案修改/新增后,后续对话必须重新取数,禁止跨对话脏缓存 | 资产一致性无机制(自检第 12 问) | P2 |
| 反馈闭环 | 赞/踩至少回流到:结果质量看板 + 推荐问题排序;或下架入口,避免收集不用的数据 | 赞踩疑似只写不读 [37] | P2 |
| 全链路追踪 | 每对话一条 trace(提交→工具→模型→落库→计次),失败节点可查——独立开发者尤其需要,否则静默失败无法定位 | 无任何可观测性证据 | P2 |
| 倾听/合盘能力收口 | A4 倾听与 @命盘/合盘(文档已声明)要么补齐行为与 UI 适配,要么隐藏入口,不留半成品 | [29] 副标题未更新;文档能力未实测 | P2 |
| # | 风险 | 证据 / 推导 | 影响 | 建议 |
|---|---|---|---|---|
| P0-1 | 提交链路静默失败:核心价值动作(提问)的失败路径完全无反馈 | [14][20][21] 三实例 已确认(归因未知) | 用户无法区分网络错/没额度/产品挂了,每种猜测都指向流失 | 状态机 + 受理回执 + 显式报错(To-Be P0) |
| P0-2 | 计次口径不明 + 耗尽拦截黑盒:4 条历史对话 vs 2/5 计数对不上;耗尽时 Agent 行为无任何证据 | [34][36] 已确认(矛盾现象) | 计费不可对账即不可信;耗尽时若同样静默=付费转化断点 | 计次事件流 + 预检拦截话术 |
| P0-3 | 无幂等证据下的重复扣费风险:静默无响应会诱导用户重复提交,若无幂等=双计次 | 由 P0-1 + P0-2 推导 合理推断 | 免费档 5 次/月,重复扣一次=损失 20% 月度额度,直接伤害信任 | 幂等键 + 重试不重复计次 |
| P1-1 | 状态不一致成串:步骤指示器/模式副标题/旧版 404;思考摘要语言不一致——倾听为中文 [39] vs 问事/看运/随缘为英文 [16][36][38](各模式 prompt 分别撰写的旁证,归因推断)——BETA 阶段质量门槛缺失的系统性信号 | [06]–[11][16][25][29][36][38][39] 已确认 | 命理是信任生意;每处不一致都在磨损「元见」人设 | 统一状态源;发布前一致性检查清单;思考链本地化口径统一 |
| P1-2 | 生成先于权限校验:星云图已生成但锁定,生成成本在无权用户身上发生 | [31](实机)已确认 | 成本浪费 + 「东西被扣下」的用户怨念 | 权限前置 + 局部预览 |
| P1-3 | 口头完成风险:无结果校验机制,当前一致性靠模型自觉;干支/十神一旦写错无拦截 | 无校验证据 未知 | 命理产品输出错误干支=专业性质疑 | 输出自检完成门 |
| P2-1 | 时辰留空的排盘降级未确认:Onboarding 允许时辰留空 [08],缺时柱的盘进入 A2 后论断质量与声明均无证据 | [08][32] 未知 | 看运结果可能基于不完整命盘却无任何声明 | 不完整标记 + 显式降级声明 |
| P2-2 | 赞踩与个人背景字段疑似只写不读:反馈无去向证据;可选敏感字段(感情状态等)收集了但无消费证据 | [09][37] 未知 | 隐私最小化合规风险 + 反馈白收 | 闭环或下架 |
| P2-3 | 档案变更后无失效机制证据:改盘/新增盘后旧对话缓存是否污染新解读未知 | 推导 合理推断 | 拿错命盘做解读=结果张冠李戴 | 档案版本号 + 新对话强制重取 |
| P2-4 | 中断后行为黑盒:暂停按钮存在 [16],但暂停后是否继续计费、后台是否仍执行、残文如何处理均无证据 | [16] 未知 | 中断仍扣费=隐性重复扣费 | 中断语义显式化 |
| P3-1 | 独立开发者单点运维:博客自述 side project [23];无可观测性证据下,静默失败类问题难以发现和定位 | [23] 已确认 | 故障 MTTR 长,质量问题积压 | 最小化追踪 + 错误告警 |
| P3-2 | 文档/定价与产品定位冲突:文档标题写「仅供娱乐(佛系经营 ing)」[27] 与 ¥99.9 付费档共存;旧版链接曾 404 [25] | [25][27] 已确认 | 付费信任折损 | 文案与商业定位对齐 |
没有证据也没有清晰设计理由的组件不进主图。置信度:高=页面/官方直接证据;中=多事实推导;低=建议或仅入口证据。
| 组件 | 为什么需要 | 证据 | 等级 | 置信度 |
|---|---|---|---|---|
| 聊天工作台(四模式 tab) | 核心交互入口 | [12][13][19][28][29] | 已确认 | 高 |
| A1 问事解读 Agent | 一事一占的卦象解读 | [15]–[18] 完整链路 | 已确认 | 高 |
| A2 看运解读 Agent | 基于命盘的运势解读 | [36][37] 历史回放(实机核对) | 已确认 | 高 |
| A3 随缘路由器 | 「AI 自动匹配最佳解读模式」 | [28] 副标题 + [38] 路由行为(天赋潜能类→看运类工具链) | 路由行为 已确认;决策主体/准则 合理推断 | 中 |
| A4 倾听 Agent | 情绪倾诉的共情陪伴(零工具、不读命盘) | [39] 共情三段式 + 中文思考摘要 + locale 注入;[28][29] 入口 | 已确认(单一样本);计次/多轮/危机兜底 未知 | 中 |
| S1 排盘服务(真太阳时/时区) | 出生信息→四柱命盘;官方博客详述时区需求 | [08]→[32][36] + 博客[23] | 已确认 | 高 |
| S2 起卦服务 | 问事卦象产出 | [16] 卦象卡片先于思考出现 | 已确认(产出物);调用方 未知 | 高/中 |
| S3 额度计次 | 四档定价的额度执行 | [26][34] 计数与重置日 | 已确认(计数);规则 未知 | 高/低 |
| S4 星云图生成器 | 星云图资产生产 | [30][31] 仅锁定态+按钮 | 未知 | 低 |
| 查询命盘 / 查询时间流工具 | A2 取数(先命盘后时间流) | [36] 工具卡片(实机核对) | 已确认(半官方命名) | 高 |
| 对话记录持久化 | 历史回看 | [36] 2 天前记录完整可看 | 已确认;写入方 推断 | 高/中 |
| Neon PostgreSQL / Serverless | 存储与运行时 | 官方博客 [23](Turso→Neon 迁移实录) | 已确认 | 高 |
| Cloudflare Turnstile | 注册人机验证 | [04] | 已确认 | 高 |
| 输出模板 + 免责声明 | 两模式产物骨架/文案逐字一致 | [17][18][37] | 已确认(产物);机制 推断 | 高/中 |
| 命理知识体系 + 喜用神算法 | 箴言引卦爻辞、正文用十神纳音;文档声明自研算法 | [16][18][37] + 文档[27] | 已确认(消费痕迹/声明);实现 未知 | 高/中 |
| 通用 LLM(型号未知) | 解读正文与思考摘要生成 | [16][36] 页面展示的英文摘要 外露 | 已确认(存在);型号 未知 | 高/低 |
| WorkflowState 统一状态机 | 根治静默失败与状态不一致 | 无——由缺陷反推的设计理由 | 建议设计 | 低(建议) |
| 额度预检 / 幂等 / 完成门 / 追踪 | 计费可信、防重复扣费、质量兜底、故障可定位 | 无——由风险清单反推 | 建议设计 | 低(建议) |