# 牛客大佬内推我字节Agent一面，我爽了！！！

> AIGC小白入门记 | 昨天 22:28

**标签**：通信/硬件秋招总结、简历中的项目经历要怎么写...、XX说这话是什么意思

**来源**：https://www.nowcoder.com/discuss/914281634864562176

---

牛客大佬内推我字节Agent一面，我爽了！！！

说出来你们可能不信——这场面试是面试官主动找我约的。

事情是这样的。我一直在牛客上分享面试经历，上周突然收到一条私信，对方说自己是字节的面试官，看了我的面经觉得基础还不错，问我有没有兴趣试试他们部门，可以帮我内推。

我当时第一反应是：这不会是骗子吧？

确认了对方的企业邮箱之后，我才把简历发了过去。结果第二天就收到了面试邀请，效率快得离谱。激动归激动，该准备的还是得准备。花了两天把项目和八股重新过了一遍，面试聊下来整体很顺畅，今天就记录一下这次面试的题目和回答，希望能给同样在准备面试的朋友一些参考。

文末有个小福利，想要的直接划到底部。

1. 多模态结构是怎样的？

面试官开场就问了这个，大概是看我对多模态有没有基本认知。

我的回答：

多模态模型的核心是"让LLM能看懂非文本信息"。以视觉为例，标准架构分三步：

第一步是视觉编码，用ViT或者CLIP把图片转成特征向量；第二步是特征对齐，用适配器（比如Q-Former或简单线性层）把视觉特征映射到LLM的嵌入空间；第三步是训练策略，通常是先冻结视觉编码器和LLM只训练适配器，等对齐好了再端到端微调。

面试官追问"为什么需要两步，不能直接喂特征吗"，我说因为视觉特征和文本Token不在一个语义空间里，直接喂LLM理解不了，必须先做映射。

2. RAG完整流程是怎样的？

这道题问的是RAG的标准流程，我分离线在线两个阶段讲。

我的回答：

离线阶段：

1
	
文档 → 格式解析（PDF/Markdown/Word） → 语义切分 → Embedding → 存入向量库

切分原则是：有结构按结构切（标题/段落），没结构按固定大小切（512字+128字重叠）。

在线阶段：

1
	
用户Query → Query改写（补全指代/扩展同义） → 多路召回 → 融合排序 → Rerank → 拼Prompt → LLM生成

多路召回指的是向量检索+关键词检索（BM25）双路并行，RRF融合各路结果，再用Cross-Encoder做精排。

面试官追问"向量检索和关键词检索各自的优势是什么"，我说向量检索擅长语义匹配（"手机"能匹配"iPhone"），关键词检索擅长精确匹配（专业术语、编号、代码），两者互补。

3. LoRA和QLoRA的区别？

这道题考的是参数高效微调。

我的回答：

LoRA的原理是冻结底座模型，在每一层插入一个可训练的旁路低秩矩阵：

其中W是原始权重（冻结），A和B是小矩阵（可训练），参数量远小于W。

QLoRA是在LoRA的基础上，把底座模型量化到4bit，进一步压缩显存。

底座精度

	

16bit

	

4bit




显存占用

	

较高

	

省60%以上




效果

	

接近全量微调

	

接近LoRA




适用场景

	

显存充足

	

消费级显卡

QLoRA之所以能保持效果，是因为虽然底座是4bit的，但训练过程中的梯度计算是在BF16精度下做的，量化只影响前向传播的精度。

4. A2A和MCP分别是什么？

这道题考的是Agent通信协议。

我的回答：

**MCP（Model Context Protocol）**是Agent和工具之间的协议，解决"怎么调用工具"的问题。它定义了一套标准接口——工具发现、参数传递、结果返回。打个比方：MCP就是AI的USB接口，不管接什么工具（数据库、API、文件系统），协议是统一的。

**A2A（Agent-to-Agent Protocol）**是Agent之间的通信协议，解决"多Agent怎么协作"的问题。定义了消息格式、任务委托、结果协商。

一句话总结：MCP管纵向调用（Agent→工具），A2A管横向协作（Agent↔Agent）。

5. 长上下文有哪些处理方案？

