用游戏化的方式,让投资小白在 10 分钟内体验一场金融风暴,发现自己的认知偏差。
FinMind(财智心镜)是一款面向投资新手的行为金融学教育游戏。玩家将在一个经过"时空压缩"的模拟环境中,体验类似历史金融危机的市场波动,并在游戏结束后收到一份由 AI 生成的投资人格审计报告。
我们相信:最好的投资教育不是告诉你该怎么做,而是让你亲身体验"人性的弱点"如何影响你的钱包。 这不仅是一场游戏,更是一面"认知镜子"——它不评判你亏了多少钱,而是揭示你为什么亏。
很多金融小白在课堂上能说出"损失厌恶、锚定效应、FOMO",但一到第一次下单就焦虑失控。这类焦虑不是因为知识太少,而是因为缺少低风险、可复盘的情绪训练场。
FinMind 采用"先体验、后解释"的教育路径:
- 先感受 - 在模拟市场里真实经历恐慌、犹豫、冲动等情绪。
- 再认知 - 用行为数据和 AI 复盘,把情绪反应翻译成可理解、可改进的决策习惯。
- 建纪律 - 帮助用户建立可执行的投资心理纪律,而非单纯的知识灌输。
目标受众:投资入门者、金融专业学生、对行为金融学感兴趣的普通用户。
将沪深 300 历史危机行情压缩到 10 分钟,让用户在短时间内完成一轮完整的情绪周期(贪婪 - 恐惧 - 侥幸 - 绝望 - 反思)。K 线以动态滚动呈现,配合渐强的心跳音效和视觉效果,构建多感官沉浸体验。
当重大市场事件发生时,AI 导师会以"深夜老友"的人格化风格弹窗质询玩家,迫使玩家在压力下做出决策。系统记录犹豫时间和决策模式,直击心理软肋——"你说这次不一样——上次你也是这么说的。"
三类新闻(官方公告、市场传闻、社交噪音)并行推送,训练用户在信息洪流中做有效判断,模拟真实投资场景中的信息不对称环境。
通过付费情报与随机收益,模拟信息不对称和冲动决策代价,让用户体验"捷径思维"的风险。
游戏结束后由 AI 生成包含性格标签、认知偏差分析(损失厌恶系数 λ、FOMO 指数等)、五维雷达图、个性化复盘建议和金融知识科普的综合报告。报告采用"轻叙事 + 数据可视化"风格,目标不是羞辱,而是唤醒。
实时答疑 Agent 负责游戏过程中的陪练(术语解释、行情理解),赛后复盘 Agent 负责结构化诊断,将"过程引导 + 结果复盘"闭环打通。
| 层级 | 技术选型 | 说明 |
|---|---|---|
| 全栈框架 | Next.js 16 (App Router) | 前后端一体化,页面与 API 统一承载 |
| 交互引擎 | React 19 + TypeScript 5 | 复杂状态可控,高频交互流畅 |
| 样式系统 | Tailwind CSS 4 | 高信息密度界面,视觉规范统一 |
| 动效层 | Framer Motion | 突发事件、盈亏反馈的节奏感和感知强度 |
| K 线图表 | Lightweight Charts | 低负载高性能的专业金融图表引擎 |
| 新手引导 | Driver.js | 降低金融小白首次操作门槛 |
| AI 推理 | OpenAI 兼容接口 + Qwen 大模型 | 实时问答与赛后复盘 |
| 代码规范 | ESLint 9 | 统一代码风格与质量标准 |
| 容器化 | Docker | 标准化运行环境,支持快速部署 |
finmind-new-repo/
├── src/app/
│ ├── page.tsx # 主游戏页面
│ ├── layout.tsx # 全局布局
│ ├── globals.css # 全局样式
│ ├── api/
│ │ ├── game/
│ │ │ ├── end/ # 游戏结算 API(生成报告)
│ │ │ ├── log-action/ # 决策记录 API
│ │ │ ├── store.ts # 会话数据存储
│ │ │ └── utils/ # 行为分析算法
│ │ ├── ai-assistant/chat/ # AI 实时问答 API
│ │ ├── leaderboard/ # 排行榜 API
│ │ ├── data/ # 数据接口
│ │ └── health/ # 健康检查
│ ├── components/
│ │ ├── Chart.tsx # K 线图表组件
│ │ ├── MarketChart.tsx # 市场行情图表
│ │ ├── NewsFeed.tsx # 新闻流组件
│ │ ├── NewsPanel.tsx # 新闻面板
│ │ ├── BreakingNewsModal.tsx # AI 质询弹窗
│ │ ├── IntelDecisionModal.tsx # 情报决策弹窗
│ │ ├── ReportModal.tsx # 报告展示组件
│ │ ├── TradeConsole.tsx # 交易控制台
│ │ ├── TopDashboard.tsx # 顶部数据看板
│ │ ├── GameHeader.tsx # 游戏头部
│ │ ├── AIAssistant.tsx # AI 助手组件
│ │ ├── LeaderboardModal.tsx # 排行榜弹窗
│ │ ├── StockDanmaku.tsx # 股票弹幕
│ │ └── Toast.tsx # 提示组件
│ ├── hooks/
│ │ ├── useGameEngine.ts # 游戏引擎 Hook
│ │ ├── useTradingLogic.ts # 交易逻辑 Hook
│ │ ├── useAIAssistant.ts # AI 助手 Hook
│ │ ├── useRoboAdvisor.ts # 智能投顾 Hook
│ │ ├── useOnboarding.ts # 新手引导 Hook
│ │ └── useToast.ts # 提示 Hook
│ └── types/
│ └── game.ts # 游戏类型定义
├── data/
│ ├── leaderboard.json # 排行榜数据
│ └── Paid_news.json # 付费新闻数据
├── display/ # 展示资料
├── public/ # 静态资源
├── scripts/ # 构建脚本
├── Dockerfile # Docker 部署配置
├── next.config.ts # Next.js 配置
├── tsconfig.json # TypeScript 配置
└── package.json
- Node.js 20+
- npm 包管理器
- (可选)Docker
# 1. 克隆项目
git clone https://github.com/ZhaoYangPL/FinMind.git
cd FinMind
# 2. 安装依赖
npm install
# 3. 配置环境变量
# 创建 .env.local 文件,填入你的 ModelScope API Token
# 获取方式:https://modelscope.cn/my/myaccesstoken
echo "FinMindKey=your_modelscope_api_token" > .env.local
# 4. 启动开发服务器
npm run dev访问 http://localhost:7860 开始体验。
# 1. 构建镜像
docker build -t finmind .
# 2. 运行容器
docker run -p 7860:7860 -e FinMindKey=your_modelscope_api_token finmind访问 http://localhost:7860 开始体验。
# 1. 构建生产版本
npm run build
# 2. 启动生产服务
npm run start| 变量名 | 说明 | 必填 |
|---|---|---|
FinMindKey |
ModelScope API Token,用于 AI 报告生成和实时问答 | 是 |
- 进入游戏 - 打开页面后,跟随新手引导了解界面。
- 观察行情 - K 线图自动运行,新闻面板推送市场资讯。
- 做出决策 - 通过交易控制台进行买入/卖出操作。
- 应对质询 - 重大事件触发时,AI 导师会弹窗要求你即时表态。
- AI 陪练 - 游戏过程中可随时向 AI 助手提问。
- 查看报告 - 游戏结束后生成投资人格审计报告。
- 学习反思 - 阅读报告中的认知偏差分析和金融知识科普。
- 损失厌恶 (Loss Aversion) - 亏损带来的痛苦是同等收益快乐的 2 倍
- 锚定效应 (Anchoring) - 过度关注买入价格而忽视市场变化
- FOMO (Fear of Missing Out) - 害怕错过而追高买入
- 鸵鸟效应 (Ostrich Effect) - 逃避面对亏损的现实
- 确认偏差 (Confirmation Bias) - 只相信符合预期的信息
MIT License