本文拆解 Ello 如何把教育学原则写进工程系统:通过流式执行取代标准工具循环,让规划者异步反思并预判孩子的下一步,同时让安全检查把关执行而不阻塞生成,最终让面向 4~9 岁儿童的 AI 导师在 1 秒内作出兼顾教学质量与安全性的回应。原文地址:Teaching a child in <1000 ms: the architecture behind a real-time tutor。本文由LobsterAI自动翻译和发布。

我们着手打造第一款面向 4~9 岁儿童、教授数学与阅读的 AI 导师。要让 AI 真正教会一个五岁的孩子,教育学理念就必须被写进工程系统之中。
孩子等不了迟缓的回复,也看不懂聊天界面;而模型说错的话,一旦被孩子听见,就不可能再“撤回”。我们希望分享在构建实时 AI 导师的过程中,如何从这些经验出发作出架构决策。
对孩子来说,对话中 2 秒钟的停顿,与开发者所感受到的完全不同;甚至也不同于成年人打电话与自动客服交谈时的感受。短短几秒,已经足以让孩子的注意力飘走,让学习停下来。
优秀的老师无需停下来思考,也能处理好这一切。他们会立即回应孩子,即便暂时不告诉孩子答案,想让孩子自己继续思考。教学的关键,是针对当下的情境选择正确的方法,而大多数时候,正确的方法并不是直接给出答案。
当我们开始为 4~9 岁儿童打造 AI 导师时,我们想做的是一个真正能够教学的导师,而不只是一个反应迅速的聊天机器人。我们知道,底层约束极其苛刻,但它又不可妥协:每一轮互动都必须在 1 秒内响应。大多数智能体会通过控制推理预算,在速度和质量之间作出权衡。我们的架构则必须把导师牢牢建立在教育学原则之上,同时还要实时回应孩子。
我们抛弃了标准的智能体循环
老师始终在判断应该怎样与学生互动:是说点什么、在白板上画出来、玩一个游戏,还是干脆换个话题。如今,智能体最常见的标准模式是“工具循环”:大语言模型输出一个或多个工具调用,等待工具执行,观察执行结果,然后决定下一步。因此,构建教学智能体最直观的方式,就是为老师可能采取的每一种行动分别制作一个工具。
但工具循环存在延迟问题。前沿模型通常需要 2~3 秒才能输出第一个 token,此后以每秒约 30 个 token 的速度生成。我们的每个动作平均需要几十个 token。再加上网络往返延迟和音频播放时间,标准循环会导致每句话之间、或屏幕每次变化之间,出现 3~4 秒的空白。

在一次早期试玩测试中,我们亲眼看到了这种情况。一名六岁男孩等着智能体思考,随后问道:
他为什么什么都不做?到底什么时候才开始?太无聊了。
——6 岁儿童
同一轮测试中的另一个孩子发现,她只需要偶尔集中注意力,照样能够跟上进度。延迟已经教会她忽略导师。而从那一刻起,她也停止了学习。
最方便的解决办法似乎是换用一个更小、更快的模型,但这又暴露出任务范围的问题。教学是一项非常宽泛的任务。一节课里,导师可能要在几十种行动中作出选择。最难的决定往往不是怎样给出答案,而是要不要暂时不说答案,转而提供提示、提出一个更简单的问题,或让孩子经历恰到好处的困难,使最终的顿悟真正属于孩子自己。
小模型很难在如此广泛的任务范围内始终遵循指令。我们早期使用小模型的一个智能体版本反应很快,却总是直接泄露答案。每泄露一次,它就剥夺了真正发生学习的那个瞬间。
因此,我们构建了一套定制运行框架,在指令遵循能力、延迟和灵活的行动空间之间取得平衡。模型会在一次响应中流式生成多个行动。模型仍在生成后续行动时,解释器已经开始解析并执行前面的行动。孩子只需等到大约生成 30 个 token、首个行动出现时,而不必等待整段响应全部生成完毕。

将“生成”与“执行”分离,还带来了另外两项好处。第一,我们可以根据具体情境动态调整可用的行动。例如,当屏幕上出现一道题时,智能体得到的是帮助孩子逐步理解的指令和选项,而不是直接回答。第二,我们可以在正常路径上对每个行动进行验证,而不增加延迟。只有流中出现无效行动时,我们才会中断并重新生成;否则执行过程绝不停顿。
当然,这一切并非没有代价。由于掌控了整个循环,我们不得不自行构建可观测性和链路追踪系统,而不能依赖现成框架。而且我们是在逆流而行:前沿模型在后训练阶段接受了大量工具使用模式的训练。如果未来模型变得足够快,我们的框架也已经被设计成可以由更简单的循环替代。
经验: 智能体框架正在朝后台任务的方向发展,在这种场景中,速度与思考之间的权衡相对容易。实时学习恰好位于另一个极端。若想以正常对话速度教学,我们就必须亲自掌控整个循环。
优秀的导师会预测孩子下一步要做什么
真正的老师既会反思学生刚刚做了什么,也会预判学生接下来会怎么做。同一节课教上一百遍,你就能看到其中的规律。但你也了解眼前的这个孩子:他们一直卡在哪里,什么会令他们兴奋,今天又可能被什么绊住。你会带着计划开始课程,并随时根据情况调整。
我们把直接与孩子互动的智能体称为 对话者(converser)。早期实验表明,行动空间越小,模型遵循指令的效果越好。因此,我们又构建了第二个智能体——规划者(planner)。它负责根据课程目标审视对话,并管理对话者的上下文。

第一个版本采用同步运行,结果当然太慢了。让计划在固定轮数之后失效并不可靠,让对话者主动请求新计划同样不可靠。真正有效的方案,是让规划者异步运行:在孩子思考或说话时工作,就像老师会利用对话间隙进行反思和预判一样。那些间隙正是作出关键判断的时机:是给孩子增加挑战,还是让他们获得成功?是继续讲当前概念,还是进入下一部分?老师凭直觉作出这些判断;模型则必须通过推理才能得出结论,而异步运行恰好为它赢得了这段时间。
异步也意味着两个智能体同时运行,并且在彼此不协调的情况下读写共享状态。因此,我们把每轮对话、每次点击和每次界面更新,都作为不可变事件存储在一个仅追加日志中。两个智能体都可以读取并追加数据,无需等待对方。

这种轨迹格式还支持另一种预判。每当对话者提出封闭式问题时——例如出一道填空题、玩“我看见了什么”游戏或完成一道算式——运行框架都会推测孩子可能给出的答案,并为每个答案预先生成一条响应。每个响应都位于从当前轨迹分叉出来的独立分支上。孩子回答后,我们将答案与某个分支进行匹配,并立即播放对应响应,无需等待新的模型调用。
其代价是成本,以及偶尔的误判。规划者使用能力更强、价格更高的模型,而且每轮都会运行。预测终究只是预测。有时,一个已经准备好接受挑战的孩子,反而被安排了一次轻松取胜。我们也更难判断:对话者的错误究竟是自身失误,还是错误计划带来的下游结果。对于何时应该信任计划、何时应该以现场实时情况为准,我们目前还没有清晰可靠的信号。
经验: 孩子与应用实时互动,而智能体只能以离散的一次次生成来运行,因此应充分利用孩子思考或说话的时间。让规划者反思过去、预判未来,让对话者处理当下,这样缓慢的教育学推理就能与实时交流并行发生。如果下一步可以预测,就在孩子回答之前把它生成出来。
没有人听得见的安全检查
大多数 AI 产品会把防护机制与一次模型调用或一轮智能体执行串联起来。用户通常不会注意到 token 流经过了内容过滤器,开发者也愿意等待 CLI 工具调用完成自动审查。
但在与五岁孩子实时对话时,没有任何地方可以隐藏延迟,也没有撤销键:导师说过的话,孩子不可能假装没有听见。因此,安全系统必须在每一轮对所有行动进行把关。
我们的安全分类器也是一个大语言模型,每次运行约需 500~1000 毫秒。如果等安全检查结束后才启动对话者,每一轮都会多出将近一秒的延迟,这是我们无法承受的。此时,将生成与执行解耦再次体现出优势。
安全分类器会阻止执行,但不会阻止生成。孩子刚说完话,我们便同时启动安全分类器,并让一个小模型生成对话者的第一个行动。小模型会快速给出一个抢先响应(eager response),复述或回应孩子刚才说的话,例如:“你喜欢恐龙!我也喜欢。”
基于规则的检查虽然更快、更便宜,却无法应对五岁孩子真实的说话方式。安全政策每增加一个类别,都会增加 token,并要求重新调优一个本身具有非确定性的分类器。有时,语音转写错误会令分类器误判并触发假阳性。我们会复盘这些案例,用它们来改进智能体理解孩子的方式。
等到抢先行动生成完毕时,分类器通常也已经返回“安全”。检查结果解除限制后,对话者便可继续生成,同时抢先行动已经开始执行。尽管背后发生了多次模型调用,孩子听到的仍是一段连续、没有停顿的回应。

但比延迟更棘手的问题是:如果这种条件反射式的行动本身就是错误选择,该怎么办?在日常儿童对话中,复述和共情非常有效;但有时,它恰好与教育学建议背道而驰。
例如,一个孩子在上课途中提到,同学骂了他一个难听的称呼。把“我喜欢恐龙”变成“你喜欢恐龙!我也喜欢”的同一种反射机制,也可能把那个侮辱性称呼重新对孩子说一遍。
因此,只要安全分类器对孩子的这轮话语发出警报,我们就会丢弃抢先行动。对话者会在本轮收到不同的指导:不要重复那个称呼;承认这件事一定让孩子很难受;并建议孩子去和一位成年人谈谈。
注:我们的安全系统受一套由儿童发展专家共同制定的政策约束。关于安全系统具体如何工作,本身就值得另写一篇文章。
经验: 让安全检查把关“执行”而不是“生成”,就能避免额外延迟。每当检查未通过时,丢弃条件反射式回应,改用针对孩子具体处境的指导。
这三个问题领域还只是冰山一角。打造 AI 导师,需要解决的远不止这些
你不可能只是选对一个模型、写好提示词,然后就宣布儿童 AI 导师已经完成。为孩子打造 AI 导师,需要做得更多。你要工程化地构建一个实时系统,并为它争取足够的时间,使它在事实和教育方法上都做出正确决定:当直接给答案会削弱学习效果时,有时间选择不说;在孩子还没说完之前,有时间决定下一步行动;在孩子听见之前,有时间重新审视一个仓促的条件反射。
这些部分单独看起来都很小,但只有它们共同运作时,魔法才会真正出现:你最终得到一个能够提前思考、从容恢复,并且让孩子感觉它正与自己并肩学习,而不是在后面拼命追赶的导师。
如果这些问题令你感兴趣,或者你想进一步了解构建儿童实时 AI 导师究竟需要做些什么,我们非常愿意与你聊聊。我们正在招聘。
原文:Teaching a child in <1000 ms: the architecture behind a real-time tutor
作者/机构:Ello