字节跳动一到四面全程 · 一面约 90 分钟 · 有手撕 25 分钟读完

字节 Agent 开发岗:从一面到 offer 的完整复盘

Agent 开发(抖音基础架构 / 剪映方向,含暑期实习线)

面经字节AgentMCP上下文工程RAG

岗位:Agent 开发(抖音基础架构 / 剪映方向) 轮次:一面到四面全程,一面约 90 分钟,四面后拿 offer 一句话定性:这是一场「工程体感」面试,每个问题都在验证你真的动手做过 Agent,而不是看过几篇科普。 素材时间线:2026 年 3 月至 5 月的多场字节 Agent 开发面试,整理时间 2026-09-28


0. 一分钟速览

项目内容
公司 / 岗位字节跳动 · Agent 开发(暑期实习与校招线)
形式线上,技术面一到三面 + HR 面,一面约 90 分钟
有手撕吗有。每轮技术面末尾一道算法题,岛屿最大面积这类中等题
有八股吗有,但占比小。QKV 为什么要拆、Python GIL 这类底层题会穿插出现
考察重心Skill 原理、上下文工程、工具调用链路、Agent 系统设计、记忆管理
难度感受题目本身不难,难在追问密度。一个话题平均追问 3 层
准备方向把自己做过的 Agent 项目每个设计决策的「为什么」想清楚

1. 面试流程与时间分配

流程:自我介绍 → 项目深挖 → Skill / 上下文工程 → 工具调用与 MCP → 系统设计 → 手撕 → 反问

环节时长面试官在听什么常见失分点
自我介绍 + 项目15–20 min单 Agent 还是多 Agent、子 Agent 怎么划分任务、提示词模板怎么建只讲做了什么,讲不出为什么这样拆
Skill / 上下文工程15–20 min有没有真用过 Skills、todo list 这类机制只会名词,说不出实现方式
工具调用 / MCP15 minMCP 的组成、调用失败怎么兜底把 MCP 说成框架,和 Function Calling 混为一谈
系统设计(二面)20 min混合路由、限流、记忆管理怎么放进一个系统堆组件名,没有容量和失败路径的考虑
手撕10–15 min中等题写干净、能跑一遍写崩又不主动说思路

节奏提示:字节的一面经常整场 90 分钟、19 个问题往上,是流水账式的连环追问。自我介绍里抛出的每个项目细节,后面几乎都会被单独拎出来问,别写自己扛不住深挖的点。


2. 追问机制:从一个名词挖到实现

字节 Agent 岗的追问链高度固定,以「Skills」这个话题为例:

  1. 第一层问名词:「skills 的原理有没有了解过?怎么实现的?」
  2. 第二层问实现:「Skill 加载进上下文以后,模型是怎么知道该用哪个的?」
  3. 第三层问取舍:「为什么不直接把所有工具说明全部塞进系统提示词?」

绝大多数候选人卡在第二层。背名词能过第一层,第二层开始要靠真的拆过 Claude Code 或者自己写过 Skill 文件。一位通过四面的候选人事后总结:「像 Skills、MCP、CLI 这些东西,不能只会名词,要拆到实现层才算过关。」

答题节奏建议:

  • 先一句话给定义和它解决的问题;
  • 再讲实现机制,带具体组件名(比如 Skill 的 frontmatter 结构、渐进式加载);
  • 最后主动讲边界和代价(上下文占用、加载时机)。

3. 一面:项目 + Skill + 上下文工程(19 问)

3.1 项目深挖:单 Agent 还是多 Agent

问法:「你的项目是单 Agent 还是多 Agent?子 Agent 任务怎么划分的?」

答题要点:先给结论(哪种、为什么),再给划分标准。合理答案是用任务边界和上下文隔离来划分:子 Agent 各自持有独立上下文,主 Agent 只拿结果摘要,避免全部任务挤在一个上下文窗口里把 token 花光。追问会继续压:「子 Agent 之间要共享状态怎么办」,答共享存储加版本号,别答「让它们聊天」。

坑:把多 Agent 说成「人多力量大」。面试官想听的是上下文稀缺逼出来的工程选择。

3.2 Skill 原理

问法:「skills 的原理有没有了解过?怎么实现的?」

答题要点:Skill 是把一组「什么时候做、怎么做」的指令和资源打包成模型可按需加载的单元;实现上通常是一个带元数据的目录,模型先看到名称和描述,判断相关时再加载完整内容。这个「渐进式加载」就是追问点:全量塞入浪费上下文,按需加载要在描述里写清触发条件。

