字节跳动抖音AI全栈开发一面面经(三面已挂)
《面试题目》
项目
- 详细说一下智能体 ReAct 模式的执行流程?
- 智能体陷入死循环的原因是什么?
- 怎么解决智能体死循环的?
- 为什么要做三层防护机制?
- 原子状态机是什么?解决了什么问题?
- 三层记忆的背景是什么?解决了什么问题?结果是什么?
- 记忆是如何召回的?
- 怎么保证问了 A 问题和 B 问题不会乱注入?怎么解决的?
- 长期记忆里面存了什么?如何界定?
- 召回的效果怎么样?
- 用的是什么模型?多模型是怎么做的?
Java/JVM/JUC
- Java 的类加载器是什么?
《参考解析》
- 智能体死循环的成因与防护:常见原因包括工具调用结果未达到预期但模型持续重复同一策略、终止条件设计不合理(如只依赖模型自己判断”任务完成”);解决方案通常设置多层防护:最大迭代次数硬限制、检测连续相同动作/结果时强制中断、引入外部裁判(另一个模型或规则)判断是否应该终止。
- 记忆召回的隔离问题:多用户/多会话场景下,记忆存储需要按用户ID/会话ID做严格的命名空间隔离(如向量数据库中的 metadata filter),检索时强制带上隔离条件,避免不同用户或不同问题之间的记忆被错误地交叉召回污染上下文。
- Java 类加载器:JVM 内置三种类加载器——启动类加载器(Bootstrap ClassLoader,加载核心类库,C++实现)、扩展类加载器(Extension/Platform ClassLoader,加载扩展类库)、应用类加载器(Application ClassLoader,加载classpath下的用户类),三者通过双亲委派模型协作:加载类时先委派给父加载器尝试加载,父加载器无法加载时才由自己加载,这样能保证核心类库的唯一性和安全性。