港大 HKUDS 开源 AI 家教 DeepTutor,111 天破 2 万星
- 香港大学数据智能实验室(HKUDS)开源的个性化学习工具 DeepTutor,2025-12-29 发布,Apache 2.0 完全开源,作者声明目前没有任何付费在线产品。
- 上线 111 天内(截至 2026-04-19)GitHub 破 2 万星,登上 Trendshift 日榜和周榜趋势。
- Chat、Partners、Co-Writer、Book、Knowledge、Memory 等全部模块共用同一个 agent loop、上下文互通,切换模式时换的只是这一轮的目标,底层引擎始终是同一套。
- 配套论文提出混合个性化引擎(静态知识 grounding + 动态个人记忆),在覆盖五大学科、270 个任务的 TutorBench 评测中把个性化指标平均提升 10.8%。
- 禁用整个个性化引擎后,同一套「调查,解决,写作」的脚手架流程在五个公开测试集上仍让五个骨干模型的通用 agentic 推理能力平均提升 29.4%。
港大团队开源了一个 AI 家教,还真有人在用
香港大学数据智能实验室(HKUDS)在 2025 年 12 月 29 日发布了开源学习工具 DeepTutor,并在 2026 年上半年同步发表了介绍其技术机制的研究论文。
为什么这不只是又一次普通的开源发布:上线 111 天内 GitHub 破 2 万星,登上 Trendshift 日榜和周榜趋势;项目 Apache 2.0 完全开源、无任何付费产品;还带着一篇 arXiv 论文背书,在覆盖五大学科、270 个任务的评测里给出了可核对的数据。
项目由 Bingxi Zhao 在 HKUDS 主导(导师 Chao Huang,港大数据智能实验室主任),社区共建。生态里还复用了实验室自己的几个开源项目:LightRAG(检索引擎)、nanobot(早期用的超轻量 agent 引擎)、AutoAgent、AI-Researcher。
一个大脑,八种学习模式,你切换的只是目的
DeepTutor 最核心的设计:聊天、解题、出题、研究、可视化、掌握度练习,全部跑在同一个 agent loop 上。你切换的是这一轮想干什么,底层引擎和上下文始终是同一套。
聊天怎么变成一整套辅导:它先自己想,拿不准还会反问你
Chat 是默认入口,大部分工作从这里开始。一个对话线程能正常聊天、调用工具、基于选定的知识库对答案「找依据」、读附件、生成图片、咨询别的 agent、写笔记本,并在多轮里延续同一套上下文。
它的循环刻意做得简单:模型分轮思考,需要时调工具,观察结果,最后给出一条不再调工具的回答。关键在一个叫 ask_user 的特殊工具:拿不准的时候,agent 可以不去瞎猜,而是暂停这一轮,抛出一个结构化的澄清问题,等你回答再继续。
搜索/推理/画图…
ask_user 反问你
可开关的工具有 brainstorm(头脑风暴)、web_search(联网搜索)、paper_search(查论文)、reason(深度推理)、geogebra_analysis(数学作图分析),配好生成模型后还有 imagegen(生图)和 videogen(生视频)。这套 Chat 也是深入其它能力的起点:从这里衍生出 Quiz(出题)、Research(带引用的报告)、Visualize(图表动画)、Solve(详细推理求解)和 Mastery Path(学习计划)。
它记什么、忘什么:两种上下文分得很清楚
跨轮一直在
子 agent、知识库、人格、模型、语音,挂在输入框工具栏上,这一整段对话里都持续生效。
只管这一轮
文件、聊天历史、书本、笔记本、题库、导入的 agent,从「+」菜单临时带进来,只服务当前这一轮提问。
它凭什么这么了解你:记忆一层层都能点开查
DeepTutor 的个性化不靠一个藏在后台的向量库,而是一套用文件支撑、你能读能改能审计的三层记忆。因为上一层的每条结论都引用着下一层的证据,画像里任何一句话都能一路点回原始事件。下面这张图是可点的,点某一层看它到底存了什么、又是从哪来的。
Quiz 界面:相关练习 5 道错 3 道,都错在「先求外层还是内层」。
官方把这套记忆分成三层:L1 是工作区镜像加一条只追加的事件痕迹,L2 是每个界面精选出来的事实,L3 是跨界面的综合。因为 L2 引用 L1、L3 引用 L2,你画像里的任何内容都能顺着链条查到出处。产品里的 Memory Graph 就把整座金字塔画出来:L3 综合在中心,L2 在中间环,L1 痕迹在最外圈。


