加载中…

同济大学外国语学院 · School of Foreign Studies, Tongji University

AI 助学,
不是 AI 代答。

基于 9 个二语习得机制 + 学生模型驱动的针对性练习 + 服务端客观评分,把“AI 陪聊”做成“真闭环学习”。给老师可观测的学习过程,给学生能改善的真反馈。

进入平台了解研究 →

一

核心命题对比

不是说 AI 不能陪聊,是要 AI 真的让学生学好。

普通 AI 陪练
同济外语 AI 助学
1
1
普通 AI 陪练

学生说一句 → AI 答一句

同济外语 AI 助学

学生答工具卡 → 服务端判分 + 落事件

2
2
普通 AI 陪练

答完没痕迹,下次重头开始

同济外语 AI 助学

进 FSRS mastery + 学生画像,跨回合记得

3
3
普通 AI 陪练

题目随机抽,不针对

同济外语 AI 助学

学生模型驱动 → 针对最近错的语法点出题

4
4
普通 AI 陪练

评分模糊夸赞("Great!" / "Excellent!")

同济外语 AI 助学

Azure 发音逐音素评分 + 反虚夸 D-Gate

5
5
普通 AI 陪练

上次聊过的事下次忘

同济外语 AI 助学

tool_result_seen 事件 + 完整题目 + 学生答案进 priming

6
6
普通 AI 陪练

学生不开口,AI 直接讲

同济外语 AI 助学

阶梯协商(方向→词汇→答案)+ Socratic 引导先想

左栏为对照基准,右栏为同济外语 AI 实现路径。

二

五个学习入口

学生界面底部 5 个功能。每个对应一个真实学习需求 + 一个二语习得机制, 不是单纯换“题型”。

01

复习

查看今天到期的语法点和术语,挑哪个练

Wozniak (FSRS-5);Carpenter 2012 spaced retrieval meta

机制

M5 · FSRS 间隔重复

效应量

OR ≈ 1.35

试一下 →

02

针对练

系统拉你最近错的语法点,出针对题

Swain 1985;Bastani PNAS 2025

机制

M2 输出 + M5 弱点驱动

效应量

g = 0.576

试一下 →

03

全矩阵效应量最高

对话练

真实场景持续对话,直到达成场景目标

Mackey 2012 meta;Long 1996 Interaction Hypothesis

机制

M3 协商 + M6 TBLT

效应量

g = 0.795

试一下 →

04

跟读

AI 给目标句,Azure 逐音素评分

Saito & Plonsky 2019 pronunciation automated feedback

机制

M2 输出 + 发音反馈

效应量

d ≈ 0.50

试一下 →

05

进度

SGR 14 天图 + 弱点列表 + 学习画像

Zimmerman 2002 SRL framework

机制

M9 · SRL 自调节

效应量

元认知

试一下 →

Hedges' g 来自 SLA 元分析。引文链接到 docs/superpowers/specs/2026-05-23-r*.md (项目研究 spec)。

三

背后的 9 个学习机制 + 2 个防御门

产品不是凭空设计 —— 9 个二语习得 (SLA) 机制 + 2 个 LLM 时代的新防御门,每条都有效应量数据或权威引文撑。

M1

i+1 输入 (可理解输入)

Krashen 1985

在本产品

学生 CEFR 自适应 + 滑动窗口 16 条上下文

引文:Norris & Ortega 2000 meta

效应量

g ≈ 0.608

M2

强制输出 (逼说)

Swain 1985 / 1995

在本产品

填空 (fill_blank) + 词序 (order_words) + 跟读 (speak_prompt) + 对话 (mini_scenario)

引文:Shintani & Aubrey 2016 meta

效应量

g ≈ 0.576

M3

协商互动 (Negotiation of Meaning)

Mackey 2012 / Long 1996 Interaction Hypothesis

在本产品

协商对话 + Reveal 三级阶梯 + detect_error

引文:Mackey 2012 meta

效应量

g = 0.795

M4

ZPD 最近发展区

Vygotsky 1978

在本产品

persona 教学风格 + 学生当前水平自适应难度

引文:Lantolf 2000

效应量

理论框架

M5

间隔重复 FSRS

Wozniak (FSRS-5)

在本产品

FSRS mastery 表 + 复习 chip + 到期推送

引文:Carpenter 2012 spaced retrieval meta

效应量

OR ≈ 1.35 retention

M6

TBLT 任务驱动学习

Ellis 2003 / Long 2015

在本产品

ESP 场景 + mini_scenario + 对话练 chip

引文:Bryfonski & McKay 2019 meta

效应量

g ≈ 0.27 – 0.38

M7

Noticing 注意

Schmidt 1990

在本产品

Highlight 标错 + 学生主动定位错误形式

引文:Robinson 1995 / Mackey 2006

效应量

强支撑 (无单 g)

M8

认知负荷理论

Sweller 1988

在本产品

一回合一张卡 + 卡内容自适应学生水平 + 不堆栈

引文:Paas & Sweller 2014

效应量

指导设计原则

M9

SRL 自我调节

Zimmerman 1989 / 2002

在本产品

