Bazi Daily
Workflow
- 识别触发意图。
- 从会话上下文提取
user_id与user_timezone。 - 以用户时区自动计算
today_local(YYYY-MM-DD)。 - 调 heartbeat
bazi_profile_get读取用户四柱档案。 - 若未命中四柱档案,请用户补充四柱并调 heartbeat
bazi_profile_upsert写入长期记忆。 - 根据
today_local查询bazi_daily_calendar。 - 结合四柱与流运输出当日解读与建议。
默认年度数据源文件:assets/bazi_daily_calendar_2026.xlsx。
导入脚本:scripts/import_bazi_calendar.py。
Mandatory Pre-Analysis Gates
每次输出运势分析前,必须先完成以下两个步骤:
- 获取当前日期:基于
user_timezone计算today_local(YYYY-MM-DD)。 - 查询数据表:使用
today_local查询bazi_daily_calendar以获取flow_year、flow_month、flow_day。
未完成以上两个步骤时,禁止进入“运势结论/宜忌建议”输出。
Trigger Phrases
将下列表达视为高优先级触发:
- “今日运势”
- “今天适合 xxx 吗?”
- “今天宜做什么/忌做什么?”
- “我今天的运气怎么样?”
- “帮我看今天的八字运势”
若用户没有显式说“八字”,但语义是“今天是否适合某事”,默认按本技能流程处理。
First-Time Onboarding
当找不到用户四柱记忆时:
- 明确告知需要四柱后才能进行个性化日运分析。
- 请用户直接提供四柱,格式优先:
年柱/月柱/日柱/时柱。 - 若用户不清楚四柱,建议前往“万年历”查询:https://wannianrili.bmcx.com/,输入生日后获取四柱再回传。
- 校验最小完整性(四柱都存在)。
- 调 heartbeat
bazi_profile_upsert将结构化结果写入长期记忆。 - 写入成功后继续本次分析,不要求用户重新提问。
长期记忆建议键:
bazi_profile.pillars.yearbazi_profile.pillars.monthbazi_profile.pillars.daybazi_profile.pillars.hourbazi_profile.source(如user_provided)bazi_profile.updated_at(ISO 日期时间)
若用户后续主动更正四柱,以最新输入覆盖旧值。
heartbeat 请求响应与错误码约定见 references/heartbeat-contract.md。
Date And Lookup Rules
- 自动读取当前日期,禁止要求用户手动输入日期。
- 优先使用会话上下文中的
user_timezone计算当日日期。 - 若
user_timezone缺失,回退Asia/Shanghai并记录timezone_fallback=true。 - 查询数据表时使用标准日期键(
YYYY-MM-DD),即today_local。 - 期望查得字段:
flow_year、flow_month、flow_day。 - 若当天无记录,明确告知“缺少当日流运数据”,并仅给出有限建议,不伪造结果。
- 每次运势分析请求都必须执行一次日期计算与一次数据表查询,不得跳过。
数据表字段约定见 references/bazi-calendar-schema.md。 数据文件导入规范见 references/bazi-calendar-schema.md 中的 “Data Source File” 与 “Import Mapping”。 导入命令模板见 references/import-command-template.md。
Analysis Rules
- 先给出“今日总体倾向”(顺势/平稳/谨慎)。
- 再回答用户的具体问题(例如“今天适不适合谈合作”)。
- 输出“宜”与“忌”各 2-4 条,保持可执行。
- 明确区分:
- 依据用户四柱的个性化判断
- 依据当日流年流月流日的时效性判断
- 避免绝对化、宿命化表达;用“倾向/建议”措辞。
Failure Handling
- heartbeat 读取失败时,按“未知档案”处理并进入首次引导;同时提示“记忆服务暂不可用,本次可先临时分析”。 若用户不清楚四柱,补充推荐“万年历”:https://wannianrili.bmcx.com/。
- heartbeat 写入失败时,继续使用用户本次输入完成分析;同时提示“本次已解读,但暂未保存,下次可能需要再次提供”。
- 当日流运缺失时,明确告知“缺少当日流运数据,仅基于四柱给出有限建议”;该提示必须建立在“已执行当日查询且未命中”之上。
Response Template
按以下顺序组织回答:
- 今日日期(
YYYY-MM-DD) - 当日流运(流年/流月/流日)
- 总体运势一句话总结
- 对用户提问的直接结论
- 今日“宜”列表
- 今日“忌”列表
- 一句风险提示(非决定性,仅供参考)
Guardrails
- 不编造缺失的四柱与流运数据。
- 不输出医疗、法律、投资等确定性结论。
- 用户未提供时柱时,不自动推断;要求补全。
Logging Suggestions
建议每次请求记录以下字段,便于排障与 UAT 复盘:
user_iduser_timezonetoday_localtimezone_fallbackmemory_hitcalendar_hitheartbeat_get_statusheartbeat_upsert_status
UAT Cases
- 首次用户输入“今日运势”,期望:要求四柱 -> heartbeat 写入成功 -> 返回完整解读。
- 同一用户再次输入“今天适合谈合作吗?”,期望:不再询问四柱,直接返回结论与宜忌。
- 用户时区为
Asia/Shanghai,在 00:05 与 23:55 测试,期望:today_local与用户本地日期一致。 - 构造当日无流运记录,期望:输出缺失提示,不编造流年流月流日。
- 模拟 heartbeat upsert 失败,期望:本次照常解读,附“未保存”提示。
- 模拟 heartbeat get 失败,期望:进入首次引导,流程不断。