上两图来自 HKUDS 官方仓库。
陪伴、写作、出书、找资料:剩下几个模块一次说完
下面这几个模块次要一些,但都很实用。它们全部挂在同一个大脑上,这里压缩带过,各配一张官方截图。
Partners:有人格、有电话号码的持久陪伴
Partners 是拥有自己人格、模型策略、资料库、记忆和渠道的持久陪伴者。每一条从网页或 IM 进来的消息,都会变成 partner 专属工作区里的一次正常对话轮次。渠道层是配置驱动的,能接飞书、Telegram、Slack、Discord、钉钉、企业微信、WhatsApp、Teams 等 15 个入口。一个 partner 也能作为子 agent 被普通聊天咨询,这就是「My Agents」:既能连本机的 Claude Code、Codex 实时咨询,也能把你已有的历史对话导入成可搜索、可续接的命名 agent。

点开看 Partners 的架构图

Co-Writer:选中一段就能让它改,改动你批准才落地
一个分栏的 Markdown 写作区,实时渲染预览(含数学公式和图表)。它的核心是「外科手术式编辑」:选中一段文字,让它改写、扩写或缩写。编辑 agent 可以基于知识库或网络证据来支撑修改,把每处改动显示成接受或拒绝的 diff,在你点批准之前什么都不会真正写进文档。

Book:把你的材料编成一本「活的书」
Book 把选定的来源变成一本交互式的活书,是一个由类型化区块搭起来的阅读环境。创建时它先给你一份章节大纲让你审阅,而不是直接吐一份盲盒式的成品。每一章编译成文本、提示框、测验、闪卡、时间线、代码、图表、交互式组件、动画、概念图等区块,每一页还有自己的 Page Chat,区块能单独插入、移动、重新生成或换类型,不用重写整章。




Knowledge Center:检索引擎可以自己挑
知识库是 RAG(先查资料再回答)背后的文档集合,给聊天、写作、出书、Partner 对话提供依据。特别之处是能选检索引擎:LlamaIndex(默认,本地向量加关键词)、PageIndex(带页面级引用)、GraphRAG 和 LightRAG(知识图谱检索),或者直接链接一个 Obsidian 仓库让家教原地读写。每个知识库绑一个引擎,重新索引会保留旧版本,不会弄坏正在用的那份。

Learning Space:技能、人格、可复用的上下文
资料库和个性化层。这里保存聊天历史、笔记本、题库(每道存的题都留着你的答案、参考答案和解释),以及 mastery path、人格(比如「同伴」「研究助理」「老师」这类行为预设)、技能(模型按需读取的 SKILL.md 剧本)。技能不用全自己写,从 EduHub 社区目录能直接下载一个进来。