SGR 14 天图 + 进度 chip + 学生自查弱点

引文:Panadero 2017 meta

效应量

元认知关键

LLM 时代新增的两个防御门

D1

Substantive Response Gate (反划水)

Bastani PNAS 2025

在本产品

isSubstantiveResponse Gate → 拒 "ja" / "ok" / "好" 这类划水

引文:Bastani et al. — AI tutor gaming

效应量

F1 失败模式实证

D2

Anti-Sycophancy Gate (反虚夸)

Microsoft GenAI 2025

在本产品

assembleSystemPrompt 注入 "不要 Excellent!/Amazing!" 反虚夸约束

引文:Microsoft — GenAI sycophancy harm

效应量

F4 失败模式实证

全部引文 spec 在 docs/superpowers/specs/2026-05-23-r*.md (机制研究) + d*.md (防御门失败模式研究)。本表的“在本产品”列每一条都能精确定位到代码 / 表 / chip。

四

从答题到针对出题的完整闭环

学生每个动作都进事件流。事件流变成学生画像。学生画像驱动下一道题。这才是“针对学生错误点动态生成”的真实现。

一 · 学生答工具卡填空 / 找错 / 词序跟读 / 选择→ tool_result_seen 事件二 · chat onFinish写 *_item_generated 事件(题目 + 答案 + 解释)api/agent/chat/route.ts三 · Learner PipelineLLM 提取语言事实→ student_language_factsUPSERT student_skill_state四 · FSRS 调度器更新 itemMasteryStatesstability ↑ / difficulty / repsschema/learning-events.ts五 · 下回合 primingJOIN *_item_generated+ skill_state → promptrecent-tool-interactions.ts六 · 针对练 触发chat route 查弱点→ practice_grammar(rule=X)api/agent/chat/route.ts (P2)七 · 学生再答mastery 持续改善SGR ↑教师后台分支/teacher/students/[id]/language-profileSGR 14天图 + 错例 + 画像Data Loop持续闭环
图一 · 学生答题进入事件流,事件流驱动学生模型,模型再驱动下一题

这条闭环目前生产环境已通 (youcaiji.xyz,50+ 天)。

每个节点代表一个事件类型,全部落本地 PostgreSQL,无外发。

题目内容自 2026-05-29 起在 priming 中保留 (P0),学生答题进 Pipeline 自 2026-05-29 起 (P0.5)。

针对练入口自 2026-05-29 起注入弱点上下文 (P2)。

代码锚点

  • tool_result_seen — /api/agent/tool-interaction
  • *_item_generated — app/api/agent/chat/route.ts onFinish
  • student_skill_state — lib/db/schema/learner-pipeline.ts
  • FSRS mastery — lib/db/schema/learning-events.ts (itemMasteryStates)
  • priming JOIN — lib/agent/runtime/recent-tool-interactions.ts
  • weak-point injection — app/api/agent/chat/route.ts (P2)

数据流隔离 · 不外发

数据流全闭环,三道隔离:

  • —学生 ID 内部 UUID,无个人信息外露
  • —学生语音文件保留期可配置 (默认 30 天)
  • —LLM 调用走中国白名单,不传 OpenAI/Anthropic
  • —教师只能看自己班学生

五

AI 怎么知道你学没学会

两套掌握度系统各管一摊 —— 一套从你说的话里读懂你的弱点, 一套从你答的题里安排复习。一座单向桥把两者接起来。

