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 newcore/layout.
这是什么 · What this is
中文:忠实记录这个游戏当前是怎么把「反思均衡」落地的——怎么考虑用户画像、怎么提供信息、怎么撬动那些最少被审视的维度、怎么处理偏见。理论锚点:Ludwig, Mullainathan, Pink & Rambachan (2025),行为经济学 2.0——算法帮助一个人达到他自己的反思均衡;这个工具只呈现,从不推荐。代码:
gaokao/{ranked,quiz,checklist}.py。EN: A faithful statement of how the game operationalizes 反思均衡 (reflective equilibrium) right now: how it considers the profile, how it supplies information, how it works the least-examined dimensions, and how it handles bias. Theory anchor: Ludwig, Mullainathan, Pink & Rambachan (2025), Behavioral Economics 2.0 — algorithms help a person reach their own reflective equilibrium; the instrument surfaces, never recommends. Code:
gaokao/{ranked,quiz,checklist}.py.
推演循环 · The loop (algorithm)
中文:整个流程围绕一份可排序的清单展开。入口收集 5 个「专业@学校」的排序 + 初始信心 + 画像问卷 + 自我描述(文字/语音);随后走过 7 个因素站(课程→日常→兴趣→经济→城市→职业→代价),每一站先沉浸地演一段当前第 1 名在该因素上的、有据可查的第一人称场景,再调查第 1 名与一个强力对比项的差距,最后给学生自由重排的机会;一旦第 1 名变了,轨迹就转向新的第 1 名(已预取,瞬时切换)。7 站走完后做稳定性测试,最后给出新排序与总结。
EN:
intake: ranked list of 5 (专业@学校) + initial confidence + profiling quiz + free-text/voice
│
▼
for each of 7 factor-stages (course → daily → interest → finance → city → career → cost):
1. INFORM live a grounded, web-search-backed first-person scene of the current #1 on this factor
2. INVESTIGATE surface how #1 compares to one strong contender on this factor (the "你可能没考虑过…" tip was **retired 2026-06-17** — see [per-stage-anatomy Legacy](/projects/reflection-game/per-stage-anatomy))
3. (student may RE-RANK the list freely)
4. if #1 changed → the trajectory PIVOTS onto the new #1 (prefetched → instant)
│
▼
STABILITY: reframe the current #1 under fear / opportunity / authority (each = a bias) → does it sway you?
│
▼
END: new ranked list · initial→final shift · frames-stable count · 叶晓阳 6-item 反思均衡检查清单 · final confidence
中文:排序清单本身就是被测量的对象;重排是核心交互;每一站的存在意义都是「给出可能撼动排序的信息」。所谓均衡,就是一份在充分信息 + 偏见矫正之后依然站得住的排序。
EN: The ranked list is the measured object; re-ranking is the core interaction; each stage exists to give information that could move the ranking. Equilibrium = a ranking that holds after full information + bias correction.
怎么考虑用户画像 · How it considers the profile
中文:
PersonalityFile(core/profile.py)是每个用户的模型 = 问卷/测验得到的先验 + 文字/语音自述 + 用户每一次选择所携带的维度向量的滑动均值,落在 8 对极性的量表上(求真↔自保 … 严谨↔慈悲)。- 入口处由画像问卷(
core/quiz.py,精选的高信息量单选题)与文字/语音框共同构建;每一站都可实时编辑(🪞「你和 AI 共同理解的你」→/rank_profile),编辑会喂给下一站。 - 通过
serialize_for_prompt()注入每一次调查。护栏:它只影响学生会遇到哪些岔路/细节(相关性)——绝不影响哪个选项显得更对(不迎合 / 不造回音壁)。
EN:
PersonalityFile(core/profile.py): a per-user model = questionnaire/quiz prior + free-text/voice self-description + a running mean of the dimension-vectors of every choice, over the 8-pole rubric (TRUTH↔PROTECTION … RIGOR↔MERCY).- Built at intake from the profiling quiz (
core/quiz.py, curated max-info MCQs) and the free-text/voice box; editable live every stage (🪞「你和AI共同理解的你」 →/rank_profile), so edits feed the next stage. - Injected into every investigation via
serialize_for_prompt(). Guardrail: it steers which forks/details the student meets (relevance) — never which option looks good (no affirmation / echo chamber).
怎么提供信息 · How it provides information
中文:三层,事实优先:
- Grounding 知识库(
grounding.py,859 个专业):每个专业一张「事实/观点」分离的卡片——课程、职业、路径、薪资、日常真实、踩坑点、转向。 - 联网检索调查(调查员 investigator):针对确切的(因素,学校,专业)三元组,给出经权威来源核实的数字。
- 招生简介翻译(看懂这个专业)(已退役 2026-06-17):官方介绍 →(说人话)→ 他们没告诉你的。 全部受具体性契约约束:要从真实细节里演绎;数字/雇主/统计必须来自 grounding 或权威来源,否则只能定性——绝不编造。
EN: Three layers, fact-first:
- Grounding KB (
grounding.py, 859 majors): per-major fact/opinion card — courses, careers, paths, salary, daily reality, failure modes, pivots. - Web-search investigation (调查员 investigator): authoritative-source-verified figures for the exact (factor, school, major).
- Admissions-blurb translation (看懂这个专业) (retired 2026-06-17): 官方介绍 → 说人话 → 没告诉你的.
All under a concreteness contract: dramatize from real specifics; numbers/employers/stats must come from grounding or an authoritative source, else stay qualitative — never fabricate.
怎么撬动最少被审视的维度 · How it works the least-examined dimension
中文:
- 7 因素的序列刻意走那些学生容易低估的维度——日常/群体生活、城市、可逆性、机会成本——而不只是显而易见的「学校 vs 专业」。
- 调查员是主动探针:每一站都把第 1 名和在该因素上差异最大的对比项对照,结尾落在**「你可能没考虑过…」**——把信息精准投向他们尚未掂量的地方。(这正是 LfL(向学习者学习)路线里的主动辨识:不被动旁观,而是主动构造能揭示/呈现差距的选择。)
- 因素与偏见的完整清单见 Ideal-Preference Checklist。
EN:
- The 7-factor sequence deliberately walks dimensions students under-weigh — daily/communal life, city, reversibility, opportunity cost — not just the obvious 学校 vs 专业.
- The investigator is the active probe: at each factor it contrasts the #1 against the contender most different on that factor, ending in “你可能没考虑过…” — information targeted at what they haven’t weighed. (This is the active-identification move from the LfL line: don’t passively watch, construct the choice that reveals/surfaces the gap.)
- The full inventory of factors + biases is the Ideal-Preference Checklist.
怎么处理偏见 · How it handles bias
中文:
- 框架稳定性测试(第 7 站之后):把当前第 1 名放进三个劝说框架,每个绑定一种偏见——恐惧/损失厌恶、机会/乐观偏差、权威/权威服从——三者都在试图劝学生放弃第 1 名。
- 先测量后揭示:框架先以朴素的「别人可能会这样劝你放弃 X」呈现,不打标签;学生凭直觉反应;之后才揭示这些其实是偏见。(若一上来就贴标签,他们会有意识地抵抗,什么也测不到。)
- 框架不变性 = 一个反思均衡信号(「即使别人反对,我也不会轻易动摇」);动摇则能定位是哪种偏见撼动了他。结尾会总结「框架稳定数」和他在哪些偏见上动摇了。
EN:
- The framing-stability test (after stage 7): the current #1 is reframed under three persuasion frames, each tied to a bias — 恐惧/损失厌恶, 机会/乐观偏差, 权威/权威服从 — all aimed at talking the student out of their #1.
- Measure-then-reveal: the frames are shown as plain “别人可能会这样劝你放弃 X” with no labels; the student reacts on instinct; only then are the biases revealed. (Labeling upfront would let them consciously resist and measure nothing.)
- Frame-invariance = a 反思均衡 signal (“即使别人反对,我也不会轻易动摇”); wavering localizes which bias moved them. The end summarizes frames-stable + the biases they wavered on.
均衡判据(停止条件)· The equilibrium check (stopping condition)
中文:结尾给出新的排序清单,并请学生对照叶晓阳的 6 项反思均衡检查清单(了解学什么课程 / 知道做什么工作 / 考虑过放弃什么 / 和在读者聊过 / 不轻易动摇 / 排过城市-学校-专业优先级)做自检,并给最终信心打分(对比初始信心)。一个在充分信息 + 偏见矫正之后依然站得住的决定——「我能接受,我不后悔」——就是操作化的反思均衡。
EN: The end gives the new ranked list and asks the student to self-check against 叶晓阳’s 6-item 反思均衡检查清单 (了解学什么课程 / 知道做什么工作 / 考虑过放弃什么 / 和在读者聊过 / 不轻易动摇 / 排过城市-学校-专业优先级) and to rate final confidence vs their initial one. A decision that holds after full information + bias correction — “我能接受,我不后悔” — is the operational reflective equilibrium.
记录了什么(数据)· What’s logged (the data)
中文:每个会话 → session_log.jsonl:5 个选项、初始→最终排序、每一次重排(站次 + 从/到 + 第 1 名是否变化)、每站的因素/第 1 名/对比项/来源、框架测试结果(被哪些偏见撼动)、检查清单、以及 confidence_initial→final。这个工具本身就是数据集。
EN: Per session → session_log.jsonl: the 5 options, initial→final ranking, every re-rank (stage + from/to + 1-changed), per-stage factor/top/contender/sources, frame-test results (biases swayed), checklist, and confidence_initial→final. The instrument is the dataset.