我的回答：

两种思路：

让模型支持更长上下文：

位置编码扩展：通过位置插值（PI）或NTK-aware让模型泛化到更长序列
KV Cache压缩：对历史Token的Key/Value做降维或筛选

不喂全量，改用RAG检索：

知识类任务用RAG比硬塞全文更优
带来源引用和知识更新能力

选型建议：长文档总结用长上下文模型，开放域问答用RAG，复杂推理任务两者结合。

面试官追问"什么时候不能只用RAG"，我说需要全局理解的任务（比如"整本书的核心论点是什么"）RAG效果不好，因为检索只能拿到片段，看不到整体。

6. 常用的Agent框架有哪些？分别适合什么场景？

我的回答：

LangChain

	

通用框架

	

快速搭原型、组件拼接




LangGraph

	

状态机

	

复杂Agent循环、条件分支




LlamaIndex

	

检索框架

	

RAG系统、知识库构建




AutoGen

	

多智能体

	

多Agent协作、群聊




Dify

	

低代码

	

非技术人员快速搭建

个人经验：做复杂状态流转选LangGraph；做检索密集型选LlamaIndex；做多Agent协作选AutoGen。LangChain适合验证想法，但不适合上生产。

7. 多模态检索是怎么做的？

我的回答：

核心是CLIP跨模态Embedding。CLIP同时训练了图片编码器和文本编码器，把两种模态映射到同一个向量空间。检索时用户文本Query过文本编码器，然后去向量库里找最接近的图片向量。

进阶方案是混合检索——如果图片里有文字（截图、海报），先用OCR提取文字，然后图文双路召回，用RRF融合排序：

8. 用户信息和历史对话怎么存？

我的回答：

用户画像存KV数据库（Redis或MySQL）。用户画像是结构化数据，偏好设置、常用工具、个人信息，每个字段有明确的key，用KV最适合。

1
2
3
4
5
	
{
  "user_id": "u123",
  "preferred_lang": "Python",
  "timezone": "Asia/Shanghai"
}

历史对话存向量库（Milvus/Pinecone）。每条对话作为一个向量，附带元数据（时间戳、会话ID、任务类型）。检索时用向量相似度+元数据过滤。

Agent使用时先加载用户画像，再检索相关历史对话，合并注入上下文。

9. AI开发有什么心得？

我的回答：

AI辅助开发主要用在三个场景：

代码生成：重复性代码（CRUD、DTO、配置类）交给AI，从10分钟降到1分钟。

Debug：报错日志贴给Claude Code分析，快速定位NPE、空指针之类的问题。

测试生成：写完业务逻辑后让AI生成单元测试用例，框架性的东西省很多时间。

整体效率提升了大概30%-40%。但有个原则必须坚持：AI生成的代码要人工审查+测试验证，不能直接上线。

10. 你对Agent的预期是什么？

我的回答：

现状：Agent还在初级阶段。能落地的多半是Workflow或简单ReAct循环，远没到"自主智能"的程度。核心痛点还是幻觉和稳定性。

未来期待：

长期记忆：记住用户的偏好和习惯，不用每次都从头理解
跨App操作：打通日历、邮件、文档，完成复合任务
主动服务：不只被动回答，能根据场景主动建议

最终理想形态是真正的个人数字助理（PDA），帮用户完成事情，而不只是回答问题。

最后说两句

这场面试从开始到结束都挺幸运的——被面试官主动捞、第二天就约面、聊得也顺畅。

不过回想一下，如果没有之前在牛客上持续分享面经，可能也不会有这次机会。所以说到底，持续输出和积累还是有用的，你永远不知道谁会看到。

如果你也在准备面试，欢迎评论区交流。另外，那位字节的面试官大佬说可以帮忙内推，有需要的朋友可以私聊我，我把他的联系方式推给你。

觉得有用的话点个在看，二面过了我继续更新。

评论区聊一聊：你遇到过最幸运的一次面试机会是怎么来的？

#如何判断面试是否凉了##秋招，不懂就问##应届生简历当中，HR最关注哪些？##发面经攒人品##我的求职进度条#
大模型算法面经 文章被收录于专栏

大模型算法面经
