Appearance
面经精选 2026-10-13
收录概览
本期检索 AI/Agent、AI 应用开发、Golang 后端与服务端关键词,优先收录 2026-10-13 新发布且能获取正文的公开面经;排除无法获取正文、明显重复和与目标岗位关联较弱的内容。共收录 4 篇,均为公开技术问题改写,不代表整理者亲历。
- 上海初创小厂|对话 AI / Agent 实习|项目深挖与 AI Coding 流程|来源:https://www.nowcoder.com/discuss/939554787337441280
- 字节跳动|Agent 全栈|一面|来源:https://www.nowcoder.com/feed/main/detail/3d554c6d99e74b93a673fa9c39e9d113
- 联宝科技|AI 应用开发|AI 面|来源:https://www.nowcoder.com/feed/main/detail/15a413ed04ef43e0a3061a82bd5ff6bb
- 字节业务中台|AI 全栈日常实习|一面|来源:https://www.nowcoder.com/feed/main/detail/6ac5ba31705a4b64a407b087f39d5447
说明:原帖中的个人经历、公司内部细节和身份信息未作扩展;以下回答是面向复习的通用工程化整理,补充内容会明确标注为“补充”。
一、上海初创小厂|对话 AI / Agent 实习
来源:https://www.nowcoder.com/discuss/939554787337441280
Q1:做一个对话 AI 项目时,如何讲清楚自己真正负责了什么?
回答思路: 先按“业务目标—输入—上下文—模型决策—工具执行—结果验证—最终效果”讲完整链路,再拆自己的边界:负责了哪些模块、改动了哪些接口或流程、做过哪些实验,哪些能力来自框架或 SDK。不要只说“用了某某 Agent 框架”,而要说明框架解决了什么、自己补了什么。
如果没有线上指标,不要编造。可以给出评测口径,例如任务完成率、工具参数正确率、拒答准确率、P95 延迟、Token 成本、人工接管率和 badcase 数量。回答“参考了什么开源框架”时,还要说明选型依据、版本、封装层和遇到的限制。
易踩坑 / 追问:
- SDK 外围还是内部架构? 说清扩展点、适配层和是否修改过框架源码;不要把调用 SDK 包装成重写框架。
- 个人贡献如何证明? 讲负责模块、设计取舍、提交边界、实验过程和未解决问题,不把团队结果全部归为个人。
- 什么时候不用 Agent? 流程固定、规则明确或副作用高且不需要动态规划时,优先工作流或状态机。
Q2:系统提示词和上下文应该怎样组织?
回答思路: 将系统级规则、业务目标、用户输入、工具契约、检索资料和历史状态分层管理。系统级安全规则与外部内容隔离;工具描述使用结构化 Schema,明确参数、权限、前置条件、错误码和结果格式;历史对话按照任务状态和证据压缩,而不是简单按轮数截断。提示词加载位置要可追踪,记录版本、模型版本和调用链,便于回放。
内容拦截可以分为输入侧、工具执行前和输出侧:输入侧做分类与脱敏,工具执行前由服务端做权限和风险校验,输出侧做格式、敏感信息和业务规则检查。模型不能绕过运行时直接执行高风险动作。
易踩坑 / 追问:
- 不要把 Prompt Injection 防护只寄托在提示词上,外部文档和工具返回都应按不可信数据处理。
- 提示词变更要进入评测与灰度流程,不能只看一两个 Demo。
- 内容拦截的误杀率、漏放率、延迟和人工申诉都应纳入评估。
Q3:AI Coding 工具和 Skill/MCP 应该怎么进入研发流程?
回答思路: 先由人完成需求澄清、约束确认和任务拆分,再让工具辅助检索、生成、测试、文档和审查;每次输出都经过本地运行、测试、差异审查和人工决策。模型选择取决于任务复杂度、上下文长度、隐私、成本和代码库约束,不应只按“最强模型”选择。
项目文档可按需求、方案、接口/数据、测试、发布和复盘分阶段维护。Skill 适合沉淀可复用的工作方法和输入输出约束;MCP 更偏向把外部数据或动作以工具契约暴露给模型。补充:工具应限制权限、目录、域名和副作用,所有写操作留审计。
追问: Mentor 或 Leader 经常发现的遗漏包括异常路径、权限边界、数据迁移、回滚、可观测性、成本和并发,而这些正是 AI 生成方案容易“看起来完整”但不可靠的地方。好的回答不是说“AI 都能做”,而是说明人工如何验证和承担最终责任。
二、字节跳动|Agent 全栈一面
来源:https://www.nowcoder.com/feed/main/detail/3d554c6d99e74b93a673fa9c39e9d113
Q4:从用户输入 Prompt 到生成页面或订单,Agent Loop 如何工作?
回答思路: 可以抽象为:读取目标和状态 → 判断是否完成 → 规划下一步 → 选择工具/Skill → 校验参数与权限 → 执行 → 写回观察结果 → 验证并继续或结束。循环退出不能只靠步数,还应有总 Deadline、Token/费用预算、状态进展指纹、重复动作检测、错误上限和人工接管。
ReAct 适合边思考边观察的开放任务;Workflow 适合路径确定、可审计的业务流程;Replan 适合执行中出现新信息或失败后重新规划。MCP 是工具/资源暴露协议,Function Calling 是模型提出结构化调用的一种接口机制,二者不在同一抽象层。
易踩坑 / 追问:
- state 是任务运行状态,context 是当前送入模型的上下文,memory 是跨轮或跨会话保存的信息,不能混为一谈。
- 超时后不能无脑重试副作用操作,应查询下游状态并使用幂等键。
- 跨会话要保存经过权限控制的结构化摘要、任务结果和证据引用,不要把全部历史无边界塞回 Prompt。
Q5:后端返回的结构化 JSON 如何可靠驱动动态 UI?
回答思路: 前后端先定义版本化的 UI Schema:组件类型、字段、可用动作、参数类型、权限、校验规则和回退组件。服务端对模型输出做严格解析、Schema 校验、字段白名单和业务规则验证;校验失败时重试有限次数或降级为文本,不能直接把任意 JSON 交给前端渲染。
用户点击、编辑或删除时,前端提交 action_id、资源标识、版本和必要参数,后端重新鉴权并校验状态;成功后以服务端状态为准更新 UI。流式输出时,增量片段可能出现半个 JSON、顺序错乱、重复事件和断线重连,因此应使用事件 ID、序号、缓冲解析、幂等合并和最终完整快照。
追问: Dynamic UI/A2UI 方案的选型要比较协议稳定性、组件覆盖、交互能力、安全边界、端侧兼容和调试成本,不能只因为别的产品用了就照搬。动态渲染不是让模型自由生成可执行代码。
Q6:前端请求失败如何设计自动重试?
回答思路: 先区分网络错误、超时、限流、服务端 5xx 与 4xx;只有可恢复错误才重试。限制最大次数和总时间,使用指数退避加随机抖动;写操作带幂等键,重试前查询是否已经成功。每次尝试记录 trace_id、错误类型和等待时间,最终失败要向用户给出可理解的状态。
闭包计数题可以用外层变量保存 count,返回每次递增的函数;要说明并发调用时普通变量不安全,若跨 goroutine 使用需加锁或使用原子操作。LRU 则用哈希表定位节点、双向链表维护新旧顺序,get/put 都是 O(1),淘汰尾节点并处理容量为零等边界。
三、联宝科技|AI 应用开发 AI 面
来源:https://www.nowcoder.com/feed/main/detail/15a413ed04ef43e0a3061a82bd5ff6bb
Q7:为什么 Agent 在回答前要判断是否调用外部工具?
回答思路: 工具调用有成本、延迟、权限和失败风险。静态知识、简单闲聊不必调用;需要实时数据、私有数据、计算、写入或外部动作时才调用。判断后还要进行工具选择、参数补全、权限校验和结果验证。工具结果应带来源和时间,缺失或过期时明确降级,不能编造。
Q8:RAG 知识库为什么要做版本管理?
回答思路: 版本管理能追踪某次回答使用了哪一版文档、切分和 Embedding,支持回滚、增量更新、权限变化和问题复现。文档更新时要处理删除、失效和冲突,避免旧片段继续被召回。评测时固定数据版本,才能比较召回率、引用准确率和回答质量。
Q9:指令微调和示例为什么需要输入与理想输出?
回答思路: 输入定义任务条件,理想输出定义目标格式、风格和判断标准,二者配对才能让模型学习从什么信息映射到什么行为。示例应覆盖正常、边界和拒答场景,避免数据泄漏和评测集污染。对于评论情感分析,监督学习适合已有明确标签的分类目标;无监督方法可用于聚类或探索,但不直接保证标签语义一致。
四、字节业务中台|AI 全栈日常实习
来源:https://www.nowcoder.com/feed/main/detail/6ac5ba31705a4b64a407b087f39d5447
Q10:如果有 100 个 Skill 和 100 个 MCP,如何精确匹配?
回答思路: 不应一次把全部工具描述塞给模型。先按领域、权限、数据源和风险分组,通过意图路由或检索召回候选,再做 Schema/权限过滤,最后只暴露少量清晰工具。工具命名、描述、输入输出示例和错误码要规范化;工具调用结果要反馈到状态,并对重复调用和无进展循环设限。
Q11:Context、State、Memory、MCP 分别做什么?
回答思路: Context 是当前推理窗口中的材料;State 是当前任务可变的运行状态,如步骤、订单和待办;Memory 是需要跨轮或跨会话复用的长期信息;MCP 是向模型提供外部资源和动作的协议边界。设计时要分别定义生命周期、权限、持久化、大小和一致性,不能把所有内容都放进聊天记录。
Q12:从 URL 到页面渲染,怎样回答性能优化?
回答思路: 链路包括 DNS、连接建立、TLS、HTTP 请求、网关/服务端、静态资源传输、浏览器解析和渲染。DNS 可用缓存、合理 TTL 和就近解析;连接可用 keep-alive、HTTP/2 或 HTTP/3;资源侧做 CDN、压缩、缓存、图片格式与尺寸优化;页面侧减少阻塞脚本、拆分代码和懒加载。优化前先用瀑布图、RUM、Server-Timing 和 P95 指标定位瓶颈,不能只背方案。
浏览器和协议都存在并发、连接、流控和队头阻塞等约束。HTTP/2 多路复用不代表无限并发,HTTP/3 基于 QUIC 可减少 TCP 队头阻塞,但是否更快仍取决于网络、服务端和资源策略。
本期高频考点总结
- Agent 运行时:Loop、ReAct/Workflow/Replan、状态/上下文/记忆、预算、checkpoint 和防死循环。
- Agent 工具化:MCP 与 Function Calling 的边界、Skill 组织、工具路由、Schema、权限、幂等和验证。
- Dynamic UI:版本化 JSON Schema、流式增量合并、事件幂等、服务端状态与动作映射。
- AI 应用后端:RAG 版本管理、指令微调、监督学习、工具调用条件和评测回放。
- 全栈基础:URL 到渲染、DNS/HTTP 优化、闭包计数、LRU 和失败重试。
复习建议
- 手写一个带最大步数、Deadline、重复动作检测和 checkpoint 的 Agent Loop。
- 准备一个动态 UI 的 Schema 示例,能讲清模型输出如何经过校验后变成安全动作。
- 将 RAG 文档、切分、Embedding、索引和 Prompt 全部版本化,并设计一套可回放评测集。
- 手写 LRU 与带退避、幂等键、错误分类的 request retry,补充并发和断线边界。
- 介绍 AI 项目时按业务目标和个人边界开场,再谈方案、指标、失败与复盘;没有真实数据就明确评测方法。