三行命令就能跑,还能被别的 AI 当工具调
最顺的一条路是 PyPI 安装:装好一个完整的本地 Web 应用加命令行工具,不用 clone 代码。需要 Python 3.11+ 和 Node.js 20+。
pip install -U deeptutor deeptutor init deeptutor start # 打开 127.0.0.1:3782
docker run --rm --name deeptutor \ -p 127.0.0.1:3782:3782 \ -v deeptutor-data:/app/data \ ghcr.io/hkuds/deeptutor:latest
一共四种安装路径:PyPI(上面这条)、源码(改代码用)、Docker(单容器跑完整应用)、仅 CLI(给无界面服务器、agent harness、Claude Code / Codex 这类场景,没有网页界面)。认证默认关闭、默认单用户运行;打开多用户后,第一个注册的人是管理员,其他人拿到隔离工作区和脱敏设置页,绝不会暴露原始 API key。配置全是纯 JSON / YAML。
它不止面向人,也面向别的 agent
DeepTutor CLI 有两种用法:交互式的 REPL(deeptutor chat),以及给别的 agent 用的结构化 JSON 输出(加 --format json,每一轮以 NDJSON 流式吐出)。运行是「无头安全」的:没有终端时 ask_user 的暂停会自动用空回复解决,不会卡死。仓库根目录自带一份约 150 行的 SKILL.md 交接文档,Claude Code、Codex、OpenCode 会自动识别它,一次读完就知道整个系统怎么用,也能把 deeptutor run 包成 LangChain、AutoGen 循环里的一个工具。
deeptutor skill search "socratic tutor" deeptutor skill install socratic-tutor
每次从 EduHub 导入技能都要过同一道安全门:注册表安全裁定、压缩包防御性解压、把技能里的 always 字段剥掉(下载的技能不能强行塞进每一次系统提示词),来源写入 .hub-lock.json 供审计。
这些功能怎么拧成一股绳:一篇论文讲清了背后的机制
上面这堆模块看着是一串功能罗列。真正让它们不散、变成一个越用越懂你的系统的,是 HKUDS 团队同期发的一篇论文《DeepTutor: Towards Agentic Personalized Tutoring》。它回答的是一个具体问题:为什么辅导时发现的弱点,能直接决定下一次出什么题;做题的表现,又能反过来改进下一次的讲解。
论文把两样东西耦合成一个闭环:静态知识 grounding(SKG)管「讲的内容对不对,有没有课程依据」;动态个人记忆(DPM)管「这样讲、出这样的题,适不适合这个具体的学生」。两者分工互补,谁都替代不了谁。
SKG 和 DPM 是这篇论文里最抽象的一对概念,先用一张对照卡把它们分清楚:
课程内容对不对
把教材、论文拆成一个个原子知识单元,用知识图谱记它们之间的关系,用向量索引记它们的语义,查询时两路结果合并去重。
负责保证家教讲的东西有依据、事实不出错。
适不适合这个学生
核心是「痕迹森林」:每次完整辅导记成一棵树,节点分三层(会话摘要,中间规划,执行细节),三个专门的记忆 agent 主动检索、比对,持续更新学习者画像。
负责保证讲解的深浅和方式贴着这个人。
就像一个家教,一边翻教材确认知识点没讲错(SKG),一边翻这个学生的错题本决定该怎么讲、下一步出什么题(DPM)。
痕迹森林:给每次辅导都开一份分层病历
痕迹森林是 DPM 的记账本。每一次完整的辅导对话被记成一棵树:Level 1 存会话级的输入和全局摘要,Level 2 存任务拆解出来的中间规划,Level 3 存最细的执行记录,包括工具输出、证据、验证结果。每个节点都带一个向量编码,能在整片森林里按语义相似度检索。系统用一个叫 TraceToolkit 的工具箱去翻它,只有三个动作:按语义找相似(SearchTrace)、按时间或主题过滤枚举(ListTraces)、连着祖先路径完整读一个节点(ReadNodes)。
相当于给每次辅导单独开一份详细病历,病历按「主诉 → 诊断思路 → 具体检查记录」分层写。下次看诊,能翻出旧病历里任意一层的细节,而不是只看到一句「这学生数学一般」。
画像不是被动摘要最新一次对话生成的。每来一条新痕迹,三个专门的记忆 agent 会主动去查 TraceToolkit,把最新行为和跨会话的老模式做对比,再更新画像的三个部分:会话历史摘要、有证据支撑的反复困惑清单、指导未来的教学反思。个性化因此建立在能翻出来的痕迹证据上,而不是一个粗糙的「掌握度分数」。
拼起来看:这一圈怎么转
把两件事接起来看:静态知识和个人记忆先在混合个性化引擎里合成一份「个性化上下文」,同时喂给两条流水线,解题辅导走「先调查、再逐步引导、最后按学生水平写讲解」三步(初学者拿到搭好脚手架的逐步推导,熟练学生只拿关键洞见的简洁总结);出题走「按这个学生的视角画概念地图选题、再由一个独立验证者查对错」两步。学生做完这一轮,结果又写回痕迹森林、刷新画像。
调查·引导·写讲解
选题·独立验证
论文作者:Bingxi Zhao, Jiahao Zhang, Xubin Ren, Zirui Guo, Tianzhe Chu, Yi Ma, Chao Huang(The University of Hong Kong, HKUDS)。v1 提交于 2026-04-10,v2 于 2026-05-08。
有没有真本事:270 个任务实测下来
为了测个性化辅导,论文自己造了一个学生中心的评测集 TutorBench:先把大学教材和论文索引进知识库,再为每个知识库造 3 个不同水平的学生画像,每个画像挂上有来源依据的知识缺口(分「误解」「理解不完整」「缺失知识」三类),最后每个画像保留恰好 3 个通过的交互式任务。
怎么打分:让一个 AI 学生去跟它上课
评测用一个基于 AI 的学生模拟器去跟每个被测系统互动:模拟器把知识缺口变成第一人称的「我以为……」,多轮辅导后再要一份定制练习,产生的完整对话记录按个性化评分标准打分。评分分两组共十项,各 1 到 5 分。辅导侧五项:来源忠实度、个性化、可应用性、生动度、逻辑深度;练习侧五项:匹配度、依据充分度、多样性、答案质量、跨概念。评测覆盖全部 270 个任务,用 Gemini-3-Flash 驱动学生模拟器和各系统骨干,Claude Sonnet 4.6 当评判。
提升最大的三个维度
条长按 1 到 5 分满分折算。
五个系统横向对比
四个基线都共享同一套检索工具和骨干模型,只是分别加了思维链、自我复审或 ReAct 式工具调用。它们的分数聚得很紧,说明光加这些不足以追上一个真正随学习者自适应的系统。
| 系统 | 辅导均分 | 练习均分 | 总体质量 | 相对提升 |
|---|---|---|---|---|
| Naive Tutor(最简) | 3.96 | 3.10 | 3.53 | , |
| CoT Tutor(加思维链) | 3.97 | 3.06 | 3.52 | -0.28% |
| Self-Refine Tutor(加复审) | 4.05 | 3.08 | 3.57 | +1.13% |
| ReAct Tutor(工具循环) | 3.96 | 3.08 | 3.52 | -0.28% |
| DeepTutor | 4.39 | 3.42 | 3.91 | +10.76% |
人类偏好对齐:从五个领域分层抽 45 个会话做盲配对,人类评审和 AI 评判在全部十个指标上都把最大偏好给了 DeepTutor,两者胜率高度相关(Pearson r=0.82,p=0.0038)。说明 AI 评判不是无脑偏爱它,而是按评分标准做出了和人相似的排序。
跨领域稳定:五个学科之间总体质量只差 0.16 分,提升不是靠某一门学科撑起来的。
拆开来看:SKG 和 DPM 各管一头,谁都不能少
消融实验分别拆掉两个部件,看哪些指标塌下去:
掉得最多的是「依据充分度」,其次是「来源忠实度」和「跨概念」。
也就是家教开始「讲得没依据」。
掉得最多的是「个性化」和「匹配度」。
也就是讲解和出题不再贴着这个学生走。
两个一起拆,整体下降最大。这证明 SKG 和 DPM 是互补的两套机制:SKG 锚定「家教说了什么」,DPM 塑造「它怎么适应你」,换不了也省不掉。
意外的一笔:把个性化全关掉,脚手架本身也很能打
论文还测了一件事:DeepTutor 那套「调查,解决,写作」的脚手架,是只对个性化辅导有用,还是对通用解题也管用?于是把整个混合个性化引擎(SKG 和 DPM 全禁掉)关掉,只留纯求解器,拿五个公开测试集(HLE、GPQA-Diamond、LiveBench 推理子集、GAIA、AA-LCR)去测一次答对率(Pass@1)的提升。
五个骨干模型全部提升,平均相对增益在 25.69% 到 32.03% 之间。这一档里个性化、SKG、DPM 全被关掉了,所以这个提升点出的是「调查,解决,写作」这套脚手架本身的通用价值。
点开看五个测试集的逐项跳幅
| 骨干模型 | HLE | GPQA-D | LiveBench | GAIA | AA-LCR |
|---|---|---|---|---|---|
| Gemini-3-Flash | 19.40→30.80 | 81.31→84.85 | 70.00→96.00 | 37.58→47.88 | 63.00→74.67 |
| Sonnet-4.5 | 8.40→14.60 | 72.22→73.23 | 64.33→82.00 | 29.09→45.45 | 53.33→54.00 |
| Qwen-3.5-Plus | 16.80→24.20 | 88.38→87.88 | 69.00→93.00 | 33.94→49.09 | 66.00→69.67 |
| GPT-5-Mini | 16.46→21.20 | 80.81→80.30 | 71.00→93.00 | 27.27→49.09 | 68.67→71.00 |
| Minimax-M2.5 | 14.00→19.40 | 82.83→83.33 | 59.30→73.00 | 23.64→42.42 | 66.00→76.40 |
HLE 用固定 500 题子集,GPQA 为 Diamond 档,LiveBench 取推理子集。数字为一次答对率百分比(基线 → 加 DeepTutor 脚手架)。
论文自己划的边界,和你现在能上手的事
论文没把话说满。它明确讲清了哪些是验证过的、哪些还没测。
论文原话强调:Book Engine、TutorBot(现产品里的 Partners)这些系统扩展是「架构实例」,是长期个性化辅导的部署机制,而不是这次评测验证过的干预。它们对留存率、参与度、真实学习结果的影响,需要纵向的人类研究。Chat、Book、Memory 这些功能你现在就能装来用,但「长期用下去真能让人学得更好」这件事,论文自己也没测,留给了将来。交互式评测靠的是 AI 学生模拟器和基于评分标准的评判,天然带着「受控模拟」和「真实学习者」之间的差距;多阶段流水线也是用更高的推理成本换来更强的可控性。论文建议:真实使用时把生成的辅导内容当辅助而非权威,重要论断对照可信的课程材料或人类老师核实。
普通人现在拿到手能做什么
解题辅导中诊断出的弱点会传播到学习者画像,直接决定接下来生成什么题目;反过来,学生在生成题目上的表现精炼画像,改进未来的讲解。 《DeepTutor: Towards Agentic Personalized Tutoring》,论文对「闭合辅导周期」的描述