Codebase (2026-06-27): this engine now lives in meno-gaokao-counsellor (core/…), extracted from reflection-game — see gaokao-standalone-plan. Module paths below use the new core/ layout.

当前实现(2026-06-24)— WTE 现在跑在 unified_turn

WTE 已不是独立调用。每一站 = 一次融合的 LLM 调用 unified_turn(ranked.py),同一次完成:① WTE 选一个画像里确有张力、且本局未检视过的理想偏好维度(传入 examined_dims 去重 + scene_history 场景去重 + student_views 用户笔记);② investigator 选 top vs contender + 针对此人的问题;③ scene-writer 写小景 + 各选项 take;④ elicit —— 「最想听你说」的主动追问。模型 deepseek-chat(GAOKAO_TRAJECTORY_MODEL),STAGE_CAP 默认 18。下方旧的”7 因素回退 / 按 stage index 记忆”描述已过时。

WTE 决定 下一幕展开哪个维度。不再是所有人走同样的固定序列——它从一个 18 维场景池(scenes)里,按信息价值为每个人选出最该走的几站(STAGE_CAP=7,即选 18 中信息价值最高的 7)。代码:core/wte.py + RankedSession,池 = gaokao/scenes.json

The WTE decides which dimension each next stage examines. No longer a fixed sequence for everyone — it selects each person’s stages from an 18-dimension scene pool (scenes) by value-of-information (STAGE_CAP=7 → the 7 highest-VOI of 18). Code: core/wte.py + RankedSession; pool = gaokao/scenes.json.

分工:WTE 选维度,调查员定问题 / Division of labor

中文。 两段决策,各司其职:

  • WTE 决定下一站考量哪个维度(从 18 维场景池里按信息价值挑一个未展开的)。
  • 调查员(investigator) 在该维度定下后,读人类模型(画像 + 不确定性地图),为这位具体学生定出最该弄清的那一个问题,再围绕它调查。所以同一个”经济与回报”维度,对一个纠结创业的人和一个想考公的人,会变成两个不同的问题。这把”每一站都一个样”从根上解决——变化来自读人,而非套模板。

English. Two decisions, cleanly split:

  • WTE decides which dimension the next stage examines (one un-surfaced dimension from the 18-scene pool, by value-of-information).
  • The investigator, once the dimension is set, reads the human model (profile + uncertainty map) to define the single most-worth-clarifying question for this specific student, then investigates it. So “经济与回报” becomes a different question for a would-be entrepreneur vs a 考公 aspirant. The variation comes from reading the person, not a template.

目标 / Objective

中文。 最大化对此人理想偏好排序不确定性的期望下降,同时把他在回避的维度摆上台面(反确认偏误)。不是降低每个维度的不确定性,而是降低会改变排序的那些。

English. Maximize the expected reduction in uncertainty about the person’s ideal-preference ranking, while surfacing the dimensions they avoid (anti-confirmation-bias) — the uncertainty that would change the ranking, not per-dimension uncertainty.

算法 / The algorithm

中文。 每一站:

  1. 建不确定性地图 —— LLM 建模器(提示词 wte_select)读 画像 + 当前排序 + 重排历史,对18 维池里尚未展开的每一个维度评 {不确定性, 是否改变排序, 是否被回避/偏误}。提示里带上每个场景的 pattern(元模式)与 when_relevant(高价值情形),帮它选得准。
  2. 打分(VOI) —— 不确定性 × 决策相关性 × 尚未检视,外加直面偏误加成。“最少被检视”不取字面覆盖率——一个检视过但仍未定的维度,可能比一个没碰过却无关的更值得。
  3. 选 argmax —— Python 校验所选 key 在池中、不重复,选定;失败一律退回池中第一个未检视项(游戏永不崩)。
  4. 记忆化 —— 每个站序号只选一次,使预取缓存与真正展开一致。

整局 STAGE_CAP=7,所以 WTE 是为每个学生从 18 维里挑出信息价值最高的 7 站——因人而异的子集,而不只是重排。

English. Each stage:

  1. Build the uncertainty map — the LLM modeler (prompt wte_select) reads the narrative + current ranking + rerank history and scores each un-surfaced dimension of the 18-pool as {uncertainty, would-change-ranking, avoided/bias}. The prompt carries each scene’s pattern + when_relevant so it picks well.
  2. Score (VOI)uncertainty × decision-relevance × under-surfaced, plus a bias-confrontation bonus. “Least-examined” is not literal coverage — a covered-but-unresolved dimension can beat an untouched irrelevant one.
  3. argmax — Python validates the chosen key is in the pool & not a repeat; on any failure it falls back to the first un-surfaced dimension (the game never breaks).
  4. Memoize — one pick per stage index, so the prefetch cache and the real serve agree.

With STAGE_CAP=7, the WTE selects the 7 highest-VOI dimensions of 18 for each student — a person-specific subset, not just a reordering.

实例(实测)/ Worked example (verified)

中文。 一个”对计算机/创业有热情、家里希望考公、最担心赚钱与留大城市、对课程难度没概念”的学生,WTE 会优先选他不确定且影响排序的维度(课程、城市、经济),跳过已经笃定的(兴趣)——而一个 AI 焦虑、随大流选 CS 的学生,则可能被引向 AI替代性 / 热门内卷 / 外部噪音vs内省 这些 v2 新维度。不确定性地图逐项给出”为什么选这一站”。

English. For a student “passionate about CS/创业, family wants 考公, most worried about money + big-city, no concept of courseload,” the WTE prioritizes the dimensions that are uncertain and ranking-relevant for them (course, city, finance) and skips the settled one (interest) — while an AI-anxious, herd-following CS student may be steered to the v2 dimensions AI替代性 / 热门内卷 / 外部噪音vs内省. The uncertainty map gives a per-pick “why.”

现状与路线 / Status & roadmap

中文。 已上线(v2,2026-06-17):18 维场景池 + STAGE_CAP=7 的因人而异子集选择;调查员读人类模型定具体问题;预取(重排/改画像即重热);提示词在 gaokao/prompts.json已完成的旧待办:✓ 更丰富的维度池(原 7→18)、✓ 子集(不是人人走满 7,Zhilin)。仍待办:① 专业内路径(同一专业内 绩点/竞赛·科研·学工·社团,Tianyi)作为”专业内子场景”;② 把逐站语音 / “了解更多”点击并入不确定性地图刷新;③ 形式化 VOI(LLM 直选 → 显式打分);④ 用真实论坛文本深化场景 grounding(知乎/小红书受反爬限,见 scenes)。

English. Live (v2, 2026-06-17): the 18-scene pool + STAGE_CAP=7 person-specific subset selection; the investigator reads the human model to set the question; aggressive prefetch (re-warms on reorder / profile-edit); prompt editable in the editor. Old roadmap now done: ✓ richer pool (7→18), ✓ subsetting (not everyone walks 7, Zhilin). Still open: ① inner-major paths (绩点/竞赛 · 科研 · 学工 · 社团 within a major, Tianyi) as major-internal sub-scenes; ② fold per-stage audio / “know more” clicks into the uncertainty map refresh; ③ formalize VOI (LLM-direct-pick → explicit scoring); ④ deepen scene grounding with real forum text (Zhihu/小红书 anti-bot-limited, see scenes).

scenes · ideal-preference-dimensions · profile-construction · reflective-equilibrium-algorithm · log