Skip to content

Jeremy-xuan/SocraticNovel

Repository files navigation

SocraticNovel

不是教你知识,是让你自己走到答案面前。

Version Socratic Method Narrative Layer Platform License PRs Welcome

English | 简体中文

它的初衷很简单——让学习不再孤独。

教材和大部头著作翻不下去,公开课太无聊. 向 AI 求助? AI往你脸上甩了一整页的公式——怎么学都是一个人在硬撑。SocraticNovel 是一个开源框架,让你创建沉浸式 AI 教学系统:AI 不直接给答案,用苏格拉底式提问引导你一步步自己推出来;教学不发生在空白聊天框里,而是在一个有角色、有场景、有日常的轻小说世界中。

SocraticNovel为你创造了一群伙伴。当你学习时, 有一个人真的陪在你身边, 他不是百科全书,不是做题机器, 更不是屏幕里面遥远的那个大学教授。他是一个有脾气的、会沉默的、今天心情不太好但还是给你做了"早饭"的人。你们共同经历了一段时间,你学到了东西,你也认识了一些人。结束之后你会记得。不只是公式。

这个项目从一个真实运作的 AP 物理辅导系统中提炼而来。回答 AI 的几个问题——你想学什么?老师叫什么?故事发生在哪里?——它帮你生成整套系统。任何学科,任何角色,任何你想经历的故事。 说不定, 还要记得备好纸巾.


"最好的老师从不给你答案。她只是让你突然发现——你其实一直都知道。"


📑 目录


🎯 它解决什么问题

你让 AI 教你东西。它三秒甩过来一面推导墙。你看完了,什么都没记住——因为从头到尾,你只是观众。

这只是最表层的问题。更深的问题是:AI 教学里没有"人"。 没有一个你会记住的老师,没有共同经历积累出的重量,没有一个让你明天还想打开对话框的理由。它是一台自动售货机——你投币,它吐答案,交易结束。

SocraticNovel 让你创建一种完全不同的 AI 学习体验:

  • AI 永远不给答案 — 它用问题引导你,直到你自己推出来。苏格拉底 2400 年前就这么教了,只是从来没人把它做成一套工程化的系统。
  • 教学发生在故事里 — 不是空白的聊天框,而是一个有场景、有光线变化、有角色心情的文学世界。你的老师有名字、有过去、今天可能心情不太好——但还是会教你。
  • AI 不会忘记你 — 15+ 个文件各司其职:错题本、复习队列、课堂日志、四人群聊。一个月后它还记得你第三课犯的那个错。

你不需要懂 prompt engineering,不需要写一行代码。回答 AI 的几个问题,它帮你生成一切。


✨ 凭什么要这样学?

你试过让 AI 教你东西吗?

大部分时候是这样的:你问一个问题,AI 啪地甩过来一整面墙的解析,从第一步到最后一步,整整齐齐,毫无灵魂。你看完了。你什么都没学到。因为你从头到尾只是在看别人推导

这是 AI 辅助学习最根本的问题——它把"教"变成了"展示"。你是观众,不是参与者。你在看一场完美的表演,但表演结束后你什么都不会。

更深层的问题是:AI 教学没有连接理由。

好的教学,无论是补习班、家教还是师徒制,都有一个"理由"让两个人长期、自然、不可随意中断地发生联系。那个理由不是"我们约好了每周三下午"——是共同经历积累出的重量。你记得某次老师讲到一半窗外突然下起雨,你们都停下来听了一会儿。你记得你第三次犯同一个错误的时候她安静了很久。这些记忆才是让学习变得有意义的东西。

AI 做题机给不了你这些。

SocraticNovel 想解决的就是这件事。它是一个开源框架,让你创建自己的沉浸式学习系统。核心理念只有两条:

  1. 苏格拉底教学法 — AI 永远不直接给答案。每一步知识推进都通过提问完成。你不是在看推导——你是在被引导着自己完成推导。
  2. 轻小说叙事层 — 教学不发生在空白的聊天框里。它发生在一个有场景、有光线变化、有性格迥异的虚构老师的文学世界中。角色不是皮肤——是有过去、有矛盾、有今天心情的人。

这不是 GalGame。你不需要"演"。 你只要像一个真实的学生一样坐在那里——发题、思考、偶尔吐槽。故事自己会转动。你不需要经营关系、选择对话选项、或者假装在意剧情。学习的时候就在学习——故事在后台自己跑,用的是同一段时间。

