ARTICLE · 1207773
我用 AI 给孩子做了个学习工具,现在开源了
最近,我把 AI 用在了一件离生活更近的事上:给孩子做一套学习小工具。
打开之后,能看到今天学什么;认识几个字,听一首诗,做两道数学题;完成后,可以给自己的小兔子喂根胡萝卜。
家长能调整任务、查看学习记录,也能决定今天什么时候结束。
我把它叫作「乐学」。现在,项目已经开源。
从需求拆解、界面设计,到功能开发、测试修复和部署,各环节的执行都交给了 Agent,也就是能调用工具、完成实际操作的 AI 助手。我的主要工作,是描述清楚需求、体验结果,再提出修改意见。
这篇把做出来的东西、制作经过,以及你怎样部署自己的一套,都整理出来。开源地址和在线演示入口,我会放在第一条留言里。


文中产品截图使用独立演示数据,展示功能和交互,不代表真实孩子的学习效果。
01先把“今天学什么”安排好
我想做这个工具,首先是为了把一次学习组织得简单一点。
今天看哪几项,每项做多少,完成之后还有没有任务,打开页面就能知道。
对孩子来说,清楚的入口和及时的反馈比较容易理解。对家长来说,能删减任务、调整起点,也很重要。
所以,乐学首页是一份每天的学习清单。它面向 3—12 岁儿童,默认按 4 岁起点配置,但可以根据年龄和学习阶段筛选内容。
不需要一开始就打开所有模块。比如,先留识字和数学,每天安排少量新内容,看看是否合适,再慢慢调整。
学习记录会先保存在本地,家长可以导出备份;完整部署后,也能使用家庭账号、多孩子档案和云端恢复。
02六个模块,接到孩子的日常里
现在,乐学内置了 2089 项课程内容,另有 40 篇分龄故事。
内容数量给了家长选择空间。每天实际用多少,还是按孩子的情况来。
认一个字,再找一找它出现在哪里
识字模块有 665 个常用字,每个内置字都配了一个常用组词。
例如,页面展示“林”,也展示“森林”,可以把字和词一起读出来。认识之后,还可以在绘本、包装或路牌上找一找。
控笔会跟随当天的识字任务,包括复习字。屏幕上有浅色字形和田字格,可以自由描写、重写。
目前它不自动评判笔顺或书写质量。屏幕上描一遍之后,也可以换成纸笔继续练。

学一首诗,先听听、读读、聊聊
国学模块包含 320 首古诗词和 11 篇经典古文,按适合年龄筛选,展示原文、朝代和作者,也有朗读入口。
家长可以选一小段,陪孩子听一遍、读一遍,再聊聊其中一个词或画面。是否要求背诵、多久学一首,都可以自己安排。
数学从当前阶段开始,英语也能选起点
数学有 240 道六阶任务,可以设置起始阶段。
选择题会保存第一次答对没有、尝试几次、错误几次。在当前阶段独立完成 10 个不同内容后,系统再尝试进入下一阶。
另有 0—1000 的数字探索,可以滑动选数、加减 1 或 10,并听中英文朗读。

英语则包含 26 个字母、270 个主题词和 12 本原创启蒙绘本。默认从每天两个新字母开始,穿插复习;已经认识字母的孩子,可以调整为从单词和绘本开始。
字母、例词和中文意思分段朗读,中间留出间隔,方便跟读。

科学题,可以带着走到屏幕外
科学模块有 102 个任务,按“问题、观察方法、结果、解释”组织。
比如“纸巾吸水比赛”:准备几种纸巾,滴上同样多的水,观察哪种吸得快,再讨论可能的原因。
页面可以分段朗读,读到哪里,哪里高亮。但更值得做的,是准备好材料,真的观察一次。
科学活动需要家长先判断是否适合孩子,并在需要时陪同。这样的任务,也可以成为放下手机后继续聊的话题。

03愿意开始,也要知道什么时候结束
为了让小进步有回应,我加了学习伙伴、星光和胡萝卜。
完成任务后会获得奖励,小兔子也会随着经验成长。兑换项目和标准可以由家长修改,申请兑换需要家长确认。
但做这个工具时,我一直在想:如果孩子愿意用,怎样让一次使用自然结束?
现在可以设置每周学习日、开启的模块和每天新增多少内容。休息日会有休息提示。当天任务完成后,首页也会告诉孩子可以休息了。
故事屋有每日收听上限和睡眠定时。达到上限时,正在听的故事可以播完,之后不会再开始下一篇。
这些是任务和故事的边界,还不能替代设备总屏幕时长限制。 当前没有整站强制计时退出功能,家长仍需要约定使用时间,并在设备系统里设置相应限制。

