Nova Mentor
利用豆包模型构建的AI培训智能体

缘起:一个真实而巨大的痛点

我叫王伟,大家可能更熟悉我的笔名——蓝衣剑客。我是一名在软件行业摸爬滚打了12年的老人了,现在主要做AI领域的项目管理和技术科普工作。在专业领域,我有幸参与过一些AI行业标准和国家级报告的制定,也为不少大企业提供过AI咨询服务。在更广泛的社区领域,我是火山引擎新晋的领航级KOL 、WaytoAGI的专栏作者,也开设了一个叫"AIGC思维火花"的公众号。
那么,一个有这样背景的开发者,为什么会把精力投入到"AI培训智能体"这个具体的方向上呢?

因为,在过去一年多,随着生成式AI的浪潮席卷而来,我收到了很多应届生和转型者的咨询,他们的主要问题就一个:"我该如何进入AI领域?我该学什么?怎么找到工作?"。
这些问题让我深刻地意识到,AI培训是一个巨大且真实的痛点需求。于是,我决定亲手打造一个解决方案,"Nova"就这样诞生了。
"Nova"是一个充满着赛博朋克风格的老师,之所以这样设定,是因为我想打造一个够"酷"的老师,同时还有一些个人情怀在里边。它可以帮助学习者进行适应性评测、学习辅导、模拟面试等任务。同时基于可解释性的规则,帮助用户由浅入深的学习内容,加深理解,达到真正的学习目标。
· · ·
核心技术实现思路
既然今天是个开发者大会,我想和大家深入聊聊构建Nova时的几个核心技术实现思路,这远比单纯展示功能要来得有价值。
1. 核心模型与技术栈的选择

在模型选择方面,我在这里用了三个比较生动的词来描述。
- "脑袋":豆包1.5 Pro模型
它在性能和响应速度之间取得了很好的平衡。 - "嘴巴"和"耳朵":豆包语音合成与识别模型
我选择它们的理由有两个:第一,语音合成模型的音色库帮我轻松实现了想要的赛博朋克风格,而语音识别模型对汉语的精准的识别能力也保证了交互的流畅。第二,我在火山方舟里可以轻松管理和接入这三款模型,哪怕在开发中遇到问题,我在一家平台上也就全部搞定了,节省了我大量的时间。
在基础技术栈方面:
- 前端:
Vite、Vue和TypeScript - 后端:
Python和LangChain - 数据库:
PostgreSQL和Redis
这些都是开发者非常熟悉和高效的组合。
2. 微调策略的确定

在如何让模型更好地适应"赛博导师"这个角色上,我面临一个重要的技术路线选择:是使用SFT这类有监督微调,还是采用Prompt Tuning(提示词微调)?我最终选择了Prompt Tuning。因为,我有快速验证的需求,Prompt Tuning是一个非常好的选择,同时,也可以让我更关注于对业务的打磨,而不是一味的打洞,跑去追求模型迭代。
确定了这个路线后,火山方舟内置的Prompt实验室就成了我的关键工具,它帮助我一站式地完成了提示词的生成、测试、调优和管理,效率非常高。
常写提示的朋友都知道:很多提示是仅局限于当前这个模型系列,甚至是局限于某个模型的某个小版本。而作为专业开发者,没有合适的prompt研究场地是一件非常折磨的事情。但在方舟上,我只需要在prompt实验室中告诉它关于业务方面的想法,它就可以快速帮助我实现整个prompt开发流程。并且方舟上也提供了完善的测试手段,使我能更快的针对豆包系列模型开发出特定优化提示词。这个也是我非常喜欢火山方舟的原因之一。
3. 开发工具的选择
在整个编码和实现阶段,我深度使用的开发工具是字节系的原生AI IDE——Trae。相比其他工具,我发现Trae在本土化开发方面非常有优势。它内置了编码智能体和多模型兼容等强大的AI功能。从个人角度出发,Trae最让我满意的是,你可以自定义智能体。
因为,我一直坚信,开发的起点是设计而非编码。而在Trae上,我可以轻松地创建一个"AI产品经理"智能体来帮我完成设计和文档工作,这让我的开发体验非常顺滑,也非常符合我的开发风格。
· · ·
攻克三大核心挑战
在这些技术决策的基础上,我将精力聚焦于攻克三个绕不开的核心挑战:人格统一性、可解释性和可适应性。
挑战一:人格统一性