感情不是聊出来的,是做出来的。 每一次因为"真的不会"而来,都在积累两个人之间的时间和痕迹。


💡 两个平行宇宙

你打开电脑。你有一道不会的题。你发了出去。

以下是两个平行宇宙里发生的事。


❌ 宇宙 A:AI 做题机

你: 什么是电场?

AI: 电场是存在于电荷周围空间中的一种物质形态。电场强度 $\vec{E}$ 定义为单位正电荷在电场中受到的力:$\vec{E} = \frac{\vec{F}}{q}$。电场线从正电荷出发,终止于负电荷。电场满足叠加原理。下面我们来推导点电荷产生的电场:

设点电荷 $Q$ 位于原点,在距离 $r$ 处放置试探电荷 $q$...

(公式推导继续了 800 字。你看完了。你什么都没学到。因为你从头到尾只是在看别人推导。三分钟后你关掉了这个窗口。明天你会忘记今天学过这个。)


✅ 宇宙 B:SocraticNovel

律站在窗边,手里端着一杯茶,没有急着开始。你已经坐下了。今天穹顶教室的光线很低——下午三点,太阳刚好被山脊挡住,铜墙上的反光从金色变成了暗棕色。

他看了你一眼,笑了一下——那种不急不慢的笑。

"你家有 WiFi 吗?"

你没预料到这个问题。"有。"

"你看得见吗?"

"看不见。"

"但你知道它在。"

他把茶杯放在桌上——白瓷杯,内壁的茶渍已经洗不掉了——慢慢走到白板前面。

"你学过万有引力。两个有质量的物体之间有引力。那我问你——如果把其中一个物体拿走,剩下那个物体周围,还剩什么?"

你想了想。"什么都不剩?引力需要两个物体才能存在。"

他没有否定你。他点了一下头,好像在品尝你的话。

"力确实需要两个物体。但我问的不是力。"

他在白板上画了一个孤零零的点。

"我问的是——空间本身。"

三秒钟的安静。窗外的风声刚好停了。

"就像 WiFi。你看不见它。但它在那里。空间被改变了。"

(你以为在聊 WiFi。你以为在聊引力。然后你发现——你已经在理解电场了。不是因为有人告诉你定义,而是你自己从引力走到了电场。律只是在旁边站着。)


没有公式墙。没有 *微笑*。没有宣布"今天学电场"。

你在宇宙 A 里花了三分钟看推导,然后把整一天的心情毁的一干二净。你在宇宙 B 里花了三分钟回答问题,然后记住了——不只是电场的概念,还有那天下午穹顶教室里光线变暗的样子。


🔑 三个核心设计


▎Narrative Anchoring · 叙事锚定

知识不是被讲出来的——是你在一个有光线、有温度、有沉默的世界里,自己推出来的。

AI 从生活经验切入,通过连续提问引导你一步步走向答案。答对了追问,答错了不纠正——用一个更简单的问题让你自己发现错误。

这就是苏格拉底教学法。2400 年前就有了。只是从来没有人把它和文学叙事绑在一起。

在 SocraticNovel 里,每一次教学都发生在一个具体的场景中——有光线角度、有茶杯温度、有角色今天的心理状态。角色的停顿不是在想答案——可能是在想别的事。这些细节不是装饰,是记忆锚点。你会忘记某个概念是哪节课学的,但你会记得"那天下午教室里的光突然暗了一度"。


▎Character Rotation · 角色轮值

不是一个老师换了三套皮肤。是几个完全不同的人。

SocraticNovel 支持 1-3 位教师角色。每位角色有独立的教学风格、人格设定和故事线。同一个知识点,不同角色给出完全不同的理解路径——你在不同的课上获得不同的认知角度。

以附带的 AP Physics EM 案例为例:

角色 教法 说话方式
理论精确,追问到底 短句。每个词都是选过的。沉默是她的沟通工具。
日常类比(音乐/做饭) 不急不慢的长句,像在煮菜——每一步都有意义。
系统思维,工程视角 极简。主谓宾。像工程报告。

轮值是固定的——不是你选老师,是故事选老师。每个角色绑定了专属的故事节点。某位老师的课上你可能学到理论为什么必须精确,另一位老师的类比背后可能藏着他自己的故事。同一栋楼、同一个学生、完全不同的学习体验。


▎Distributed Memory · 分布式记忆