我希望保留的使用方式,是一起完成少量任务,再把其中一个问题带到生活里。
认过的字,去家里找一找;科学题里提到的现象,去观察一下。工具把活动组织好,后面仍有很多事可以离开屏幕做。
也别把“完成”直接当成“学会”
非选择题里,可以记录“独立完成”“需要提示”“还需练习”。系统再据此安排复习,待巩固的内容更早出现。
家长周报会区分新学、复习、独立完成和选择题首次答对,历史页可以查具体学了什么。
这些记录适合用来判断下一次陪着练什么。听完一次、点过完成,都不足以证明已经掌握。
04故事屋,还能制作自己的家庭故事
故事屋目前有 40 篇分龄故事,支持按阶段、主题和时长筛选,也支持收藏、续听、倍速和睡眠定时。

播放时,正在朗读的文字会高亮。
家长还可以输入一个主题,让 AI 写原创故事草稿。比如围绕“轮流”“合作”,或者“遇到困难怎么求助”。
草稿先由家长检查、修改、保存,再生成配音;试听通过后,手动发布给对应孩子。生成的内容不会直接出现在孩子面前。
学习资料也有类似入口。比如,输入:
增加一道适合 5 岁孩子的 10 以内加法选择题,主题是分享苹果。
AI 会把结果放进编辑表单。家长核对题目、选项和答案,确认后再保存。
这个设计让我可以逐步补充需要的资料,内容上的决定仍然留在家长手里。
05开发、测试、部署,Agent 具体做了什么
这个项目让我感受比较深的,是很多零碎工作现在可以连续交给 Agent 去做。
第一版先完成六个模块、家长中心、成长奖励和本地数据保存。之后,继续加入适龄排课、复习安排、家庭同步、故事屋和成本控制。
我在其中的工作方式,是把需求变得足够具体。
“做一个儿童学习 App”太宽。更容易落地的描述是:孩子打开后看到当天清单;家长能调整年龄和每天的内容数量;完成任务有反馈;重复点击不能重复发奖;刷新以后记录还在。
把这些过程和规则说清楚,Agent 才有明确的实现和检查目标。
很多迭代,来自一个具体的不顺手
版本记录里有不少这样的修复:iPhone 英文分段朗读没声音,科学讲解同时请求多段音频触发限流,更新后手机仍显示旧页面。
还有一些问题藏在操作之后:调整了任务,原来的进度要保留;恢复数据之前,应该先备份当前数据;AI 生成内容,不能跳过家长确认。
我把现象和期望告诉 Agent,让它定位、修改,再验证。代码、测试和文档也随着这些需求一起补齐。
这段过程需要持续体验和判断。我的投入主要放在“哪里不合适、应该怎样改”,具体执行交给 Agent。
上线之后,也要能继续更新
部署相关的脚本和流程,也由 Agent 完成。
项目支持 Docker。准备好服务器和凭据后,可以通过版本发布流程自动测试、构建、上传、启动并检查健康状态;启动或检查失败时,尝试恢复上一个镜像。
阿里云部署还把应用代码和运行环境分开。环境没有变化时,后续更新主要上传应用包,减少重复传输。

