阿里巴巴 AI Agent 工程师 - 面试题 & 面经

面试特点

  • 非常注重项目拷打,会深挖每个项目的细节

  • 可能出现 vibe coding(现场编程)环节

  • 技术广度 + 深度并重


一、Agent 核心概念

Q: 什么是 AI Agent?与传统 AI/自动化脚本的核心区别?

参考答案: AI Agent 是具备自主感知环境、决策规划和执行行动能力的智能系统。与传统 AI 的区别:

  • 传统 AI:输入→输出的单次映射(如分类器)

  • 自动化脚本:预定义流程,无决策能力

  • Agent:具备自主循环——感知→思考→行动→观察→再思考,能处理开放域任务

Q: 大模型 Agent 的核心技术模块?

参考答案: 四大模块:

  1. 规划(大脑):任务分解、制定计划、反思调整

  2. 感知(五官):理解用户输入、多模态信息处理

  3. 工具(手脚):API 调用、代码执行、外部系统交互

  4. 记忆(记忆):短期记忆(对话上下文)+ 长期记忆(向量存储/数据库)

Q: LLM 在 Agent 中的作用与局限性?

参考答案:

  • 作用:作为 Agent 的"大脑",负责推理、规划和决策

  • 局限性:

    • 幻觉问题(生成不存在的信息)
    • 上下文长度限制
    • 实时知识缺失
    • 复杂数学/逻辑推理能力不足
    • 无法直接与外部系统交互(需工具)

Q: ReAct 框架的工作原理?

参考答案: ReAct = Reasoning + Acting,交替执行思考和行动:

1
2
3
4
5
Thought: 分析当前情况,决定下一步
Action: 调用工具/执行操作
Observation: 观察执行结果
Thought: 基于结果继续推理
...循环直到任务完成

优势:思维链可追溯,行动有依据,比纯 CoT 更实用。

Q: Agent 和 RAG 的区别?如何结合使用?

参考答案:

  • RAG:检索增强生成,给 LLM 补充外部知识,是被动的信息增强

  • Agent:自主决策系统,RAG 只是 Agent 可调用的工具之一

  • 结合:Agent 在需要知识时主动调用 RAG 检索,获取信息后继续推理决策

Q: Agent 调用 MCP 的整体流程?

参考答案:

  1. 用户发出请求 → Agent 解析意图

  2. Agent 规划任务,确定需要调用的工具

  3. 通过 MCP 协议发现可用工具(Tool Discovery)

  4. 构造工具调用请求(参数填充)

  5. MCP Server 执行工具并返回结果

  6. Agent 接收结果,整合到上下文继续推理

  7. 最终生成回复返回用户

Q: 单 Agent vs 多 Agent 怎么选?

参考答案:

  • 单 Agent:任务简单、工具数量少(<10)、对延迟敏感

  • 多 Agent

    • 任务涉及多领域专业知识
    • 需要并行处理子任务
    • 工具数量多需分组管理
    • 需要检查/验证机制(如一个 Agent 生成,另一个审核)
  • 注意:多 Agent 增加复杂度和延迟,不要过度设计

Q: 如何设计通用 Agent 框架?

参考答案: 分层设计:

  1. 接口层:统一输入输出协议

  2. 编排层:任务分解、Agent 调度、流程控制

  3. 能力层:LLM 推理、工具调用、RAG 检索、记忆管理

  4. 工具层:标准化工具接口(MCP 协议)、工具注册发现

  5. 兜底机制:超时处理、错误恢复、人工介入触发


二、大模型基础

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),平衡效果和效率


三、项目拷打(重点!)

面试官会问的问题维度:

  1. 项目背景与目标:为什么做?解决什么问题?

  2. 技术选型:为什么选 X 不选 Y?有什么权衡?

  3. 具体实现:核心模块怎么设计的?数据怎么流转?

  4. 挑战与解决:遇到什么难题?怎么解决的?

  5. 质量保证:如何评估效果?指标是什么?

  6. 个人贡献:你具体做了什么?和团队的分工?

  7. 反思改进:如果重新做,会改什么?

准备建议:

  • 准备 1-2 个深度项目,每个项目能讲 15-20 分钟

  • 对每个技术选型都能说出 "为什么选它" 和 "有什么替代方案"

  • 准备好失败经验和从中学到的教训


四、计算机基础(仍然会考!)

  • ArrayList vs LinkedList 区别

  • HashMap 原理,key 的要求(hashCode + equals)

  • Redis 数据结构、持久化、集群

  • MySQL 事务隔离级别

  • CAP 定理

  • LRU Cache 实现

  • Kafka 消息不丢失保证

  • 设计模式(工厂、抽象工厂、策略等)


五、算法题

  • LeetCode 中等/困难为主

  • 建议重点刷:动态规划、图、树、字符串处理