Appearance
面经精选 2026-10-16
收录概览
本期检索 AI/Agent、Golang 后端、服务端/后台开发关键词,优先收录 2026-10-12~10-16 发布且能获取正文的公开面经;排除明显偏离目标岗位、正文不可获取和近 7 日已收录的重复内容。共收录 6 篇,覆盖 Agent 全栈、AI 应用后端、Golang 开发、后端服务与动态 UI。以下是公开技术问题的结构化改写,不代表整理者亲历。
- 微店|AI 全栈一面:Agent 状态机、query 到输出、上下文与记忆、指标和模型选型
- 杉川|后端一面:秒杀原子性、RAG 离线/在线流程、摘要记忆、SSE 与自动化解 Bug
- 华顺信安|Golang 开发实习:Gin、微服务、etcd、Docker、Redis Stream 与 AI Coding Review
- 小米|AI Agent 开发二面:金融理赔 Agent、权限隔离、审计、评测、降级与幂等状态机
- 影石 Insta360|AI Agent 开发三面:Harness、幻觉定位、评测集、多 Agent、端云协同
- 字节跳动|AI Agent 开发岗:Agent Loop、MCP/Skill、动态 UI、MySQL、DDS 与 URL 链路
来源索引
- 微店 AI 全栈一面:https://www.nowcoder.com/discuss/940646573107650560
- 杉川后端一面:https://www.nowcoder.com/discuss/940640190928805888
- 华顺信安 Golang 开发实习:https://www.nowcoder.com/discuss/940603493713207296
- 小米 AI Agent 开发二面:https://www.nowcoder.com/discuss/940357369693810688
- 影石 Insta360 AI Agent 开发三面:https://www.nowcoder.com/discuss/940356897104740352
- 字节跳动 AI Agent 开发岗面经-07:https://www.nowcoder.com/discuss/940390952902914048
说明:只保留公开技术问题和可迁移的工程考点,不复制个人隐私或原帖长段落。回答中的工程展开是通用复习思路;没有可靠指标时不虚构数字。
一、Agent 运行时与上下文治理
Q1:从用户 query 到 Agent 输出,完整链路怎样讲?
回答思路: 先做身份、租户和输入校验,再加载系统约束、任务状态、短期上下文和经过权限过滤的长期记忆;路由器判断直接回答、检索还是调用工具。进入 Agent Loop 后,依次完成规划、工具选择、参数 Schema 校验、权限/风险检查、执行、结果写回和验证,直到任务完成、超时、预算耗尽或转人工。最终输出还要做格式校验、敏感信息检查,并记录 trace、模型版本和证据引用。
易踩坑 / 追问: state 是任务运行状态,context 是本轮送入模型的材料,memory 是跨轮复用的信息,三者要分别定义生命周期;不能把“调用了模型”当成完整架构。涉及资金、订单或权限变更时,模型只能提出候选动作,服务端必须二次确认、鉴权和幂等。
Q2:上下文膨胀或摘要不准确怎么办?
回答思路: 将不可丢的安全规则、当前目标、待办和关键证据与可压缩的历史观察分开。短期记忆保留最近窗口,长期记忆保存结构化用户偏好和带来源的事实;大结果用分页、游标和引用按需读取。摘要采用旧摘要加新增消息的增量方式,同时保留原始事件、版本和回滚能力。裁剪后检查关键事实、JSON Schema 和任务状态,再用回放集评估摘要是否造成遗漏。
易踩坑 / 追问: 不能只按字符截断,更不能让模型单独决定安全策略;记忆冲突时按来源可信度、时间、业务状态和用户明确确认处理,无法判定就追问或降级。
Q3:Agent 如何防止死循环、幻觉和工具误调用?
回答思路: Harness 维护最大步数之外的 Deadline、Token/费用预算、工具深度、并发数、错误上限、相同参数指纹和状态进展指标;无进展时重新规划、降级回答或人工接管。工具结果返回结构化状态和证据,执行前做参数、权限、风险和资源校验,执行后由确定性代码核验结果。幻觉定位要区分事实错误、工具选择错误、参数错误和上下文错误,分别通过 RAG 引用、工具路由评测、Schema 校验和上下文回放处理。
易踩坑 / 追问: “每次调用都成功”不等于任务有进展;高风险操作不能靠 Prompt 防护,必须有服务端策略、审计和回滚。
二、动态 UI、MCP 与 AI Coding
Q4:结构化 JSON 如何安全驱动动态 UI?
回答思路: 前后端共同维护版本化 UI Schema,定义组件白名单、字段类型、动作 ID、权限、状态版本和回退组件。模型输出先经过解析、Schema、业务规则和权限校验,失败时有限重试或降级为文本。用户点击后提交 action、资源版本和参数,后端重新鉴权并以服务端状态为准。流式输出要处理半个 JSON、乱序、重复和断线,使用事件 ID、序号、缓冲解析、幂等合并和最终快照。
易踩坑 / 追问: Dynamic UI/A2UI 不是让模型生成任意可执行代码;比较方案时要看协议稳定性、交互能力、安全边界、端侧兼容和调试成本。
Q5:100 个 Skill 和 100 个 MCP 如何精确匹配?
回答思路: 不把所有描述一次塞进上下文。先按领域、数据源、权限和风险分组,再用意图路由或检索召回少量候选,经过 Schema 和权限过滤后暴露给模型。命名、描述、输入输出示例、错误码和副作用要统一;调用结果回写状态,并检测重复调用。Skill 更偏可复用的方法与约束,MCP 更偏向把外部资源和动作以工具契约暴露,两者不应混成无边界的提示词。
易踩坑 / 追问: 只按名称匹配容易误召回;工具描述必须写清前置条件、不可做的事、超时和重试语义。
Q6:AI Coding 的代码评审怎样避免“模型自作主张”?
回答思路: 人先完成需求澄清、验收标准、架构约束和选型决策,AI 再辅助实现、测试和审查。Review 采用需求、接口、数据、异常、权限、并发、可观测性、发布回滚的清单;冲突时回到已确认的约束,由人判断是否修改方案,而不是让模型覆盖业务意图。每次生成都要本地运行、测试、看 diff,并记录工具权限和变更范围。
易踩坑 / 追问: 不能因为“全程 AI”就跳过需求分析和执行计划;也不能把开源框架能力说成自己的实现,回答时要区分 SDK、配置和个人扩展。
三、后端可靠性、Golang 与数据系统
Q7:秒杀只剩一张券,两人同时抢,怎样避免超卖和重复订单?
回答思路: 在 Redis/Lua 或数据库原子条件更新中完成库存检查与扣减,并使用用户/商品维度幂等键防止重复购买;订单创建通过消息或事务出站事件衔接,消费者崩溃后依靠持久化状态、重试和补偿恢复。超时或收到 429 不能直接重试副作用请求,应先查询下游状态。最终用库存、订单、消费记录和对账任务验证一致性,说明这是最终一致而非“Redis 加锁就万事大吉”。
Q8:Gin、etcd 和 Docker 选型怎么答?
回答思路: Gin 的取舍应结合路由性能、生态、中间件和团队熟悉度;etcd 适合一致性要求高的配置与服务发现,回答时比较 Nacos 的能力边界、运维和生态,而不是只背优点。Docker 部署要说明健康检查、restart policy、日志、资源限制、编排和宿主机重启后的状态检查;容器内访问 MySQL 还要区分宿主机、网络和数据库权限。
Q9:RAG、SSE 和自动化解 Bug Agent 如何串起来?
回答思路: RAG 离线阶段完成文档清洗、切分、Embedding、索引和版本记录;在线阶段做意图识别、混合召回、重排、引用约束和生成验证。SSE 链路要从模型增量输出、服务端缓冲、事件编码、代理转发讲到浏览器消费,补充断线重连、序号和背压。解 Bug Agent 则应读取 JIRA、检索代码与日志、生成候选修复、运行测试并提交人工审核,不能默认自动合并高风险改动。
本期高频考点与复习建议
- Agent:Loop、Harness、状态/上下文/记忆、预算、checkpoint、幻觉分类和确定性校验。
- 工具化:MCP/Skill、动态 UI Schema、权限、幂等、审计和人工接管。
- 后端可靠性:秒杀原子性、消息恢复、重试边界、服务发现、容器运维和 SSE。
- RAG 与评测:离线/在线分层、混合检索、引用、摘要回放、badcase 回流。
- 基础题:B+Tree、回表、窗口函数、进程线程协程、Redis Stream 与微服务通信。
复习时准备一张“模型—Harness—工具—状态—验证器”的时序图,再准备一个 Go 服务的限流、幂等和优雅停机方案。所有项目指标说明口径、基线、改动和验证方式;没有真实数据就明确评测计划。