第三方账号注册、服务开通、凭据保管和费用预算,仍由我自己决定。Agent 帮我完成安装配置、接入和排错。
06想要一套自己的,可以先从免费基础功能开始
项目已经开源,不用重新写一遍。
我建议分开考虑三件事:先体验,随后决定要不要部署,最后再决定是否接付费服务。
先体验,再在电脑上跑起来
演示入口和 GitHub 仓库地址见第一条留言。先试试操作,再决定是否适合自己的家庭。
如果希望本地运行,可以让 Agent 读取仓库 README,准备 Node.js 和 pnpm,再安装依赖、复制配置模板并启动。
第一次运行大致是:
pnpm install --frozen-lockfilecp .env.example .envpnpm dev有旧 .env 时不要覆盖。新配置先关闭付费生成,保留本地付费调用放行开关关闭,即可先用基础课程、任务、奖励和本地记录。
这部分不需要购买大模型 API。设备朗读能否播放中英文,要看设备和系统语音支持情况。
长期在手机上用,再部署完整服务
可以让 Agent 使用项目提供的 Docker 和 PostgreSQL 配置,接上自己的域名与 HTTPS。手机打开后,添加到主屏幕,作为 PWA 使用。
PWA 可以理解为能添加到手机桌面的网页应用。基础资源缓存后,课程和本地进度可以离线使用;在线生成、云同步和未缓存的故事音频仍需联网。
本地开发服务器不提供完整的家庭账号和家庭故事后台。只上传前端静态文件,也不会自动拥有这些服务。
最新版的家庭注册和找回密码需要邮箱验证码,因此完整部署还要准备发信服务。当前源码中的发信账号是固定配置,自用部署需要让 Agent 先改成自己的发信账号,再配置对应的 SMTP 授权码。
第三方服务,按需要接入
想用在线朗读,选一家语音服务就够了。
项目支持千问、豆包和 MiniMax。默认接入千问:在阿里云百炼创建 API Key,取得同一业务空间 ID,确认地域和语音模型权限匹配,再填写 QWEN_API_KEY、QWEN_WORKSPACE_ID 等字段。
百炼不同地域的密钥和接口不能混用,申请时可以对照阿里云官方说明。
想让 AI 补资料、写故事,再申请 DeepSeek Key。
在 DeepSeek 开放平台注册、创建 API Key,并检查可用余额,填写 DEEPSEEK_API_KEY。模型名称按部署时的官方说明和项目配置核对。
想完整使用故事音频,再准备自己的 OSS。
创建私有存储空间,给应用配置只访问所需音频目录的密钥。课程朗读可以先使用本机缓存;当前故事音频服务依赖 OSS。
这里有个需要提前知道的细节:40 篇故事的文字和目录在代码里,私有 OSS 中的 MP3 不会随源码自动下载。 自己部署时,需要准备对应音频,或使用项目脚本制作、校验、上传;重新配音会产生语音费用,可以先试一篇。
所有服务密钥保留在服务端 .env,不要放进前端。生产环境的在线生成还需要为自己的家庭账号开通权限,只填 Key 不会自动放行。
基础功能可以先不使用付费 API。增加在线语音、AI 生成之后,按实际用量付费;服务器、存储流量和开发时的 Agent 费用,也需要分别计算。
项目已有缓存、额度和调用上限,可以减少重复生成、限制调用规模。我没有完整账单支持一个固定月费承诺,所以建议先开需要的功能,再看实际用量调整。
07这段需求,可以直接交给 Agent
如果你想部署自己的版本,可以复制下面这段,再附上第一条留言里的仓库地址:
请根据这个仓库的 README、配置模板和部署文档,帮我部署一套自用的乐学。先保留已有配置,跑通基础课程、设备朗读、本地记录和备份,新安装先关闭付费生成。长期使用时,再部署 Docker、PostgreSQL、域名和 HTTPS。家庭账号需要邮箱验证,请先检查发信账号配置,接入我自己的邮箱和对应授权码。语音、DeepSeek 和 OSS 按需接入,列出官方申请入口和需要填写的字段,不回显真实密钥。为自己的家庭账号开通必要权限,设置调用上限。最后逐项检查手机访问、进度保存、备份恢复,以及已配置的在线功能;不要默认批量生成全部故事音频。
账号和服务需要自己申请,预算也需要自己决定。安装、配置和排错,可以继续让 Agent 帮着完成。
如果只是想体验,可以先用演示,不必一上来就租服务器、申请全部服务。
做完乐学之后,我觉得家庭里的小需求也值得认真试一次。过去可能觉得开发成本太高,一直放着;现在可以先把目标说清楚,让 Agent 做出能用的一版,再通过实际体验去修改。
对我来说,接下来更值得观察的,是孩子愿不愿意开始,内容是否合适,以及结束得是否自然。学习兴趣和效果,都还需要在使用中验证。
如果你也想给孩子做个小工具,先选一件具体的事就好:认字、练几道题,或听一个家长检查过的故事。
点击阅读原文,可体验我家孩子用的 demo, 也可以按照评论区我留言的 github部署适合自己的一套,并交给自己的 Agent 个性化定制。















































