学生说话 · 答题对话路 — 你说的话做题路 — 你答的题extractor (LLM)异步抽「语言事实」·带噪工具判分 (FSRS)服务端裁定·确定信号BKT 对话画像student_skill_state→ 驱动 AI 陪练 priming「AI 当场怎么教你」FSRS 复习状态item_mastery_states→ 驱动间隔复习调度「什么时候拉你复习」mastery_snapshots每次更新追加一条 · 时间序列北极星地基 (#5)北极星 · 档位MTS 净掌握 + SGR 复习健康度→ 强进步 / 稳步 / 停滞 / 需关注主任一眼 · 老师下钻单向桥 · 你做对一道题, 对话画像同步校准 (#4)确定信号校准带噪画像 — 不反向, 不合表
图二 · 对话路读懂你 (BKT)、做题路安排复习 (FSRS),单向桥让「答对的题」回头校准「对话里的画像」

为什么两套而不是一套:对话信号带噪 (AI 从自由对话里推断)、做题信号确定 (服务端逐题裁定)。各用最合适的算法 (BKT/HLR vs FSRS),不互相污染。

桥是单向的 —— 只让高质量的「做题判分」去校准带噪的「对话画像」,不反向、不合表。

北极星不是单一分数,是一组并列指标派生的档位 —— 防「刷时长/对话轮次」这类虚荣指标。

两套掌握度系统

  • BKT 对话画像 — 从对话抽取 · 驱动 AI 当场怎么教 · 捕获 ESP 角色扮演里的进步
  • FSRS 复习状态 — 工具判分喂 · 驱动间隔复习 · 北极星 SGR 建在它的 stability 上
  • 单向桥 (#4) — 做对的题 → 回灌 BKT,AI 下轮不再无谓纠你
  • 快照地基 (#5) — 两表本是当前态无历史,快照表让北极星第一次能算'增长'

北极星 · 不用虚荣指标

  • MTS 净掌握 — 窗口内跨掌握阈值的语法点净增 (读 BKT, 对话学习也算)
  • SGR 复习健康度 — FSRS 稳定度增长 · 对数斜率 + 加权 + winsorize 防刷
  • 头条档位 — 由 MTS + SGR 派生 — 主任看一眼,老师下钻看面板
  • 不用的 — 总学习时长 / 对话轮次 / AI 满意度分 (vanity)

六

尊重学生的屏幕

为什么我们把 5 个工具栏按钮藏起来。

手机屏幕高 800px,header 占 120px,输入框 100px,一条 AI 消息 200px。学生真正能看到的内容空间只剩 380px。

任何“常驻工具栏”都在偷这 380px。我们的纪律是:工具栏只在学生有意图时才出现 —— 跟豆包一致,跟微信一致,跟所有亿级 App 的常识一致。

右边手机界面演示:默认整洁;点击输入框,工具栏滑入;学生失去焦点,自动收起。一次手势成本,换 88px 长期空间。

这次改动的较真

1 commit
40 行代码
3 个交互细节
  • —onMouseDown preventDefault — 锁住 textarea focus,工具栏不会在点击中途消失
  • —max-h + opacity 双过渡 — 既动得平滑,又能回收高度
  • —flex-nowrap + overflow-x-auto — 永远单行,溢出转横滑

一个学生通常看不见的功能,用了这么多较真。这是我们的纪律。

以下为产品实际界面演示

之前 BEFORE
9:41100%
M.Schmidt · 德语
Guten Morgen! 今天想练对话还是先复习昨天的语法点?
复习吧
好,昨天三个动词变位 (gehen / fahren / kommen) 中你 fahren 还不太稳。先来一道?
❌ 永久占用 88px
🔁 复习🎯 针对练💬 对话练📊 进度🎤 跟读
和老师聊聊德语...
现在 AFTER
9:41100%
M.Schmidt · 德语
Guten Morgen! 今天想练对话还是先复习昨天的语法点?
复习吧
好,昨天三个动词变位 (gehen / fahren / kommen) 中你 fahren 还不太稳。先来一道?
🔁 复习🎯 针对练💬 对话练📊 进度🎤 跟读
↑ 点这试试

点右侧手机的输入框 →

更多看不见的关怀

—

默认关闭 TTS 朗读

不强加发声打扰自习,学生主动按右上角开关

—

历史会话用 skeleton 加载

不闪烁灰屏,不让学生盯着空白等

—

切换老师下拉条件渲染

只在多 instance 学生身上出现,不打扰单师场景

—

工具卡片视觉与对话流统一

卡片不破坏阅读节奏,不抢走老师讲解的注意力

七

回应教研室四个具体疑虑

2026-05 教师试用反馈精选回应。每条疑虑都对应一个产品机制,不是嘴上说说。

一

教师反馈

练习题目生成缺乏针对性,无法根据学生具体错误点动态生成

平台回应

学生模型记录每道题的题目+答案+对错,Learner Pipeline 异步提取语言事实进 student_skill_state。"针对练" 入口点击 → chat route 在喂 LLM 前查弱点 → 强制 practice_grammar 出针对题。

机制锚:M2 输出 (g=0.576) + M5 FSRS

二

教师反馈

缺乏教学过程呈现,更像术语库工具而非教学辅助

平台回应

教师后台 /teacher/students/[id]/language-profile 显示 SGR 14 天稳定度增长曲线(无图表依赖,纯 SVG)+ 学生画像(student_language_facts)+ 错例摘要。学习路径可追溯。

机制锚:M9 SRL + 北极星指标 SGR

三

教师反馈

材料提供要求不明确,使用门槛高

平台回应

极简上传 —— 老师只需 (a) 原文 PDF/PPTX (b) 一句目标说明("学生学完应能用过去时讨论旅行")。AI 自动抽术语库 + 抽语法点 + 抽场景候选,老师审核 / 编辑 / 删除 / 重排即可。

机制锚:教研室人力时间线 → 设计而非翻译

四

教师反馈

数据接口 / 部署方式 / 流量费用 / 技术栈安全

平台回应

完全私有部署(youcaiji.xyz 已运行 ~50 天)。LLM 走中国白名单(qwen / deepseek / wenxin)。学生语音不离服务器,音频文件保留期可配置。所有事件落本地 PostgreSQL,无外发。Docker compose 一键部署 / 回滚。

机制锚:王主任红线"persona 版本锁定"扩展为整体数据红线

立即体验学生端

以学生身份与 AI 老师对话。点击底部 5 个练习入口看真实学习流程。

进入学生端 →

需要登录学生账号。教师可在自己账号下点击“切换为学生视角”演示。

同济大学外国语学院

AI 教学平台

技术架构

查看设计 spec →

联系方式

合作 & 反馈

zizhan666@gmail.com

© 2026 同济大学外国语学院 · 学术编辑版式