百度面试真题及答案:按岗位浏览
27 道题,按知识分类阅读完整解析和面试追问。
大模型基础面试题1 道
余弦相似度、点积和欧氏距离有什么区别?向量检索应该怎么选?
用二维向量比较余弦、点积和欧氏距离,解释长度、方向、归一化等价条件与分数方向,并说明向量检索度量的选型方法。
RAG面试题2 道
RAG 文档切片越小越好吗?Chunk Size 应该怎么选?
RAG 切片不是越小越好。小块通常更聚焦,检索时容易定位到某句话,但可能把主规则、前提和例外拆开;大块能保留更多上下文,却可能混入无关内容,增加重排和模型输入的负担。
RAG 混合检索怎么做?关键词与向量检索的融合
RAG 用混合检索,主要是因为关键词和向量检索擅长的题不一样。像 E_CONN_RESET 这样的错误码、订单号或条款编号,关键词匹配通常更直接;用户把原文换一种说法来问时,向量检索又更容易找到语义相近的片段。
Agent面试题5 道
什么是 Tool Calling?大模型是如何调用外部工具的?
Tool Calling 并不是大模型自己去执行某个工具,而是模型和应用之间约定的一套调用方式。应用会先把工具名称、用途和参数结构告诉模型。模型判断需要使用工具时,会返回一份结构化的调用请求,里面通常包含工具名称、参数和调用标识。
Agent 如何规划任务?什么时候需要重新规划?
Agent 做计划,是为了把复杂任务拆成可验证的阶段,避免拿到一个工具结果就漫无目的地调用下一个工具。计划里应有当前假设、下一步要取的证据和完成条件。但计划不能锁死执行路径。
Agent 如何选择和加载 Skill?
Agent 使用 Skill,一般可以分为发现、选择和加载。应用先提供名称、描述等简要信息;模型判断当前任务需要哪些 Skill,再读取对应的完整说明和必要材料。
Agent 的长期记忆怎么设计?用户改口后,旧记忆怎么办?
Agent 的长期记忆,是把跨会话仍然有用的信息保存下来,并在后续任务需要时取用,不是把所有聊天都永久保存。设计时,我会给记忆记录用户、适用范围、来源、更新时间和有效状态。
MCP 的 stdio 和 Streamable HTTP 有什么区别?“流式”到底指什么?
stdio 和 Streamable HTTP 都是 MCP 的传输方式,区别主要是 Client 和 Server 怎样连接、怎样交换消息。
AI应用工程面试题2 道
Agent 任务中断后如何恢复?Checkpoint 与幂等设计
Agent 故障恢复不能只保存聊天记录。需要持久化任务标识、运行状态、已完成步骤、待处理动作和必要的结果引用,重启后才知道从哪里接着做。恢复时,执行器先取得任务的执行权,再读取最后保存的状态。已确认完成的步骤可以复用结果;
Agent 执行越来越慢,应该怎么定位性能瓶颈?
Agent 执行变慢,不能直接判断是大模型的问题,需要先把一次任务的耗时拆开。例如,用户提交任务后,可能先在队列里等待。开始执行以后,又会经历模型判断、工具调用和多轮重试。
前端面试题13 道
JavaScript 事件循环是什么?宏任务、微任务和 async/await 怎么执行?
浏览器中的 JavaScript,通常先执行当前任务里的同步代码。当前调用栈清空后,会在微任务检查点处理排队的微任务,随后浏览器才有机会渲染、选择下一项任务。Promise 的后续回调和 await 后面的继续执行,通常进入微任务队列;
HTTP 强缓存和协商缓存有什么区别?Cache-Control、ETag 和 304 怎么配合?
强缓存是浏览器在缓存仍然新鲜时,直接复用已有响应,不需要为了这个资源向服务器验证。常用 Cache-Control: max-age 指定新鲜期。协商缓存是在需要验证时,带着资源标识询问服务器。
JavaScript 闭包是什么?为什么变量没有被释放,什么时候会内存泄漏?
闭包是函数与它所处词法环境的组合,使函数能够访问定义位置外层的变量。外层函数返回以后,只要相关函数及环境仍然可达,需要的变量就可能继续存在。闭包不是把当时所有变量都拍成一份快照。多个函数可以共享同一个变量,读取时看到后续修改;
XSS 和 CSRF 有什么区别?HttpOnly、SameSite 和 Token 分别防什么?
XSS 是不可信输入被页面当作可执行内容,攻击者因此获得当前页面里的脚本能力。主要防护是按输出上下文正确编码,富文本使用可靠净化,并避免危险的动态执行入口,CSP 可作为额外防线。
JavaScript 原型链是什么?new 和继承是怎么实现的?
原型链就是 JavaScript 查找对象属性的一条路径。先查对象自己的属性,没有找到,再查它的原型,继续往上找,直到原型为 null。用 new 创建实例时,实例通常会连接到构造函数的 prototype 对象。
JavaScript 的 this 指向谁?箭头函数、call、apply、bind 有什么区别?
JavaScript 的普通函数,this 通常由调用方式决定。以 obj.run() 调用时,obj 是接收对象;把 run 单独拿出来调用,就不会自动记住原来的 obj。
防抖和节流有什么区别?搜索框和滚动事件分别怎么选?
防抖会把一段连续触发合并处理。常见的尾部防抖,是每次触发重新计时,等一段时间没有新触发,再执行最后一次。因此,搜索建议、输入校验这类关心最终输入的功能,通常适合防抖。节流则控制执行频率。
从输入 URL 到页面显示,浏览器到底经历了什么?
浏览器先解析 URL,确定导航目标,再按缓存、已有连接和协议情况获取页面。需要时进行域名解析与连接建立;HTTPS 还涉及安全握手,但不能把每次导航都说成重新走完整 TCP 流程,HTTP/3 也不使用 TCP。
Vue Router 的 hash 和 history 模式有什么区别?刷新为什么会 404?
hash 模式把前端路由放在后面,这一部分不会随 HTTP 请求发送到服务器,所以静态服务器通常只需要提供入口页面。history 模式使用正常的路径。
CSR、SSR、SSG、ISR 有什么区别?Next.js 项目怎么选?
CSR 主要由浏览器执行应用代码生成界面;SSR 在请求处理时生成 HTML;SSG 在构建阶段预生成页面。它们描述的重点是页面内容的生成位置与时机。
虚拟列表是什么?几万条数据怎样做到滚动不卡顿?
虚拟列表只渲染可见区域附近的少量行,同时用占位空间保留整份列表的滚动范围。用户滚动时,根据位置更新要渲染的数据区间和偏移量。
CSS 定位有哪些方式?absolute、fixed 和 sticky 有什么区别?
CSS 常见定位值包括 static、relative、absolute、fixed 和 sticky。static 参与普通布局,定位偏移不按定位方式生效。relative 保留原本的布局位置,再相对正常位置偏移。
var、let、const 有什么区别?暂时性死区和变量提升怎么理解?
var、let、const 的区别,主要看作用域、初始化时机和能不能重新赋值。var 通常以函数为作用域,普通 if、for 代码块不会单独限制它。进入相应作用域时,var 绑定已经初始化为 undefined;
后端面试题1 道
Python 装饰器是什么?functools.wraps 为什么不能随便省略?
Python 装饰器接收一个函数或其他可装饰对象,返回处理后的对象。对函数来说,@decorator 可以理解为定义完成后执行 func = decorator(func)。
计算机基础面试题2 道
HTTP 和 HTTPS 有什么区别?TLS 怎样防止窃听、篡改和冒充?
HTTP 定义请求和响应的语义,HTTPS 通常指通过 TLS 保护的 HTTP 通信。HTTP/3 使用 QUIC,而 QUIC 也集成了 TLS 1.3 的安全机制。TLS 主要处理保密性、完整性和身份验证。
HTTP 常见状态码有哪些?401、403 和 502、503、504 怎么区分?
HTTP 状态码描述本次请求的处理结果与响应语义。1xx 是信息响应,2xx 表示成功处理,3xx 涉及重定向等后续处理,4xx、5xx 分别属于客户端错误和服务端错误类别,但这些分类不是对真实故障责任人的直接判决。
系统设计面试题1 道
工厂模式和策略模式有什么区别?如何配合管理多种实现?
工厂模式和策略模式有什么区别?如何配合管理多种实现?工厂负责准备实现,策略负责替换行为,两者可以沿明确接口配合。讲清两种模式的职责划分与协作方式。
真题根据求职者公开面经整理,题意经过概括,非逐字原话或公司官方题库;本文为 Sunday 的独立解析。