3.3 上下文工程与 todo list

问法:「对于上下文工程有什么经验吗?有没有做过 to do list?为什么这样会让模型更聚焦?」

这是字节 2026 年的高频新题。答题要点:todo list 是把长任务的中间状态外置成显式结构,模型每步先读任务清单再行动,等于把「我做到哪了」从隐式的对话历史变成显式的可检查状态。为什么更聚焦:注意力直接锚在清单上,不被几十轮历史稀释。追问:「清单本身也会占上下文,怎么办」,答定期压缩已完成项、只保留未完成和关键结论。

3.4 查询改写与并行意图识别

问法:「查询改写怎么设计?」「多意图识别为什么做并行?」

答题要点:改写解决口语提问和知识库书面语的语义差距,做法包括指代补全、口语转术语、拆子问题。并行的理由要说工程账:串行每个意图都要等上一个的网络往返,并行把延迟从相加变成取最大,代价是并发控制要做好失败隔离。

3.5 底层八股穿插

这一场还夹了几道基础题:self-attention 为什么要拆 QKV(Q 和 K 做相似度匹配、V 携带内容,拆开让「找什么」和「拿什么」解耦)、Python GIL 对多线程的影响、信号量在并发控制里的用法。占比不大,但答错会拉低整体观感。

3.6 手撕

岛屿最大面积(LeetCode 695 原题变体)。字节 Agent 岗基本每轮都有手撕,中等难度,DFS 写干净即可。同批候选人手撕过重排链表(LeetCode 143)。用数组存下标模拟指针这种取巧解法,面试官当场就能识破,别赌。


4. 二面:Agent 系统设计 + 记忆管理

4.1 Agent 系统设计

问法:「设计一个面向内部员工的问答 Agent,要接工单系统和知识库。」

答题骨架:先问清量级和延迟要求,再分层:意图路由(闲聊 / 工单 / 知识库)、工具层(工单系统 API + RAG 检索)、生成层带引用。面试官会追加两个工程约束:

  • 混合路由 + 限流:简单问题走小模型或规则,复杂问题走大模型,怎么切分;后端工具 QPS 有限,队列和降级怎么设计。
  • 失败路径:工具调用超时怎么办。重试、降级到只读数据、向用户澄清,这三件套要能展开讲。

4.2 记忆管理

问法:「多轮对话的记忆怎么管理?短期和长期怎么分?」

答题要点:短期记忆就是当前上下文窗口内的历史,管理动作是压缩和截断;长期记忆要回答三个问题:什么信息值得写进去(用户偏好、已确认的事实)、怎么检索(向量 + 关键词混合)、怎么淘汰(过期时间 + 冲突覆盖)。字节面试官特别爱追「Claude Code 的 memory 三层逻辑设计,为什么这么设计」,这题的答法是把会话内上下文、项目级 CLAUDE.md、用户级全局配置三层各自的适用范围讲清楚。

4.3 微调与 RLHF(二面尾部)

问法:「什么情况下你会选择微调而不是改提示词?」

答题要点:改提示词解决「表达方式」问题,微调解决「行为分布」问题。具体判断:格式服从、领域口吻、特定工具调用习惯这类要稳定复现的行为,数据够的时候微调更划算;知识更新用 RAG,别烧进参数里。追问会到 RLHF 和 DPO 的区别,答偏好对直接优化与奖励模型间接优化的差异。


5. 三面:行业认知

三面是副总监级别,基本不考技术细节,聊的是对 AI 行业的判断:怎么看 Coding Agent 的天花板、Agent 落地最大的阻力是什么、为什么想来做这个方向。这轮的准备方式和技术面完全不同——要有自己的判断,且判断要有事实支撑,别背行业研报的结论。


6. 复盘与准备清单

  • Skills、MCP、CLI、Harness 这些概念要拆到实现层,名词背诵过不了一面的第二层追问。
  • 上下文工程是 2026 年字节 Agent 岗的新重心:todo list、上下文压缩、记忆分层,这三块的实操经验要在自己项目里先做一遍。
  • 手撕保持中等题手感,别指望取巧。
  • 同一批候选人里,腾讯一面挂、百度二面挂、淘天二面挂但字节四面过的情况并不少见——各厂考点差异真实存在,复盘时对照着看,比单看一场更有用。

相关题目:站内题库的「MCP 是什么」「Agent Skill 是什么」「RAG 怎么评估」都对应这场面试的原题。