构建面向5岁儿童的实时AI导师:架构决策与工程权衡

我们的目标是打造首款面向4-9岁儿童的AI数学与阅读辅导工具。要让AI真正能教五岁孩子学知识,必须将教学法深度融入技术架构。孩子没耐心等待迟缓的回复,看不懂聊天界面,也无法抹去AI说错的内容。在此,我们想分享构建实时AI辅导工具过程中,影响架构决策的一些经验。
对孩子而言,对话中2秒的停顿,和开发者甚至与自动客服通话的成年人感受截然不同。短短几秒就足以让孩子注意力涣散,学习进程中断。
优秀的老师无需刻意思考就能应对这种情况:即便不立刻给出答案,也会第一时间回应孩子,引导他们自主思考。教学是根据当下场景选择恰当方式的过程,而大多数时候,教学方式并非直接给出答案。
我们在打造这款面向4-9岁儿童的AI辅导工具时,希望它是真正会教学的导师,而非只会快速回复的聊天机器人。我们深知核心约束严苛且无可妥协:每一轮互动都必须实现亚秒级响应。多数AI助手会通过"推理预算"在速度与质量间权衡,但我们的架构必须兼顾教学法要求,同时实现对孩子的实时响应。
我们摒弃了标准的AI助手循环机制
老师会持续判断如何与学生互动:是开口讲解、在白板上演示、玩个小游戏,还是直接切换主题。如今AI助手的标准模式是工具调用循环:大语言模型(LLM)输出一个或多个工具调用指令,等待工具执行、观察结果后,再决定下一步动作。照此逻辑,构建教学AI的直接方式就是为老师可能采取的每一种动作开发对应工具。
但这种工具循环存在延迟问题。前沿大模型生成首个token需2-3秒,后续解码速度约为每秒30个token。我们的互动内容平均包含几十个token,再加上往返延迟和音频播放时间,标准循环意味着每句话或每一次屏幕更新之间,会有3-4秒的空白期。

在早期的一次用户测试中,我们亲眼目睹了延迟带来的影响。一个六岁男孩等待AI"思考"时问道:
"它怎么不动啊?什么时候开始啊,好无聊。"
同一轮测试里的另一个孩子则发现,自己只需偶尔留意就能跟上进度,延迟让她学会了无视辅导工具——而从那一刻起,她的学习也停滞了。
一个看似简便的解决方案是改用更小、更快的模型,但这又会引发能力范围问题。教学是一项复杂的任务:一堂课中,辅导者可能要在数十种动作中做选择,而最难的抉择往往是不直接给出答案,而是提供提示、拆解问题,或是让孩子适度思考,直到他们自己获得顿悟。
小模型很难在如此宽泛的场景下遵循教学指令。我们早期采用小模型的版本虽响应迅速,却总是直接给出答案,每次这样做,都剥夺了孩子真正学习的契机。
为此,我们构建了一套自定义架构,以平衡指令遵循度、延迟和动作灵活性。模型会在单次响应中流式输出多个动作,一个解析器会在模型生成后续动作的同时,同步解析并执行每个动作。孩子只需等待约30个token长度的首个动作,无需等到整个响应生成完毕。

将生成与执行分离还带来另外两个优势:一是可根据场景调整可用动作,比如当屏幕上显示题目时,AI会获得引导思路而非直接给出答案的指令和选项;二是可在不影响正常流程延迟的前提下验证每个动作,只有当流式输出出现无效动作时,才会中断并重新生成,否则执行过程不会暂停。
当然,这并非没有代价。自主掌控循环意味着我们必须自行构建可观测性和追踪系统,无法依赖现成框架;而且我们是在逆趋势而行——前沿模型都经过大量工具调用模式的微调。不过,如果未来模型速度足够快,我们的这套架构也可以替换为更简单的循环机制。
经验总结:AI助手框架倾向于支持后台任务,这类场景中很容易在速度与思考深度间做权衡。而实时学习处于另一个极端:要实现与对话同步的教学节奏,必须自主掌控交互循环。
优秀的辅导者能预判孩子的下一步动作
真正的老师既会复盘学生刚完成的行为,也会预判他们接下来的动作。同一堂课讲上一百遍,就能发现规律;但老师也会了解眼前这个孩子:他们在哪卡壳、什么能激发兴趣、今天可能会在哪些地方出错。老师会带着计划开课,并随时调整。
我们将与孩子直接互动的AI称为"对话助手"。早期实验显示,更小的动作范围能提升指令遵循度,因此我们又构建了第二个AI——"规划助手",负责对照课程目标复盘对话内容,并管理对话助手的上下文。

