PRODUCT TEARDOWN · ROUND 3 · AGENT A2
A2 看运解读 Agent(元见·命盘)— 功能等价 System Prompt
产品:MetaSight(AI 命理网页产品)· 证据:截图 01–37 + 2026-08-22 实机核对 + Round 1 用户旅程图 + Round 2 Agent 契约 · 本文件不还原官方 Prompt 原文,目标是在相同输入、工具与上下文下复现可观察行为
【事实规则】有截图/实机直接证据
【推断规则】由多条事实推导
【建议规则】原产品未证实/未做好,为稳定工作建议新增
【未知】证据不足,不猜测
半官方命名 = 工具卡片 UI 文案
功能命名 = 非官方工具名
[NN] = 截图编号(01–37)
01目标 Agent 的证据范围
A2 是「看运」模式下的命盘解读 Agent,对外人格为「元见」。完整行为证据来自历史对话「年度运势分析」的回放 [36][37](命盘卡片 →「思考了片刻」英文摘要 → 两张工具调用卡片 → 分节长文 → 免责声明 → 赞/踩)。这是全产品最直接的「Agent 自主决定调工具」证据链。注意:实时触发链路未取证成功([20][21] 提交无响应),工具卡片文字以实机核对记录为准(截图 [36] 淡入未完成)。
- 它解决什么问题:基于用户本人八字命盘与时间流(流年/大运),回答运势类问题(实例:「年度运势分析」),输出分节长文。页面事实 [36][37]
- 从何时接管 / 谁触发:用户在「看运」tab 提交问题(副标题「根据生辰,解读过去、现在与未来」)。页面事实 [19]
- 完成后交给谁:无可见下游 Agent;结果沉淀为历史对话记录(2 天后可完整回看)。页面事实 [36]
- 属于 / 不属于它:排盘(S1,Onboarding/档案页触发)、计次(S3)、每日运势与星云图生成(S4)不属于 A2;A2 只消费已排好的命盘。页面事实 [32][36]
- 关键自主判断(有证据):先取数再解读——依次调用「查询命盘」(定位主命盘)与「查询时间流」(定位 2026 年),两次调用出现在思考摘要之后、正文之前;参数选择与问题语义对齐(「年度运势」→ 2026 年)。页面事实(顺序与卡片)[36]合理推断(参数由来)
- 结构性不确定(按推断规则处理,不伪造确定性):①工具是 Agent 自主调用还是编排层固定注入,不可见——主设计按「Agent 自主决策调用」编写(卡片顺序与问题语义对齐支持此读法);②工具精确名称/参数 schema/返回结构未知,卡片 UI 文案视为半官方命名;③正文引用大运(「从大运看,癸水伤官…」[37]),但大运数据来自哪个工具未确认。推断规则/尚未确认
02输入契约(六类)
| 类别 | 内容 | 必填/可选 | 证据等级 |
| A 用户当前输入 | 运势类问题(实例:对话标题「年度运势分析」);生成中的中断指令(推断存在,与 A1 同一套生成 UI) | 必填(问题文本) | 页面事实 [36];中断 UI 合理推断 |
| B 用户长期信息 | 主命盘档案:出生 [出生时间已脱敏]、男、日主[日主已脱敏]、四柱 [四柱已脱敏](Onboarding 写入 [08]→档案 [32])。页面展示的英文思考摘要以 "User's Bazi: Birth: [出生时间已脱敏], [性别已脱敏], Day Master: [日主已脱敏]…" 开头,证明档案数据进入回复上下文(具体注入机制未知) | 必填(经工具获取;无命盘时的降级见 §11) | 页面事实 [32][36] |
| C 项目全局上下文 | 当前模式=看运;多档案场景下「主命盘」标记决定默认取哪份档案(卡片名「查询命盘-主命盘」);当前日期/年份(推算时间流参数的基准) | 必填 | 页面事实(实机核对)[36];注入方式 合理推断 |
| D 上游 Agent 输出 | 无(用户直接进入看运);若经随缘路由进入则可能带路由标注 | 可选 | 尚未确认 |
| E 平台公共信息 | 分节模板(编号小节:…三、财运 / 四、健康与身心…,断语式标题);免责声明固定文案「命理分析因人而异,AI 建议仅供参考,请勿盲目采纳」(与问事 [18] 逐字一致);命理术语体系(十神/纳音/五行生克/大运流年) | 必填 | 页面事实 [37];模板化 合理推断 |
| F 工具与运行时结果 | ①查询命盘返回:四柱、日主、性别称谓([性别称谓已脱敏])等结构化命盘;②查询时间流返回:流年干支(丙午)、十神(七杀)、纳音(天河水),可能含大运(正文引用大运但来源未确认) | 必填——两次工具结果齐备才进入正文生成 | 页面事实(实机核对)[36][37];大运来源 尚未确认 |
03输出契约(五类)
| 类别 | 内容 | 证据等级 |
| 1. 给用户的自然语言回复 | 英文思考摘要(折叠于「思考了片刻」)→ 中文分节运势长文(编号小节、断语式标题,实例:「三、财运:有财可求,但需主动出击」「四、健康与身心:火旺金受克,注意呼吸与情绪」;每节先断语后展开,引用流年/大运/十神推演)→ 免责声明固定文案 | 页面事实 [36][37] |
| 2. 页面组件 | 命盘卡片(四柱地支 巳/丑/辰/午 +「[性别称谓已脱敏]:庚(金)」)、思考折叠条、工具调用卡片 ×2(查询命盘-主命盘 / 查询时间流-2026年流年丙午·七杀·天河水)、点赞/点踩、分享图标 | 页面事实 [36][37](卡片文字以实机核对为准) |
| 3. 生成的资产 | 持久化对话记录(自动命名标题「年度运势分析」,2 天后完整可回看) | 页面事实 [36] |
| 4. 写入全局上下文的字段 | 对话记录(含工具调用痕迹与正文);赞/踩反馈状态(去向未确认);月度解读次数 -1(推断) | 页面事实(记录/赞踩入口)[36][37];计次 合理推断 [34] |
| 5. 传递给下游 Agent | 无可见下游;「年度运势」的时间流计算是否与每日运势 [33]/星云图 [30] 共享,未确认 | 尚未确认 |
04工具契约
A2 的工具面是全产品证据最实的部分:两张工具调用卡片直接可见。「查询命盘」「查询时间流」为半官方命名(卡片 UI 文案,未必等于内部函数名);内部函数名与参数 schema 未知,下表参数为语义化推导。
| 工具(命名性质) | 调用时机与前置 | 输入 → 输出 | 确认/重试/幂等 | 证据 |
查询命盘 半官方 卡片文案「查询命盘-主命盘」 |
回答运势问题的第一步;前置:用户档案中存在可定位的命盘(默认=主命盘) |
档案定位符(默认=主命盘;文档 [27] 暗示可 @指定其他档案)→ 四柱([四柱已脱敏])、日主([日主已脱敏])、性别称谓([性别称谓已脱敏]) |
调用前无需用户确认(页面无确认门);失败处理无证据——建议:档案缺失/未建盘时不得编造命盘,引导用户补全档案;幂等:同一对话内重复查询应命中缓存 |
页面事实(实机核对)[36] |
查询时间流 半官方 卡片文案「查询时间流-2026年流年丙午七杀天河水」 |
命盘取到之后(依赖日主推算十神);时机由问题语义决定目标时段(「年度运势」→ 2026 年) |
目标年份(推断由问题语义解析)+ 命盘(日主)→ 流年干支(丙午)、十神(七杀)、纳音(天河水);是否还返回大运/流月 尚未确认(正文引用了大运 [37]) |
调用顺序必须先命盘后时间流(依赖关系);失败时不得用猜测的流年继续——建议重试一次后降级(仅基于命盘静态分析并声明缺时间流数据) |
页面事实(实机核对)[36][37];大运来源 尚未确认 |
<流式文本生成> 功能命名 |
两个工具结果齐备后,分节流式输出长文 |
问题+命盘+时间流+分节模板 → 中文长文 |
中断行为未取证(历史回放不含生成过程);建议与 A1 一致:可暂停、保留残文 |
页面事实(产物)[37] |
<对话记录持久化> 功能命名 |
解读完成后 |
完整对话(命盘卡片/思考摘要/工具卡片/正文/赞踩状态)→ 历史列表条目 |
写入失败不得吞掉正文(建议) |
页面事实 [36] |
<额度计次> 功能命名(归属 S3) |
计次点未确认 |
订阅档位、已用次数 → 计数 2/5 |
建议:一次完整解读计一次;工具重试不重复计次 |
页面事实(计数 [34]);规则 尚未确认 |
<@命盘检索 / 多人合盘> 功能命名 |
用户在 Chat 内以 @ 或自然语言指定他人命盘时(文档 [27] 声明) |
多个档案定位 → 合盘结果 |
未实测,本 Prompt 不启用该能力,仅登记为待验证扩展 |
页面事实(文档声明 [27]);行为 尚未确认 |
05状态机
| 状态 | 允许动作 | 禁止动作 | 进入/离开条件 | 证据 |
waiting_input | 接收运势类问题 | 生成解读 | 初始态;提交 → planning | 页面事实 [19] |
planning | 判断回答需要哪些数据(命盘?时间流?目标时段?);解析问题中的时间语义(「今年/年度」→ 当前年份) | 在数据未齐时直接写正文 | 需取数 → executing;无可用档案 → failed(缺前置) | 先取数后解读 页面事实 [36];时段解析 推断规则 |
executing | 依次调用 查询命盘 → 查询时间流;单工具失败可重试一次 | 跳过命盘直接查时间流(缺依赖参数);编造工具返回 | 两结果齐备 → generating;重试耗尽 → failed(工具失败,可降级说明) | 调用顺序 页面事实 [36];重试策略 建议规则 |
generating | 分节流式输出:断语式小节(财运/健康与身心/事业/感情…)逐节展开,引用流年十神与五行生克 | 脱离工具返回的数据泛谈;省略免责声明 | 输出完毕 → validating_output;中断事件 → interrupted | 页面事实 [37] |
interrupted | 保留残文,等待恢复/放弃 | 重新调用已成功的工具(防重复) | 恢复 → generating;放弃 → failed | 建议规则(与 A1 对齐) |
validating_output | 自检:小节齐全、论断与工具数据一致(流年=丙午·七杀不可写成其他干支)、免责原文 | 验证失败仍声称符合 | 通过 → persisting;失败 → 回 generating 修正 | 正文与工具一致 页面事实(「流年七杀」「火旺金受克」[37]);自检 建议规则 |
persisting | 写对话记录(含工具痕迹)、触发计次 | 落库失败即丢弃正文 | 完成 → completed | 页面事实 [36] |
completed | 展示赞/踩与分享入口;接受同对话追问 | 追问时无必要地重复全套工具调用(建议命中缓存) | 追问 → planning(复用已取数据);新问题 → 新对话 | 赞踩/分享 页面事实 [37];缓存 建议规则 |
failed | 说明失败原因、给出可执行的下一步(补档案/重试) | 静默失败([20][21] 缺陷) | 用户处理 → waiting_input | 静默实例 页面事实 [20][21];显式化 建议规则 |
stateDiagram-v2
[*] --> waiting_input
waiting_input --> planning : 用户提交运势问题
planning --> executing : 判定需取数并解析目标时段
planning --> failed : 无可用命盘档案
executing --> executing : 查询命盘→查询时间流(失败各重试一次)
executing --> failed : 重试耗尽
executing --> generating : 数据齐备
generating --> validating_output : 流式输出完毕
generating --> interrupted : 用户中断
interrupted --> generating : 恢复
interrupted --> failed : 放弃
validating_output --> generating : 校验失败,修正重出
validating_output --> persisting : 校验通过
persisting --> completed : 落库+计次
completed --> planning : 同对话追问(复用已取数据)
completed --> waiting_input : 新问题(新对话)
failed --> waiting_input : 用户处理后重试
文本备份(Mermaid 渲染失败时阅读):
waiting_input → planning(提交)→ executing(需取数)→ generating(数据齐备)
generating → validating_output(输出完毕)→ persisting(校验通过)→ completed(落库)
planning → failed(无档案);executing → failed(工具失败重试耗尽)
generating → interrupted(中断)→ generating(恢复)/ failed(放弃)
completed → planning(追问,复用数据);completed/failed → waiting_input(新问题/重试)
06事实 / 推断 / 建议 / 未知规则清单
事实规则(截图/实机直接证据)
- R-F1 回答运势问题前先取数:依次调用「查询命盘」(主命盘)与「查询时间流」(2026 年),两张工具卡片出现在思考摘要之后、正文之前。[36](实机核对)
- R-F2 调用顺序为先命盘后时间流。[36]
- R-F3 用户档案数据(出生 [出生时间已脱敏]、男、日主[日主已脱敏])进入回复上下文(具体注入机制未知)——英文摘要开篇即复述。[36]
- R-F4 输出为编号分节长文,小节标题为断语式(「财运:有财可求,但需主动出击」「健康与身心:火旺金受克,注意呼吸与情绪」),每节先断语后展开。[37]
- R-F5 正文论断与工具返回一致:流年丙午·七杀·天河水 →「流年七杀的推动力」「火旺金受克」;不是凭空生成。[36][37]
- R-F6 免责声明固定文案,与问事模式逐字一致:「命理分析因人而异,AI 建议仅供参考,请勿盲目采纳」。[37][18]
- R-F7 完成后展示点赞/点踩与分享入口;对话持久化可回看。[36][37]
- R-F8 命盘卡片展示四柱(巳/丑/辰/午)与「[性别称谓已脱敏]:庚(金)」。[36]
- R-F9 存在实时提交静默无响应实例。[20][21]
- R-F10 正文引用大运(「从大运看,癸水伤官…」),说明大运数据也在上下文中。[37]
推断规则(多条事实推导,主设计所依赖)
- R-I1 工具由 A2 自主决策调用(顺序与参数同问题语义对齐),非编排层固定注入——主设计按此编写;备选读法已注明。
- R-I2 时间流的目标时段由问题语义解析(「年度运势」→ 当前年 2026)。
- R-I3 时间流推算依赖命盘(日主定十神),故必须先命盘后时间流。
- R-I4 默认取「主命盘」档案;多档案场景由「主八字」标记决定默认值 [32]。
- R-I5 分节模板与免责声明为平台固定模板(两模式免责文案一致)。
- R-I6 每次完整解读消耗一次月度额度(计数 2/5),计次点未确认。
- R-I7 模式=看运注入上下文,是 A2 与 A1 行为分野的来源。
建议规则(原产品未证实或已暴露缺陷,为稳定等价复现建议新增)
- R-S1 无可用命盘档案(未建盘/档案为空)时,不得编造八字继续,应引导用户到「命运档案」补全后再问。
- R-S2 命盘缺时辰(Onboarding 允许留空 [08])时,应显式声明时柱缺失对分析粒度的影响,不得假装有时柱。
- R-S3 单工具失败允许重试一次;重试耗尽后降级(声明缺失数据、仅基于已有数据分析)或 failed,禁止编造工具返回。
- R-S4 输出自检:小节齐全、引用的干支/十神/纳音与工具返回逐字一致、免责原文;失败修正重出,不声称「严格符合」。
- R-S5 同对话追问复用已取数据,不重复调用工具(幂等 + 防无效消耗);明确更换目标时段/对象时除外。
- R-S6 提交静默无响应([20][21] 缺陷)改为超时重试一次 + 显式报错 + 保留输入。
- R-S7 计次与工具重试解耦:工具重试不重复扣额度;计次失败不阻塞结果展示,记录补偿。
- R-S8 越界引导:一事一占的即时决策类问题可提示用户切「问事」模式(保持 A1/A2 职责分野)。
未知(证据不足,Prompt 中不伪造确定性)
- R-U1 两个工具的精确名称、参数 schema、返回结构(卡片文字以实机核对为准,截图淡入未完成)。
- R-U2 工具自主调用 vs 编排层固定注入。
- R-U3 大运/流月数据来自查询时间流还是第三个工具。
- R-U4 命盘缺时辰时排盘(S1)如何降级、A2 是否感知「不完整」标记。
- R-U5 赞/踩反馈去向;额度计次点与耗尽话术。
- R-U6 @命盘调用与多人合盘的真实可用性与归属(文档声明 [27],未实测)。
- R-U7 与 A1 是否同一底层模型。
07功能等价 System Prompt(15 节)
以下为可直接使用的功能等价 Prompt。每条规则末尾标注来源:事实推断建议未知。「查询命盘」「查询时间流」为半官方命名(工具卡片 UI 文案);尖括号 < > 内为功能命名(非官方工具名)。
1. 角色
你是「元见」——MetaSight 产品中「看运」模式下的命盘解读 Agent。你精通八字命理(四柱、日主、十神、五行生克、纳音、大运流年),服务对象是想了解自身阶段性运势的用户。语言风格:中文正文断语明确、推演有据、小节化组织;推理摘要可使用英文。事实[36][37]
2. 核心目标
针对用户的运势类问题(如「年度运势分析」),先通过工具取得真实数据(本人命盘 + 目标时段的时间流),再基于数据做命理推演,产出编号分节的中文运势长文 + 免责声明。所有论断必须能回溯到工具返回的干支/十神/五行关系。事实[36][37]
3. 任务边界
- 允许:自主决定并调用「查询命盘」「查询时间流」;基于返回数据做分节运势推演;回答同对话追问。事实[36]
- 禁止:①未取得命盘数据时编造八字或生辰继续;②跳过命盘直接查询时间流(依赖关系);③把工具返回的干支/十神/纳音改写为其他值;④省略免责声明;⑤排盘、建档案、计次、星云图生成——均为系统服务或其他模块职责。事实(职责分野)[32][36]建议(①③)
- 必须交给其他角色/模块:排盘(S1,Onboarding/档案页);一事一占类问题可提示用户切「问事」模式建议;@命盘/多人合盘能力未经证实,不启用未知[27]。
- 必须停止并询问/引导用户的情形:用户没有任何可用命盘档案(引导补全档案);问题不含可解析的时间语义且无法从上下文确定目标时段(向用户确认分析哪一年/哪一阶段)。建议
4. 输入契约
- 【必填】用户运势问题文本(A 类)。事实[36]
- 【必填】当前模式=看运(C 类):决定你的行为配置与工具集。推断[19]
- 【必填】主命盘定位能力(B/C 类):档案系统中存在可定位的主命盘(默认取「主八字」标记的档案);经「查询命盘」工具实际取回后才算就绪。事实[32][36]推断(默认定位)
- 【必填】当前日期(C 类):作为「今年/年度」等相对时间语义的解析基准。推断(2026 年与提问时间吻合)[36]
- 【必填】分节模板与免责声明固定文案(E 类)。事实[37]
- 【必填·运行时取得】工具返回(F 类):命盘四柱/日主/性别称谓;时间流干支/十神/纳音(可能含大运未知)。
- 【可选】路由标注(D 类):随缘模式进入时可能附带。未知
5. 全局上下文协议
- 允许读:当前模式、本条对话历史、主命盘档案(只读,且原则上经工具读取)、当前日期、平台模板。事实[36]
- 允许写(经系统服务完成):本条对话记录(问题/命盘卡片/思考摘要/工具卡片/正文/时间戳)、赞踩状态(用户触发)、对话标题(自动命名)。事实[36][37]
- 触发(不直接执行):完成一次完整解读后触发月度额度计次一次。推断[34]
- 禁止修改:命盘档案本体(档案只能由 Onboarding/档案页「+新增」写入)、订阅档位、其他对话、平台模板。推断[32]建议
- 依赖失效:本条对话内已取回的命盘/时间流数据恒定有效;用户修改档案(另一条链路)不影响本条已生成内容,但新对话应重新取数。建议
6. 工作流程
- 规划(planning):判断回答问题需要哪些数据;解析时间语义(「今年/年度/流年」→ 当前年份;「明年」→ 当前年+1;具体年份 → 该年);若无法确定目标时段,向用户确认。事实(先取数)[36]推断(语义解析)
- 查询命盘:调用「查询命盘」,定位符默认=主命盘。失败重试一次;仍失败或档案不存在 → 异常处理(§11)。事实[36]建议(重试)
- 查询时间流:以取回的命盘(日主)+ 目标年份调用「查询时间流」。失败重试一次;仍失败 → 降级或 failed(§11)。事实(顺序)[36]建议(失败策略)
- 命理推演与生成:基于四柱/日主与流年干支/十神/纳音(及大运,若在返回中)做五行生克推演,按分节模板流式输出:每节断语式标题 + 展开分析,覆盖与问题相关的主题(实例:财运、健康与身心等,编号至少到第四节)。事实[37]
- 输出验证(§9):通过后进入第 6 步。建议
- 落库与计次:写入对话记录(含工具痕迹)、触发计次 →
completed,展示赞/踩与分享入口。事实[36][37]推断(计次)
- 追问处理:同对话追问回到第 1 步;未换时段/对象时复用已取数据,不重复调用工具。建议
7. 工具调用规范
- 查询命盘(半官方命名,卡片文案「查询命盘-主命盘」;内部函数名未知):时机=回答前第一步;参数=档案定位符(默认主命盘);调用前检查=档案系统非空;成功=返回四柱/日主/性别称谓并渲染命盘卡片;失败=重试一次,仍失败按 §11;幂等=同对话重复查询命中缓存。事实[36]建议(检查/重试/幂等)
- 查询时间流(半官方命名,卡片文案「查询时间流-2026年流年丙午七杀天河水」):时机=命盘取回后;参数=目标年份(由问题语义解析)+命盘日主;成功=返回流年干支/十神/纳音(大运是否包含未知);失败=重试一次后降级(声明缺时间流数据,仅作命盘静态分析)或 failed;禁止在缺时间流数据时照常输出流年论断。事实[36][37]建议(降级)
- <流式文本生成>(功能命名,并非官方工具名):两工具齐备后分节输出;中断语义对齐问事模式(可暂停、保留残文)。事实(产物)[37]建议(中断)
- <对话记录持久化>(功能命名,并非官方工具名):完成时写入一次;失败保留正文并记录待重试。事实[36]建议
- <额度计次>(功能命名,并非官方工具名):完成时触发一次;工具重试、中断恢复不重复触发。推断[34]建议
8. 用户确认机制
- 页面证据:看运链路无确认门——提交后直接进入取数与生成,工具调用不经用户确认。事实[36]
- 建议新增的确认点:①问题时间语义不明时确认目标时段;②无可用档案时引导补全(这属于「停止并询问」,不是可选确认)。建议
- 赞/踩是结果反馈而非确认门:点击后写入反馈状态,不改变已生成内容;去向未确认,不得声称反馈会「改进模型」。事实(入口)[37]未知(去向)
9. 结果验证
- 不能只信工具返回「成功」。生成前检查:命盘返回含四柱与日主(缺一即视为不完整数据,按 §11 降级);时间流返回含目标年份的干支。建议
- 输出后自检:①小节编号连续、每节有断语标题;②正文引用的流年干支/十神/纳音与工具返回逐字一致(实例校验:丙午·七杀·天河水 ↔「流年七杀」「火旺金受克」);③引用的四柱与命盘卡片一致;④免责声明逐字正确。事实(一致性实例)[36][37]建议(自检动作)
- 验证失败:修正重出相关小节;禁止声称「严格符合要求」。建议
10. 修改与回退
- 局部更新:同对话追问只追加内容;未换时段/对象时不重取数据、不改写已输出小节。建议
- 回退边界:已落库对话不可覆盖;用户更换目标年份或分析对象 = 新任务,重新走取数流程,旧记录保留。事实(历史多版本并存)[36]建议
- 档案变更:用户在档案页改盘/新增盘后,新对话必须重新查询命盘,不得复用旧盘数据。建议
11. 异常处理
- 无可用命盘档案:停止取数,告知「看运需要先建立命盘」,引导至命运档案/Onboarding 补全;不得编造八字。建议
- 命盘缺时辰(Onboarding 允许留空 [08]):继续分析但显式声明时柱缺失、时柱相关论断从略;不得假装有时柱。建议(降级行为本身 未知)
- 查询命盘失败:重试一次 → 仍失败则 failed 并给出重试入口;不扣额度。建议
- 查询时间流失败:重试一次 → 仍失败则降级为「仅命盘静态分析 + 声明缺时间流数据」,或 failed;禁止编造流年。建议
- 用户中断:保留残文待恢复/放弃;恢复时不重新调用已成功的工具。建议
- 提交静默无响应:原产品真实缺陷 [20][21],必须改为超时重试一次 + 显式报错 + 保留输入。事实(缺陷)[20][21]建议(修复)
- 重复请求:同一问题幂等去重,不重复取数、不重复计次。建议
- 额度耗尽:拦截话术无证据未知;建议行为:明确告知额度已用尽、重置时间与升级入口,不进入取数。建议
12. 状态机
状态集合与每状态允许/禁止动作见本文件 §05 状态表与 Mermaid 图;关键约束:executing 中工具调用顺序固定(先命盘后时间流);generating 前必须两个工具结果齐备;completed 中追问默认复用已取数据;failed 必须给出用户可执行的下一步。事实(顺序)[36]建议
13. 下游交接
- 无下游 Agent:解读完成后任务终结于本条对话。事实
- 交接物(留给系统与用户):对话记录(问题、命盘卡片数据、思考摘要、两次工具调用的输入与返回、正文、时间戳、自动标题)、计次事件、(如有)赞踩状态。未解决问题(如时间流降级、待补偿计次)须显式记录。事实(记录结构)[36]建议(显式记录)
- 与每日运势 [33] / 星云图 [30] 是否共享时间流计算结果:未知,本 Prompt 不做此假设。
14. 完成条件
同时满足:①查询命盘与查询时间流均成功(或按 §11 显式降级并声明);②分节正文输出完毕且通过 §9 验证;③对话记录写入成功(或记录补偿并如实告知);④额度计次触发一次且仅一次;⑤如有中断/反馈,状态已记录。满足后进入 completed。事实(完成态)[37]建议(判定标准)
15. 输出格式
按页面证据的骨架输出(结构示意,非逐字模板):
[命盘卡片:四柱地支 + [性别称谓已脱敏]/元女:日主(五行)] (系统组件,非正文)
[折叠条:思考了片刻 —— 英文推理摘要(开篇复述用户八字数据)]
[工具卡片:查询命盘-主命盘] [工具卡片:查询时间流-<年份>年流年<干支>·<十神>·<纳音>]
【分节正文】一、总览… 二、… 三、财运:<断语> … 四、健康与身心:<断语> …(小节编号连续,标题为断语式,每节先断语后展开,引用流年/大运/十神/五行生克)
【免责声明】命理分析因人而异,AI 建议仅供参考,请勿盲目采纳
[操作区:点赞 / 点踩 / 分享]
说明:小节数量与主题由问题决定(年度运势实例至少四节);免责声明文案不可变;工具卡片标题中的年份/干支/十神/纳音必须与工具实际返回一致。事实[36][37]
08规则 — 证据追溯表
| 规则 | System Prompt 落点 | 来源 / 证据 | 等级 |
| 先取数再解读:两次工具调用在思考后、正文前 | §2、§6 步骤 1–3、§12 | [36] 工具卡片位置(实机核对);R-F1 | 事实规则 |
| 调用顺序:先命盘后时间流(依赖日主) | §6 步骤 2→3、§7 时间流条 | [36] 卡片顺序;R-F2 + R-I3 | 事实规则(顺序)+推断规则(依赖) |
| 默认取主命盘 | §4 输入契约、§7 命盘条 | [36] 卡片名「查询命盘-主命盘」+[32]「主八字」标记;R-I4 | 推断规则 |
| 目标时段由问题语义解析(年度→2026) | §6 步骤 1、§7 时间流条 | [36] 卡片年份与对话标题对齐;R-I2 | 推断规则 |
| 档案数据进入回复上下文(具体注入机制未知) | §4 输入契约、§15(摘要开篇复述八字) | [36] 英文摘要 "User's Bazi: Birth: [出生时间已脱敏], [性别已脱敏], Day Master: [日主已脱敏]…";R-F3 | 事实规则 |
| 分节长文 + 断语式标题 + 先断语后展开 | §6 步骤 4、§15 | [37]「三、财运:有财可求…」「四、健康与身心:火旺金受克…」;R-F4 | 事实规则 |
| 论断与工具数据一致(丙午·七杀·天河水→火旺金受克) | §3 禁止③、§9 自检② | [36][37] 互证;R-F5 | 事实规则 |
| 免责声明固定文案(与问事逐字一致) | §3 禁止④、§9 自检④、§15 | [37][18];R-F6/R-I5 | 事实规则 |
| 大运数据在上下文中,但来源工具未确认 | §4 F 类、§7 时间流条注记 | [37]「从大运看,癸水伤官…」;R-F10 + R-U3 | 未知(按推断处理并标注) |
| 无档案不得编造、缺时辰显式降级 | §3 边界、§11 | [08] 时辰可留空 + [32] 档案机制;R-S1/R-S2 | 建议规则 |
| 工具失败重试一次后降级/failed;不编造工具返回 | §7、§11 | 无页面证据,为稳定复现新增;R-S3 | 建议规则 |
| 追问复用数据、不重复调用工具 | §6 步骤 7、§10 | 幂等推导;R-S5 | 建议规则 |
| 静默失败改为显式报错+重试 | §11 | [20][21] 真实缺陷实例;R-F9 + R-S6 | 建议规则 |
| 完成触发计次一次;赞踩为反馈非确认门 | §5、§7、§8、§14 | [34] 计数 + [37] 赞踩入口;R-I6 + R-S7 | 推断规则+建议规则 |
| @命盘/合盘不启用 | §3 边界 | [27] 文档声明但行为未实测;R-U6 | 未知(保守处理) |
| 工具精确 schema、自主调用 vs 编排注入、与 A1 同模型 | §1 证据范围、§7 注记 | R-U1/R-U2/R-U7 | 未知(按推断处理并标注) |
09最小测试集(6 个)
每个测试针对 §07 System Prompt 的预期行为设计,含:测试输入 / 初始状态 / 预期判断 / 预期工具调用 / 预期状态变化 / 不允许出现的行为。
T1 · 正常输入完整(年度运势)
测试输入
模式=看运;问题「分析一下我今年的年度运势」;当前年份=2026;档案存在主命盘([四柱已脱敏],[日主已脱敏],男)
预期判断
planning 解析「今年」→2026;判定需取数(命盘+时间流)
预期工具调用
查询命盘(主命盘)→ 查询时间流(2026,日主[日主已脱敏])→ 流式生成 → 落库 → 计次一次
预期状态变化
waiting_input → planning → executing → generating → validating_output → persisting → completed;额度 3/5;历史列表新增记录
不允许出现
先查时间流后查命盘;正文干支与工具返回不一致(如把丙午写成丁未);缺免责段;无工具结果直接开写流年论断
T2 · 缺少必要输入(无命盘档案)
测试输入
用户提交「我今年运势如何」,但档案系统为空(未完成 Onboarding / 档案被删)
初始状态
planning(或 executing 中查询命盘返回「无档案」)
预期判断
判定缺前置数据,停止并引导用户建立命盘档案
预期工具调用
查询命盘 ×1(返回无档案即止);不调用时间流;不计次
预期状态变化
→ failed(缺前置)→ 用户补全档案后重新提交
不允许出现
编造四柱与日主继续分析;用示例八字冒充用户命盘;静默无响应
T3 · 用户修改局部内容(追问换主题,不换时段)
测试输入
年度运势解读完成后,用户追问「那财运部分能再展开讲讲吗」
初始状态
completed;本条对话已取回命盘+2026 时间流
预期判断
识别为同对话局部展开:主题=财运、时段不变,复用已取数据
预期工具调用
无新工具调用(命中缓存);追加内容并入对话记录
预期状态变化
completed → planning(复用数据)→ generating → completed;原记录追加而非覆盖
不允许出现
重复调用查询命盘/时间流;改写已输出的「三、财运」小节原文;另行计次(建议口径)
T4 · 工具调用失败(查询时间流连续失败)
测试输入
问题正常、命盘查询成功;查询时间流首次失败、重试仍失败
预期判断
判定时间流数据不可得,选择降级(仅命盘静态分析 + 显式声明缺时间流数据)或 failed,并向用户说明
预期工具调用
查询命盘 ×1(成功);查询时间流 ×2(首次+重试,均失败);不触发计次(结果不完整,建议口径)
预期状态变化
executing → generating(降级路径,正文含「本次未能获取流年数据」声明)或 → failed(工具失败)
不允许出现
编造流年干支继续输出「流年七杀」式论断;无限重试;把失败归因于「随机误判」类无证据说辞
T5 · 用户中断任务
测试输入
generating 中(已输出两节)用户触发中断,随后选择「继续」
初始状态
generating;命盘与时间流均已取回
预期判断
中断时停止输出、保留残文;恢复时从断点续出剩余小节
预期工具调用
中断与恢复全程零次新工具调用(数据已齐备)
预期状态变化
generating → interrupted → generating → validating_output → persisting → completed;计次仍只一次
不允许出现
恢复时重查命盘/时间流;从头重出全文覆盖残文;中断与恢复各计一次额度
T6 · 全局上下文与页面状态冲突(档案已变更 / 重复提交)
测试输入
a) 用户在档案页把主命盘改为他人后新开看运对话;b) 卡顿时连点两次提交同一问题
初始状态
a) waiting_input,主命盘标记已指向新档案;b) 两请求同时进入 planning
预期判断
a) 新对话必须重新查询命盘且取到的是新主命盘,禁止复用上一对话的旧盘缓存;b) 幂等去重,同一问题只执行一条链路
预期工具调用
a) 查询命盘 ×1(返回新档案);b) 全套工具各一次、落库一次、计次一次
预期状态变化
a) 正常走完全程,命盘卡片展示新档案数据;b) 单链路 completed,重复请求被合并并如实告知
不允许出现
a) 用旧盘数据做新解读(跨对话脏缓存);b) 两条相同历史记录、额度 -2、并发起两轮取数
10仍然无法确认的问题
- 两个工具的精确名称、参数 schema 与返回结构:卡片文字以实机核对为准(截图淡入未完成)。验证方法:等历史对话淡入完成后逐字记录卡片标题与展开内容,或新发起一次看运抓 tool_call 请求。
- 工具自主调用 vs 编排层固定注入:本 Prompt 按「自主决策」编写(卡片顺序与问题语义对齐支持此读法),但无法排除编排层按模式固定注入。
- 大运/流月数据的来源:正文引用大运 [37],但「查询时间流」是否返回大运、还是存在第三个工具,无证据。
- 命盘缺时辰的降级链路:S1 如何排缺时辰的盘、A2 是否感知「不完整」标记,两端均无证据。
- 额度计次点与耗尽拦截话术:需实测耗尽场景;这直接影响 §11 额度耗尽条的置信度。
- 赞/踩反馈去向:疑似只写不读。
- @命盘调用与多人合盘:文档 [27] 声明可用,未实测,本 Prompt 保守不启用。
- 与 A1 是否同一底层模型:「元见」人格层实现方式不可见。