TikTok后端开发二面面经
- 轮次
- 二面
- 时间
- 2026-09
- 来源
- 牛客网
《面试题目》
- QL Express 作为动态表达式方案的选型依据是什么?
- 发票校验规则扩展到数千条时如何设计,才能快速迭代并隔离变化?
- 如何抽象发票规则分类并降低规则间耦合?
- 如何设计高可用的分布式文件存储系统,保障极端场景下文件不丢失?
- CLI 编程 Agent 的 Agent Loop 完整执行流程是什么?
- Agent Loop 的循环终止条件有哪些?
- 如果支持 human-in-the-loop,checkpoint 和 resume 应如何设计?
- ToolCall 如何通过反射、JSON Schema 校验和参数注入完成调用?
- 动态传入 JSON 时如何定位 Java 类、方法并完成参数转换?
- 如何实现全排列?
《参考解析》
- 规则经常变化且需要业务配置时,表达式引擎可把规则从代码中解耦;选型要比较语法能力、沙箱安全、执行性能、调试和版本管理。
- 把规则拆成可组合的无状态策略,按发票类型、金额和时间等维度配置,并给每次发布建立版本和回滚点;规则执行按优先级短路,避免修改一条规则影响全局。
- 先抽取公共条件和动作,再把变化点作为独立谓词;用规则集合或决策表管理组合关系,禁止在单个规则中堆叠大量隐式分支。
- 文件元数据与对象内容分离,内容按哈希路由到多节点并做多副本;写入采用临时对象、校验和及持久化回执,读取时校验副本,不一致时从健康副本修复。
- Agent Loop 通常是压缩上下文、请求模型、解析工具调用、校验工具和参数、执行并记录审计,再把结果交回模型,直到模型给出最终答复或触发终止条件。
- 无工具调用、达到超时或 token 预算、连续错误次数超限,以及用户主动取消,都应结束循环并返回可解释状态。
- 每个步骤保存输入、输出、工具调用和权限状态形成 checkpoint;恢复时校验版本与权限,从未完成步骤继续,并为人工审批提供明确的暂停状态。
- 先根据注册表找到工具,再用 JSON Schema 校验参数和权限,反射实例化后调用;所有异常都要记录并转换为结构化工具结果。
- 从受信任注册表解析类名,检查允许的方法签名,再把 JSON 按参数类型转换;禁止让请求直接指定任意类名,以免形成任意代码执行。
- 回溯维护已选元素和使用标记,递归填入每个位置;到达数组长度时复制结果,返回后撤销选择即可枚举全部排列。