阿里巴巴 AI Agent 工程师 - 面试题 & 面经
面试特点
-
非常注重项目拷打,会深挖每个项目的细节
-
可能出现 vibe coding(现场编程)环节
-
技术广度 + 深度并重
一、Agent 核心概念
Q: 什么是 AI Agent?与传统 AI/自动化脚本的核心区别?
参考答案: AI Agent 是具备自主感知环境、决策规划和执行行动能力的智能系统。与传统 AI 的区别:
-
传统 AI:输入→输出的单次映射(如分类器)
-
自动化脚本:预定义流程,无决策能力
-
Agent:具备自主循环——感知→思考→行动→观察→再思考,能处理开放域任务
Q: 大模型 Agent 的核心技术模块?
参考答案: 四大模块:
-
规划(大脑):任务分解、制定计划、反思调整
-
感知(五官):理解用户输入、多模态信息处理
-
工具(手脚):API 调用、代码执行、外部系统交互
-
记忆(记忆):短期记忆(对话上下文)+ 长期记忆(向量存储/数据库)
Q: LLM 在 Agent 中的作用与局限性?
参考答案:
-
作用:作为 Agent 的"大脑",负责推理、规划和决策
-
局限性:
- 幻觉问题(生成不存在的信息)
- 上下文长度限制
- 实时知识缺失
- 复杂数学/逻辑推理能力不足
- 无法直接与外部系统交互(需工具)
Q: ReAct 框架的工作原理?
参考答案: ReAct = Reasoning + Acting,交替执行思考和行动:
1 | Thought: 分析当前情况,决定下一步 |
优势:思维链可追溯,行动有依据,比纯 CoT 更实用。
Q: Agent 和 RAG 的区别?如何结合使用?
参考答案:
-
RAG:检索增强生成,给 LLM 补充外部知识,是被动的信息增强
-
Agent:自主决策系统,RAG 只是 Agent 可调用的工具之一
-
结合:Agent 在需要知识时主动调用 RAG 检索,获取信息后继续推理决策
Q: Agent 调用 MCP 的整体流程?
参考答案:
-
用户发出请求 → Agent 解析意图
-
Agent 规划任务,确定需要调用的工具
-
通过 MCP 协议发现可用工具(Tool Discovery)
-
构造工具调用请求(参数填充)
-
MCP Server 执行工具并返回结果
-
Agent 接收结果,整合到上下文继续推理
-
最终生成回复返回用户
Q: 单 Agent vs 多 Agent 怎么选?
参考答案:
-
单 Agent:任务简单、工具数量少(<10)、对延迟敏感
-
多 Agent:
- 任务涉及多领域专业知识
- 需要并行处理子任务
- 工具数量多需分组管理
- 需要检查/验证机制(如一个 Agent 生成,另一个审核)
-
注意:多 Agent 增加复杂度和延迟,不要过度设计
Q: 如何设计通用 Agent 框架?
参考答案: 分层设计:
-
接口层:统一输入输出协议
-
编排层:任务分解、Agent 调度、流程控制
-
能力层:LLM 推理、工具调用、RAG 检索、记忆管理
-
工具层:标准化工具接口(MCP 协议)、工具注册发现
-
兜底机制:超时处理、错误恢复、人工介入触发
二、大模型基础
Q: Transformer 自注意力机制如何工作?为什么比 RNN 更适合长序列?
参考答案:
-
Q/K/V 三个矩阵,通过 Attention(Q,K,V) = softmax(QK^T / √d_k) × V 计算
-
每个 token 可直接关注任意位置的 token,路径长度 O(1)
-
RNN 需逐步传递,长距离依赖信息衰减,路径长度 O(n)
-
Transformer 支持并行计算,训练效率更高
Q: ROPE(旋转位置编码)vs 绝对位置编码?
参考答案:
-
绝对位置编码:为每个位置分配固定向量,难以泛化到训练时未见的长度
-
ROPE:通过旋转矩阵编码相对位置信息
- 优势:天然编码相对位置、可外推到更长序列、计算高效
- 实现:对 Q/K 向量按维度对做旋转变换
Q: MHA、MQA、GQA 的区别?
参考答案:
-
MHA(Multi-Head Attention):每个 head 独立的 Q/K/V
-
MQA(Multi-Query Attention):所有 head 共享 K/V,大幅减少 KV Cache
-
GQA(Grouped-Query Attention):折中方案,多个 head 分组共享 K/V
-
趋势:GQA 成为主流(如 Llama 2/3),平衡效果和效率
三、项目拷打(重点!)
面试官会问的问题维度:
-
项目背景与目标:为什么做?解决什么问题?
-
技术选型:为什么选 X 不选 Y?有什么权衡?
-
具体实现:核心模块怎么设计的?数据怎么流转?
-
挑战与解决:遇到什么难题?怎么解决的?
-
质量保证:如何评估效果?指标是什么?
-
个人贡献:你具体做了什么?和团队的分工?
-
反思改进:如果重新做,会改什么?
准备建议:
-
准备 1-2 个深度项目,每个项目能讲 15-20 分钟
-
对每个技术选型都能说出 "为什么选它" 和 "有什么替代方案"
-
准备好失败经验和从中学到的教训
四、计算机基础(仍然会考!)
-
ArrayList vs LinkedList 区别
-
HashMap 原理,key 的要求(hashCode + equals)
-
Redis 数据结构、持久化、集群
-
MySQL 事务隔离级别
-
CAP 定理
-
LRU Cache 实现
-
Kafka 消息不丢失保证
-
设计模式(工厂、抽象工厂、策略等)
五、算法题
-
LeetCode 中等/困难为主
-
建议重点刷:动态规划、图、树、字符串处理