最初的版本采用同步运行模式,速度自然无法达标。固定轮次后过期的计划不可靠,让对话助手主动请求新计划也不行。最终可行的方案是:让规划助手异步运行,利用孩子思考或说话的间隙工作,就像老师在对话停顿期间复盘和预判一样。正是在这些间隙中,需要做出关键判断:是给孩子设置挑战还是让他们轻松成功,是继续讲解当前概念还是切换主题。老师靠直觉做判断,而模型需要推理得出结论,异步运行恰好为它争取了时间。
异步运行意味着两个AI同时工作,读写共享状态却无需协调。因此,我们将每一轮互动、每一次点击、每一次界面更新都作为不可变事件,存储在一个只允许追加记录的日志中。两个AI都可独立读取和追加记录,无需等待对方。

这种轨迹格式还实现了另一种预判:每当对话助手提出封闭式问题(比如填空题、"我猜你看"游戏、等式题等),架构会假设孩子可能给出的答案,并从当前轨迹分叉,为每个可能的答案预先生成回应。当孩子给出答案时,我们只需匹配对应的分支并播放回应,无需等待新的模型调用。
当然,这也存在代价,偶尔还会预判失误。规划助手运行在能力更强、成本更高的模型上,且每一轮互动都会运行;而预判终究只是预判,有时本可接受挑战的孩子,得到的却是过于简单的任务。我们也很难判断对话助手的错误是自身失误,还是源于规划助手的错误计划。目前我们还没有清晰的信号,来决定何时该信任计划,何时该依据实时互动情况调整。
经验总结:孩子与应用实时互动,而AI则以离散生成的方式运行,因此要充分利用孩子思考或说话的时间。让规划助手复盘过去、预判未来,对话助手专注当下,将耗时的教学推理与实时互动并行处理。当孩子的下一步动作可预判时,在他们给出答案前就生成好回应。
无人察觉的安全检查
多数AI产品会将安全防护与模型调用或AI助手的轮次串行处理。用户不会注意到token流经过内容过滤的过程,开发者也愿意等待CLI工具调用完成自动审核。
但在与五岁孩子的实时对话中,没有延迟的空间,也没有"撤回"的可能:孩子听到辅导工具说的话后,就无法当作没听过。因此,安全系统必须对每一轮互动的每一个动作进行把关。
我们的安全分类器是一个大语言模型,运行一次约需500-1000毫秒。如果等安全检查完成再启动对话助手,每一轮互动都会增加一秒延迟,这是我们无法承受的。而将生成与执行分离的架构,恰好解决了这个问题。
安全分类器只会阻止执行,不会阻止生成。孩子一说完话,我们就同时启动分类器和一个小模型,让小模型快速生成对话助手的首个"即时响应"——比如重复或认可孩子的话:"你喜欢恐龙!我也是!"
基于规则的检查虽然更快、更便宜,但无法应对五岁孩子天马行空的说话方式。安全策略每增加一个类别,就会增加token数量,还需要重新调整非确定性分类器。有时转录错误会让分类器误判,触发误报。我们会复盘这些案例,用于优化AI对孩子语言的理解能力。
通常在"即时响应"生成完成时,分类器也已返回"安全"的结果。此时对话助手就能在即时响应执行的同时,继续生成后续内容。孩子听到的是连贯的互动,完全察觉不到背后的多次模型调用。

但比延迟更棘手的问题是,当这种即时响应并非恰当选择时该怎么办。重复孩子的话在日常对话中效果很好,但有时却与教学法要求背道而驰。
比如,孩子在上课中途提到同学骂了自己。如果按照回应"我喜欢恐龙"的逻辑,AI会把那个难听的词重复回去。
因此,每当安全分类器标记孩子的发言时,我们就会丢弃即时响应,给对话助手提供特殊指引:不要重复那个词,认可孩子的感受,并建议他们告诉成年人。
注:我们的安全系统遵循与儿童发展专家共同制定的政策。关于安全系统的详细运作机制,我们会单独撰写文章说明。
经验总结:让安全检查把关执行环节而非生成环节,避免增加延迟。当安全检查不通过时,用贴合孩子处境的针对性指引替代即时响应。
三个只是冰山一角的问题领域。打造AI辅导工具,需要解决的问题还有很多。
打造面向儿童的AI辅导工具,绝非选对模型、写好提示词就大功告成。它需要构建一套实时系统,既要保证足够的时间确保内容准确、教学方法恰当——比如在答案会削弱学习效果时延迟给出答案,在孩子说完话前就准备好下一步动作,在孩子听到不当回应前修正快速生成的内容。
单独看每一部分似乎都不起眼,但只有当所有部分协同运作,才能打造出一个会预判、能从容应对突发状况、仿佛时刻陪伴在孩子身边,而非追赶孩子节奏的辅导工具。
如果你对这些问题感兴趣,或是想了解打造儿童实时AI辅导工具的更多细节,欢迎与我们交流。我们正在招聘。