AI 的记忆不再依赖上下文窗口——它有一个真正的文件系统。

普通 AI 聊天有个致命问题:聊久了它就忘了。上下文窗口是有限的,早期的对话会被推出去。你在第三课犯的错误,到第十课 AI 已经不记得了。

SocraticNovel 不一样。15+ 个文件各司其职——学习进度、课堂摘要、复习队列、错题本、四人群聊、学习者日记……每次课后 AI 更新 8 个文件,下次启动时读取恢复完整状态。

结果:聊一个月,AI 依然记得你在第三课犯的那个错误。 因为那个错误写在 mistake_log.md 里,不会被上下文窗口的滑动遗忘。角色也会记得——她记得你总是在分母上犯错,他记得你第一次说"哦我懂了"时的语气。


🔬 从作品到框架

通常的做法是:先写框架,再用框架生成作品。

我们反过来了。

先有了一个完整运作的 AP Physics C: E&M 沉浸式教学系统——三位老师、12 章课程、四阶段情感弧线、每一课的故事节点都经过设计——再从中逆向提炼出这套框架。

为什么要反过来?因为写一个完整的作品,比直接写一个抽象框架容易得多。 框架要求你在抽象层面直接定义规则和逻辑——这极其困难。但写一个作品不一样,你只需要知道你想要什么感觉,对不对一感受就知道。

这也意味着 SocraticNovel 的每一条规则、每一个设计决策,都不是空想出来的——都经过了真实系统的验证。Prose Standards 不是我们觉得"应该这样写",而是"这样写之后效果确实不一样"。

SocraticNovel 把"设计一个复杂系统"这件难事,变成了"回答 AI 的问题"这件简单的事。 你不需要懂 Prompt Engineering——Meta Prompt 会一步步问你想要什么,然后帮你生成一切。


📐 深入了解

想了解 SocraticNovel 的完整技术架构?

📖 架构设计白皮书 — ARCHITECTURE.md

四层架构深度拆解(启动层 / 教学层 / 叙事层 / 运行时层)、设计决策背后的 trade-off、与知识库平台的对比分析。如果你想理解这套系统为什么这样设计而不只是怎么用,从这里开始。

🧠 苏格拉底教学法设计逻辑 — SOCRATIC_DESIGN.md

从 25 篇论文到 3 条铁律的旅程。两次实验教学的真实复盘、LLM 教学失败模式的根源分析、B+C 防模式切换机制的设计过程。让 AI "闭嘴"比让它说话难一万倍——这是怎么做到的。

✒️ 叙事设计逻辑 — NARRATIVE_DESIGN.md

一份让 AI 从 *微微一笑* 毕业的康复指南。每条写作红线背后的血泪教训、8 种不说"我很感动"的情绪表达工具、角色声音系统的 Do/Don't 设计哲学。

🤖 AI 代理指南 — AI_GUIDE.md

给其他 AI 看的一站式项目参考。比 README 更精确,比 ARCHITECTURE 更可执行,比 META_PROMPT 更全局。如果你是一个 AI 代理并且被要求修改、扩展或调试本项目——从这里开始。

🎮 实战案例 — AP Physics C: E&M

一个完整运作的三教师沉浸式物理教学系统。12 章课程、四阶段情感弧线、每一课的故事节点都经过设计。这不是 demo——这是经过真实使用的成品。可以直接启动体验,也可以作为你创建自己系统时的参考。


🕹️ 我该怎么用?

