在做出不可逆决定前,先把另一种人生走一遍。
《人生分岔机》是面向知乎 AI 黑客松“跨次元游乐场”赛道打造的可运行互动叙事产品。它从知乎社区的真实经验出发,处理“稳定高薪工作与跟领导创业如何选择”这类现实困境,把一次纠结拆成三条可比较的路线、一个需要验证的关键假设,以及一个可以在现实中执行的七天实验。
它不预测用户的未来,也不输出“最佳答案”。用户会看到每条路的收益、代价、未知和证据边界,然后自己决定下一步。
很多人生选择不是没有答案,而是每个答案都要付出代价。比如“留在年薪稳定的岗位,还是跟熟悉的领导出去创业”,真正让人卡住的往往不是勇气,而是几件事说不清:
- 领导说的股权、客户和现金流,哪些已经落到纸面,哪些只是饭桌上的承诺;
- 选择跳出去以后,收入、家庭和退路由谁承担;
- 留在原地看似安全,但错过的机会成本到底有多大;
- 看了很多经验分享,最后仍然不知道下一步该向谁问、该查什么、怎样判断消息是真的。
知乎社区里有大量这样的讨论,但普通阅读很容易停在“收藏”和“转发”。用户能看到别人的结论,却很难把这些经验放回自己的处境里,也很难比较“我没走的那条路”会发生什么。
《人生分岔机》把知乎经验变成一场可以亲自参与的互动叙事。用户带着自己的约束进入故事,先走过几条可能的人生,再挑出自己最相信的假设,最后用一个七天内能完成的小实验去买回现实信息。产品不替用户投票,也不假装算出成功率;它要做的是把模糊的纠结拆成选择、证据、代价和下一步。
这也是它和普通“人生模拟器”不同的地方:结局不是终点,未选择的路会留下回声;AI 不是直接给答案,而是帮助整理知乎内容、生成候选角色和情境;真正落地的判断仍然由可复现的规则和用户自己的现实记录完成。
一次完整体验约 5–7 分钟。用户会经历一条完整的“社区经验 → 角色选择 → 现实验证”链路,而不是只看一段自动生成的故事。
同一个困境会被拆成三幕:
- 承诺之夜:面对领导的邀请,决定先查清条件、继续观望,还是直接加入;
- 证据熔炉:从知乎经验卡中选择与你当前处境最接近的线索,看到作者、原文和适用边界;
- 想法检验:挑出一个最相信的判断,例如“领导真的会给股权”,再用新线索检验它。
每次选择都会改变后续状态。页面展示的不只是下一句台词,还包括现金缓冲、家庭压力、信息完整度和退路等变化。
系统提供“留守轨道、全押新局、搭桥试水”三种路线。选择一条并不会删除另外两条,报告里仍能看到没有走的世界在同一时间发生了什么。这让机会成本变成可以比较的剧情,而不是一句“可能会后悔”。用户也可以从任意世界重新开始,不影响原来的会话。
关键想法的结果有三种:证据支持、证据冲突、暂时不清楚。如果事情真的和预期一样,系统会给出确认动作;如果出现意外,则记录冲突和下一步核验。保留“不清楚”很重要,因为现实里的信息经常不完整,假装确定反而会误导用户。
七天实验不是固定彩蛋。引擎会根据用户走过的路线、做过的动作、假设结果和当前压力,选择不同的实验包:有人需要核对合同和股权,有人需要访谈客户,有人需要先算清家庭现金流。每天可以记录行动、材料和反馈;第七天再选择最接近证据的结果,形成“继续、调整或暂停”的下一步。
报告把前面的选择重新组织成一张可读的决策地图:当前路线得到了什么、失去了什么、还有哪些未知,另外两条路的差异在哪里,最危险的盲点是什么。雷达图负责快速比较,文字卡负责解释原因,未来来信只作为反思视角,不冒充预测。
项目使用知乎官方开放平台的检索快照作为候选素材,保留来源 ID、作者、原文链接、摘要和适用条件。素材先进入 /evidence-review 工作台,逐条通过、驳回或标记待核验;未达到门槛的内容不能进入正式场景。这样既能利用知乎社区内容,又不会把未经核对的观点直接包装成“系统结论”。
分享卡会带上议题、路线、关键选择、实验结论和下一步,但会移除 session ID、账号和当天备注。当前 Demo 默认离线优先,没有 AI Provider 或 OAuth 也能跑通。场景、世界线、证据和实验都使用独立数据结构,后续可以把“读研还是工作”“要不要换城市”等议题接入同一套引擎。
npm installnpm run dev直接打开 http://127.0.0.1:4173/demo,使用固定种子进入推荐路线,适合现场讲解和反复演示。
其他入口:
| 地址 | 用途 |
|---|---|
/ |
首页与项目介绍 |
/demo |
固定 90 秒队友 Demo |
/topic-lab |
预设或任意问题的候选结构生成 |
/evidence-review |
知乎素材审核、版本与发布门禁 |
/calibrate |
约束校准 |
/play/[sessionId] |
三幕推演 |
/result/[sessionId] |
代价报告与七天实验 |
/api/health |
应用健康检查 |
固定 Demo 的逐步点击路线见 content/D08-demo-kit.md。
- 打开 http://127.0.0.1:4173/demo,等待系统装入固定会话。
- 在第一幕选择“把四周要查的事写下来”,进入“搭桥试水”路线。
- 浏览分岔回声,点击“进入第 2 幕”。这里可以先指向另外两条世界,再继续。
- 第二幕选择“条件谈妥,再正式加入”,点击“进入第 3 幕”。
- 在想法检验中选择“领导真会把股权给你”,再选择验证线索“合同里没有”,观察证据冲突如何改变后续叙事。
- 进入第三幕,选择“条件都过关,正式加入”,点击“生成代价报告”。
- 在报告页依次查看当前路线、另外两条世界、得到/失去/仍不知道,以及“七天现实实验”。
- 点击“开始七天实验”。可以用“快速推进实验”完成演示,也可以逐日填写行动和证据;第七天选择最接近现实的反馈。
- 最后打开分享卡,检查议题、选择内容、实验结论和下一步是否完整。分享卡不会带出个人备注或内部会话 ID。
从首页点击“启动人生实验”,先完成约束校准,再按自己的节奏选择世界和行动。想换一个问题,可以进入 /topic-lab 生成候选结构;当前正式三幕场景仍是创业邀请,候选议题需要审核后才能发布。
打开 /evidence-review,先查看候选素材的标题、作者、原文链接和适用边界,再进行通过、驳回或待核验操作。至少通过 3 条并处理完待审核项后,才能锁定一个候选剧本版本。这个页面是内容生产工作台,不影响普通用户的主流程。
Next.js App Router
├── src/components/experience 页面与交互
├── src/features/game Schema、规则引擎、实验和分享纯函数
├── content/scenarios 场景、三幕行动、结果模板
├── content/evidence 知乎来源卡与检索快照
├── scripts 内容校验与知乎快照刷新
└── tests + e2e 单元、组件和浏览器验收
核心原则:
- 内容和引擎分离。替换场景包即可扩展到“读研还是工作”等议题。
- 规则确定性优先。状态变化、实验选择和结果报告都可复现。
- 来源可追溯。知乎素材保留来源 ID、作者、原文链接和适用边界。
- 事实与反思分开。未来来信是情景文本,不是现实预测。
- 审核先于发布。候选内容不会绕过人工审核直接进入正式推演。
更完整的系统说明见 docs/ARCHITECTURE.md。
项目使用官方 zhihu Skill 管理 CLI 和 Access Secret。Access Secret 不写入源码、浏览器或日志。
node scripts/fetch-zhihu-evidence.mjs \
--query "跟领导创业 辞职 股权 现金流 如何选择" \
--count 10脚本会生成 content/evidence/zhihu-search-latest.json。检索结果只是候选素材,仍需在 /evidence-review 逐条审核。当前仓库默认关闭 OAuth:hackathon.config.json 中 oauth.enabled 为 false。
npm run lint
npm run typecheck
npm test
npm run build
npm run test:e2eGitHub Actions 会在 push 和 pull request 时自动执行 lint、类型检查、单元测试和生产构建。
- 当前冻结的正式场景是“稳定高薪工作与跟领导创业如何选择”。
/topic-lab可以生成任意议题的候选结构,但正式三幕引擎仍要求审核后的场景包。- 会话默认保存在当前浏览器
localStorage,没有登录和云端同步。 - 知乎素材以本地快照方式进入 Demo,不承诺页面实时搜索。
- 结果中的数值是决策演练模型,不是职业、投资或法律建议。
- 把知乎检索、去重、人工审核和场景发布做成服务端流水线。
- 为审核通过的议题生成完整
ScenarioPack,接入正式三幕引擎。 - 在事实边界内增加在线 AI 个性化叙事,并保留确定性规则兜底。
- 增加匿名云端会话、协作决策和可撤销的 OAuth 个性化能力。
本项目使用 MIT License,详见 LICENSE。