一个赛博导师,需要在评估、辅导、模拟面试等多个场景中与用户互动。如果它在不同场景下性格反复横跳,用户的体验会非常糟糕。而且我们都见过太多AI了,它们要么像个没有感情的机器人,要么就披着一层薄薄的"可爱"外衣,你一问到专业问题,这层外衣立刻就被撕破,变回那句我们都听腻了的"作为一个大型语言模型..."。
我的解决方案,是设计并实现了一个"统一人格系统"。这个系统是基于LangChain进行封装的,它基于:用户适配器、词汇映射、人格注入、响应验证组成了最初的人格管理模块,然后智能体工厂则负责智能体实例的构造,在构造完毕后仍会有一个生命周期管理器对智能体进行追踪,对每一次的行为进行捕捉和判断。通过这样的设计,我确保了Nova 在任何场景下都保持着"赛博导师"的内在一致性。
挑战二:可解释性

这关乎信任与迭代,我将分开发者和用户两个方面讲。
对于用户:AI必须解释"为什么这么判断",才能获得信任。大家可以看到,图中其实有一个用户旅程,用户在每个环节其实都需要智能体的解释,比如适应性评估,为什么这么给他定调,基于什么理论定调,具体的定调过程是什么样的,最后综合展现出的图景是什么样子的,都需要让用户有理有据的信服。只有用户相信你的产品能给他带来正向收益,才能保证用户粘性和深入使用。同时也会为下一次Agent迭代进行数据上的铺路。
对于开发者:我们需要方法来调试模糊的、概率性的错误。为此,我建立了一套完整的日志分析与数据闭环流程。具体做法分三步:
- 全面记录:
系统会同时生成三份日志:智能体的行为日志、用户的操作日志、以及用户的显式反馈日志。 - 数据分析:
我设计了一个管理套件,专门分析这三份日志,搞清楚"AI和用户互动了什么,用户是满意还是不满意"。 - 提炼反哺:
基于分析结果,我们可以提炼出一个"反向案例库",明确告诉AI哪些回答是错误的、是不能做的。进而,这些积累的真实数据,形成一个正向的数据飞轮,未来可以直接用于微调,让Agent的效果越来越好。
挑战三:可适应性(真正的"因材施教")

AI模型本身没有长期记忆,这是实现个性化的最大障碍。我的解决方法,是为每个用户建立一个动态更新的、结构化的用户画像。
我将用户的个人数据分成了四大模块:基础信息(这是静态的)、评估信息、辅导信息和回测信息(这三者都是动态累积的)。
每当用户与Nova 进行一次有效互动,相关的动态信息模块就会被更新。这样,系统就拥有了关于用户的长期记忆,能够记住他的知识盲区、学习进度和个人偏好。有了这份不断丰富的用户画像,AI才能最终摆脱空洞的建议,给出真正具有洞察力的、个性化的指导。
同时,这个设计也会服务于统一人格系统,比如,面对一个I人性格的学习者,Nova的风格会更内敛,注重深度表达。而面对E人学习者,Nova的风格会更张扬,更活泼外向。
· · ·
一些心得分享

在AI时代,我们开发者的核心价值正在从"编码"本身,转向更高层次的"设计"。
一个好的AI应用,成功的关键在于你如何设计它的目标、规则和知识体系。我的经验法则是:先用人类的智慧做好顶层设计,再将这些设计构建成AI可以理解的专项知识库,最后才是让AI去执行生成代码的任务。这样做,才能真正发挥出人与AI协作的最大效能