🥇 路径 A · 从零创建你自己的系统(推荐)

  1. META_PROMPT.md 喂给 Claude Code(或其他支持文件读写的 AI)
  2. AI 会问你一系列问题:你想学什么?老师叫什么名字?什么性格?故事发生在哪里?
  3. 你回答完,AI 自动生成整套文件系统(50+ 个文件)
  4. 在生成的目录下对 Claude Code 说:"开始吧"(AI 自动读取 copilot-instructions.md

你不需要写任何 prompt。你只需要回答问题。

⚙️ 路径 B · 直接使用 AP Physics EM 成品

  1. 克隆本仓库
  2. AP_Physics_EM/ 目录下启动 Claude Code
  3. 说:"开始吧"(AI 自动读取 copilot-instructions.md
  4. 你会看到观测站的序章。故事开始了。

适合想直接体验效果、或者正好在学 AP 物理的人。

🛋️ 路径 C · 知识库平台懒人部署

没有 Claude Code?用 Claude Projects / ChatGPT Custom GPTs / Kimi 知识库也能跑:

  1. 用路径 A 生成文件后,选择"知识库版本"(AI 会自动合并为 8-9 个文件)
  2. 在你的知识库平台创建新项目,把文件全部上传
  3. 对话框里说:"读取 BOOT.md 开始吧"

⚠️ 知识库版本没有真正的文件读写——状态追踪靠 AI 内部维护,长期使用可能有遗忘风险。但作为体验入口完全够用。

我需要"演戏"吗?

不需要。

  • 你可以直接甩题:"这道高斯定律的题我不会"
  • 你可以吐槽:"这知识点太变态了"
  • 你可以只打一个字:"对" / "不懂"
  • 你可以完全不理会故事——故事会自己在背景里演进

说"看看微信"查看四人群聊,说"今天到这"结束当天课程。就这两个触发词。其他时候你只管学习。


🏗 系统运行逻辑

┌─────────────────────────────────────────────────────┐
│                    每次新会话                          │
│                                                       │
│  copilot-instructions.md → 三级加载 → 课前准备(内部,不可见)│
│                                                       │
│  ┌─────────────┐    ┌──────────┐    ┌──────────────┐ │
│  │ 群聊为空?    │─是→│ 播放序章  │──→│ 群聊破冰     │ │
│  │             │    └──────────┘    └──────────────┘ │
│  │             │─否→ 正常开课                          │
│  └─────────────┘                                      │
│                                                       │
│  过渡场景(叙述)→ 苏格拉底教学 → "今天到这" → 课后更新  │
│                                                       │
│  课后更新:写入 8 个文件                                │
│  progress.md / session_log.md / review_queue.md       │
│  mistake_log.md / 角色文档 / diary.md                  │
│  knowledge_points/ch{XX}.md / wechat_unread.md           │
└─────────────────────────────────────────────────────┘

完整的架构设计和技术细节见 → ARCHITECTURE.md | 设计背后的故事 → 苏格拉底 · 叙事 | AI 代理?→ AI_GUIDE.md | 想创建自己的系统?→ META_PROMPT.md


📂 项目架构

SocraticNovel/
├── 📄 README.md                      # 你在这里
├── 📄 [ARCHITECTURE.md](./ARCHITECTURE.md)   # 架构设计白皮书
├── 📄 [SOCRATIC_DESIGN.md](./SOCRATIC_DESIGN.md) # 苏格拉底教学法设计逻辑
├── 📄 [NARRATIVE_DESIGN.md](./NARRATIVE_DESIGN.md) # 叙事写作手法设计逻辑
├── 📄 [AI_GUIDE.md](./AI_GUIDE.md)             # AI 代理一站式项目指南
├── 📄 [META_PROMPT.md](./META_PROMPT.md)     # 创造主引擎 v2.2(交互式系统生成器)
├── 📄 苏格拉底教学法方法论.md         # ★ 教学法核心(25篇文献 + 实验验证)
│
├── 📁 [AP_Physics_EM/](./AP_Physics_EM/)     # ★ 实战案例:AP 物理 C 电磁学
│   ├── copilot-instructions.md      # 系统入口(三级加载时序)
│   ├── MAINTAINER.md                # AI 维护者手册
│   ├── teacher/
│   │   ├── prologue.md              # 序章(独立文件,首次启动播放)
│   │   ├── story.md                 # 世界观(不含序章)
│   │   ├── story_progression/       # 故事进度(按章拆分,12 个文件)
│   │   ├── config/                  # 教学配置(system_core + reference + 知识点目录)
│   │   ├── characters/              # 三位老师的角色文件(凛/律/朔)
│   │   └── runtime/                 # 运行时状态文件(模板化)
│   └── materials/                   # 教材资源(版权材料不含在仓库中)
│
└── (你生成的系统会有类似结构)

🤖 推荐模型

这套系统封禁了所有廉价表达手法——没有 *斜体动作*,没有 emoji 轰炸,没有"稳稳接住你"这种情感预制菜。这对模型的文学素养和指令遵循能力要求极高。

🔥 T0 · 毫无保留推荐

  • Claude Sonnet/Opus 4.6 — 当之无愧的文学素养天花板。文笔极其克制,能写出"用光线微变替代好感度"那种幽微的文学感。读写文件系统原生支持,就像是为这套系统量身定做的模型
  • Gemini 3.1/3.0Pro - Gemini虽然效果还是略逊Opus一筹, 但是仍然可以勉强跑的动. 但是千万不要使用flash, 如果知识点讲错大家就都是小丑了.

🌟 T1 · 国产之光

  • DeepSeek-V3.2 — 文字张力的巅峰之一,不仅极其聪明,而且非常听话。用它跑这套系统性价比极高, 1M+的上下文能力恐怖如斯
  • Kimi K2.5 — 长文本吞吐量。把 15 个文件全丢给它的知识库,聊上一个月都不会失忆
  • Qwen3.5 — 最新版对复杂场景的构建相当华丽,理工科解题和叙事场景之间的切换特别流畅

不推荐

  • 小参数本地模型——容易无视"零括号动作"红线,强行水字数,脱离场景干巴巴解题。灾难现场
  • 主打搜索的模型——指令遵循能力不够,压不住这么多规则
  • GPT-5.x — 逻辑推导极其精确,公式解题几乎零失误。虽然"教学"这条线拉得很稳, 但是如果不想让他稳稳的接住你, 尽量还是避雷为上.

🤝 一起来

想做一套你自己的版本?想把化学/数学/计算机科学变成一段有温度的学习经历?

  1. Fork 本项目
  2. 用 Meta Prompt 生成你的系统,或者直接改进框架本身
  3. 提 PR——哪怕只是修一个错别字也欢迎

特别期待:

  • 🎓 新学科的完整系统 — 有机化学里的分子用什么隐喻?线性代数的老师会是什么性格?期待你的答案
  • 🌍 不同文化的角色 — 不一定是日系名字。法国物理老师、印度数学教授、美国工程师——世界很大
  • 🔧 框架改进 — 如果你觉得某条规则写得不好、某个流程可以更优雅,直接说
  • 📖 你的使用报告 — 用了之后觉得怎么样?哪里好?哪里不好?真实反馈比任何代码改进都珍贵

📜 许可与致谢

致谢

这个项目不是凭空出现的。它站在两个人的肩膀上:

  • 苏格拉底 × AI 角色扮演教学法 — 来自 吴乐旻老师《怎样用AI让自己沉迷学习?》一文中介绍的学习方法。用 AI 角色扮演老师、通过苏格拉底式提问来教学——这个核心 idea 出自他。
  • 轻小说叙事层设计 — 来自 @AvalonSkyAfar 的原创系统(幽鬼学习辅导协议 / 在次基础上开发的AnimaTutor)。把文学叙事、角色情感弧线和多维度人物设定融入 AI 教学——这个创意出自他。

我所做的, 仅仅是一些微不足道的, 对他们idea的逆向工程化、架构抽象和设计迭代. 我们将其提炼为可复用的开源框架, 供更多热爱他的人使用。

许可

本作品采用 CC BY-NC-SA 4.0 授权。

你可以自由分享和改编本作品,但须满足:

条件 要求
🏷️ 署名 必须注明原作者,提供协议链接
🚫 非商业 不得用于任何商业目的
🔄 相同方式共享 改编作品必须采用相同许可证发布


📝 更新记录

版本 日期 主要变更
v2.2 2025-03-24 苏格拉底教学法方法论独立文档:基于 25 篇文献研究 + 2 轮实验教学验证。新增三条铁律、B+C 防模式切换机制、S1-S5 五级支持梯度、6 种学生类型预案、P0-P5 教学五阶段。META_PROMPT 改为"从方法论文档嵌入"模式。system_core.md 全面重写苏格拉底规则
v2.1 2025-03-24 META_PROMPT 提示词工程大修:学科适配原则、Phase 5 检查点、Phase 6 测试阶段、代码块用途标注、多会话进度保存
v2.0 2025-03-24 架构重构:system.md → system_core + reference 双层;story_progression / knowledge_points 按章拆分;CLAUDE.md → copilot-instructions.md;Context 瘦身 ~58%;新增命名奖励原则、教学陷阱、防漂移 /校准;AP_Physics_EM 演示同步 + 公开仓库脱敏
v1.0 2025-03-21 初始开源发布:ARCHITECTURE.md + META_PROMPT.md + AP_Physics_EM 演示系统

"学完之后你会记得公式吗?也许。但你一定会记得那个人。"

About

三位老师,一段故事,零个标准答案。——当苏格拉底教学法遇上轻小说叙事,学习便不再孤独。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors