深圳思博兰科技实习一面
- 时间
- 2026-08
- 来源
- 牛客网
《面试题目》
- 知识分享平台
- 当时为什么要做这个知识分享社区项目?
- 项目做了feed流缓存,为什么要做?项目的并发压力来源是什么?
- 讲下项目的三级缓存设计。
- 缓存回源到MySQL,Redis和数据库双写,如何保证数据一致性?
- AI问答链路采用旁路方式接入原有RAG接口,是什么含义?
- 知光AI项目是不是就是社区平台上加AI对话助手?
- 三、Coding‑Agent项目(AI智能体
- Agent执行链路基于function‑calling循环,请完整描述一次循环流程;重点说明:模型不返回工具调用、输出胡说八道、返回非法JSON参数,项目如何做异常兜底处理?
- 如果模型一直返回错误/非法工具调用参数,如何处理?
- 说说乐观锁、幂等键、参数哈希约束,如果没有这三者,会出现哪些错误?
- 上下文工程按token预算规划摘要、工具证据、按需skill:token预算如何分配?什么是工具证据?
- 什么是skill的按需加载?
- 项目有子Agent,对比主循环多次调用工具,子Agent有什么优势?
- 子Agent的核心价值,为什么要设计子Agent?
- 参与OpenViking开源,bug是如何发现、如何修复的?
- 语言、实习相关
- 我们业务主要使用Go语言,你主栈是Java,说说Java和Go的区别。
《参考解析》
- Redis常用于缓存、分布式锁和计数。缓存与数据库更新通常采用“先写数据库、再删除缓存”,并通过重试、延时双删或消息补偿处理删除失败。
- MySQL索引通常使用B+树,叶子节点按顺序连接,适合范围查询;设计索引时结合选择性、最左匹配原则和执行计划,避免无效索引与回表开销。
- 并发问题应先明确共享状态和一致性边界,再选择锁、CAS或队列。线程池需要根据任务是CPU密集还是IO密集设置核心线程数、队列容量和拒绝策略,并监控活跃数与队列长度。
- Agent或RAG链路应记录工具调用、检索证据和失败原因;对非法参数、路由错误和超时设置校验、重试上限与可观测日志,避免把模型输出直接当作可信结果。