Agent 开发一面面经
完整信息
本篇目录
来源内容仅部分可用:原文不足
说出来你们可能不信——这场面试是面试官主动找我约的。
事情是这样的。我一直在牛客上分享面试经历,上周突然收到一条私信,对方说自己是字节的面试官,看了我的面经觉得基础还不错,问我有没有兴趣试试他们部门,可以帮我内推。
我当时第一反应是:这不会是骗子吧?
确认了对方的企业邮箱之后,我才把简历发了过去。结果第二天就收到了面试邀请,效率快得离谱。激动归激动,该准备的还是得准备。花了两天把项目和八股重新过了一遍,面试聊下来整体很顺畅,今天就记录一下这次面试的题目和回答,希望能给同样在准备面试的朋友一些参考。
文末有个小福利,想要的直接划到底部。
1. 多模态结构是怎样的?
面试官开场就问了这个,大概是看我对多模态有没有基本认知。
我的回答:
多模态模型的核心是"让LLM能看懂非文本信息"。以视觉为例,标准架构分三步:
第一步是视觉编码,用ViT或者CLIP把图片转成特征向量;第二步是特征对齐,用适配器(比如Q-Former或简单线性层)把视觉特征映射到LLM的嵌入空间;第三步是训练策略,通常是先冻结视觉编码器和LLM只训练适配器,等对齐好了再端到端微调。
面试官追问"为什么需要两步,不能直接喂特征吗",我说因为视觉特征和文本Token不在一个语义空间里,直接喂LLM理解不了,必须先做映射。
2. RAG完整流程是怎样的?
这道题问的是RAG的标准流程,我分离线在线两个阶段讲。
我的回答:
离线阶段:
文档 → 格式解析(PDF/Markdown/Word) → 语义切分 → Embedding → 存入向量库
切分原则是:有结构按结构切(标题/段落),没结构按固定大小切(512字+128字重叠)。
在线阶段:
用户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和工具之间的协议,解决"怎么调用工具"的问题。它定义了一套标准接口——工具发现、
以下补充内容据 zero2Agent 公开转存:
- 长上下文有哪些处理方案?
我的回答:
两种思路:
让模型支持更长上下文:
位置编码扩展:通过位置插值(PI)或NTK-aware让模型泛化到更长序列
KV Cache压缩:对历史Token的Key/Value做降维或筛选
不喂全量,改用RAG检索:
知识类任务用RAG比硬塞全文更优
带来源引用和知识更新能力
选型建议:长文档总结用长上下文模型,开放域问答用RAG,复杂推理任务两者结合。
面试官追问"什么时候不能只用RAG",我说需要全局理解的任务(比如"整本书的核心论点是什么")RAG效果不好,因为检索只能拿到片段,看不到整体。
- 常用的Agent框架有哪些?分别适合什么场景?
我的回答:
LangChain
通用框架
快速搭原型、组件拼接
LangGraph
状态机
复杂Agent循环、条件分支
LlamaIndex
检索框架
RAG系统、知识库构建
AutoGen
多智能体
多Agent协作、群聊
Dify
低代码
非技术人员快速搭建
个人经验:做复杂状态流转选LangGraph;做检索密集型选LlamaIndex;做多Agent协作选AutoGen。LangChain适合验证想法,但不适合上生产。
- 多模态检索是怎么做的?
我的回答:
核心是CLIP跨模态Embedding。CLIP同时训练了图片编码器和文本编码器,把两种模态映射到同一个向量空间。检索时用户文本Query过文本编码器,然后去向量库里找最接近的图片向量。
进阶方案是混合检索——如果图片里有文字(截图、海报),先用OCR提取文字,然后图文双路召回,用RRF融合排序:
- 用户信息和历史对话怎么存?
我的回答:
用户画像存KV数据库(Redis或MySQL)。用户画像是结构化数据,偏好设置、常用工具、个人信息,每个字段有明确的key,用KV最适合。
1
2
3
4
5
{
"user_id": "u123",
"preferred_lang": "Python",
"timezone": "Asia/Shanghai"
}
历史对话存向量库(Milvus/Pinecone)。每条对话作为一个向量,附带元数据(时间戳、会话ID、任务类型)。检索时用向量相似度+元数据过滤。
Agent使用时先加载用户画像,再检索相关历史对话,合并注入上下文。
- AI开发有什么心得?
我的回答:
AI辅助开发主要用在三个场景:
代码生成:重复性代码(CRUD、DTO、配置类)交给AI,从10分钟降到1分钟。
Debug:报错日志贴给Claude Code分析,快速定位NPE、空指针之类的问题。
测试生成:写完业务逻辑后让AI生成单元测试用例,框架性的东西省很多时间。
整体效率提升了大概30%-40%。但有个原则必须坚持:AI生成的代码要人工审查+测试验证,不能直接上线。
- 你对Agent的预期是什么?
我的回答:
现状:Agent还在初级阶段。能落地的多半是Workflow或简单ReAct循环,远没到"自主智能"的程度。核心痛点还是幻觉和稳定性。
未来期待:
长期记忆:记住用户的偏好和习惯,不用每次都从头理解
跨App操作:打通日历、邮件、文档,完成复合任务
主动服务:不只被动回答,能根据场景主动建议
最终理想形态是真正的个人数字助理(PDA),帮用户完成事情,而不只是回答问题。
【原帖配图文字整理】
图1:图片输入→视觉编码器ViT/CLIP→视觉特征→适配器/Q-Former(特征对齐)→LLM主干→文本输出;文本输入直接进入LLM主干。
图2:W′=W+ΔW=W+BA。
本篇目录
当前问题0113
- 01
多模态结构是怎样的?
- 02
面试官追问"为什么需要两步,不能直接喂特征吗",我说因为视觉特征和文本Token不在一个语义空间里,直接喂LLM理解不了,必须先做映射。
- 03
RAG完整流程是怎样的?
- 04
面试官追问"向量检索和关键词检索各自的优势是什么",我说向量检索擅长语义匹配("手机"能匹配"iPhone"),关键词检索擅长精确匹配(专业术语、编号、代码),两者互补。
- 05
LoRA和QLoRA的区别?
- 06
A2A和MCP分别是什么?
- 07
长上下文有哪些处理方案?
- 08
面试官追问"什么时候不能只用RAG",我说需要全局理解的任务(比如"整本书的核心论点是什么")RAG效果不好,因为检索只能拿到片段,看不到整体。
- 09
常用的Agent框架有哪些?分别适合什么场景?
- 10
多模态检索是怎么做的?
- 11
用户信息和历史对话怎么存?
- 12
AI开发有什么心得?
- 13
你对Agent的预期是什么?
