人工智能开发工程师能力图谱
面试官不是在找“知道很多名词的人”,而是在找能把大模型能力接成工程系统的人。 这份图谱用来判断:哪些概念你会讲,哪些能力你会做,哪些问题你能排障。
面试官的追问路径
准备面试时,别只列“会 RAG、会 Agent”。给每项能力配一个小证据:一次带引用的问答、一条工具 trace、一个失败样本和一次成本比较,面试官更容易判断你是否真正做过。
AI 开发工程师面试通常不是问一个孤立概念,而是层层往下追:
概念是什么
-> 为什么需要它
-> 工程上怎么做
-> 什么时候会失败
-> 怎么评估
-> 怎么控成本和安全例如面试官问“RAG 是什么”,后面很可能继续追:
- chunk 怎么切?
- 召回差怎么办?
- 为什么要 rerank?
- 权限怎么过滤?
- 没答案时怎么办?
- 怎么评估引用是否正确?
所以准备面试时,不能只背定义,要把每个概念都补成一条完整链路。
能力分层
| 层级 | 你应该能做到什么 | 面试里的表现 |
|---|---|---|
| 入门 | 会解释概念,知道它解决什么问题 | 能说清 token、RAG、tool calling 是干什么的 |
| 可用 | 能把概念做成最小系统 | 能手写 tool loop、简易 RAG、基本 eval |
| 可靠 | 能处理失败、成本、安全、评估 | 能说清 guardrails、tracing、缓存、冲突处理 |
| 进阶 | 能做架构取舍和故障定位 | 能讲为什么选这个方案,不选另一个 |
一个比较稳的目标是:每个方向至少达到“可用”,核心方向达到“可靠”。
题目背后的能力闭环
面试题表面上问的是某个技术名词,实际常常在考下面这条闭环:
理解问题
-> 选择最小技术方案
-> 设计数据和控制流
-> 处理异常、权限和副作用
-> 用指标证明效果
-> 用 trace 定位问题
-> 用版本、灰度和回滚控制变化例如“你会不会做一个客服 Agent”并不只是问你会不会调用模型,而是在看你能否区分知识问答与实时订单查询,能否让工具层做身份和权限校验,能否对退款设置确认和人工接管,能否用解决率、误承诺率、转人工率和成本证明系统在变好。
核心能力的可验证证据
准备面试时,给每项能力准备一个可验证的产物。没有产物时容易变成概念复述,有产物才容易把答案讲具体。
| 能力 | 最小证据 | 面试时要能展示的细节 |
|---|---|---|
| 模型调用 | 一条真实请求和响应记录 | token、模型、参数、错误处理 |
| 工具调用 | 一个窄工具和 tool loop | schema、参数校验、超时、幂等 |
| RAG | 入库与查询链路 | chunk、metadata、检索、引用、无答案 |
| Agent | 可恢复的任务状态 | 终止条件、预算、重试、人工接管 |
| 多 Agent | 两个以上角色的交接记录 | ownership、结构化消息、冲突裁决 |
| 评估 | 一组固定 eval 样本和结果 | 指标定义、基线、回归阈值 |
| 可观测性 | 一条完整 trace | span、usage、成本、错误和版本 |
| 安全 | 一组攻击样本和拦截记录 | 权限边界、注入、脱敏、审计 |
高频追问的横向映射
| 面试官追问 | 主要考察 | 你应该主动带出的内容 |
|---|---|---|
| 为什么不用一个大模型解决? | 方案判断 | 任务边界、规则/工具/RAG/Agent 的分工 |
| 如果模型答错怎么办? | 可靠性 | 证据、结构化输出、验证、重试和人工兜底 |
| 如果成本太高怎么办? | 经济性 | token 拆分、缓存、模型路由、上下文裁剪、预算 |
| 如果用户越权怎么办? | 安全 | 认证、授权、检索前过滤、工具二次校验、审计 |
| 如果线上复现不了怎么办? | 运维能力 | trace、版本、输入摘要、随机参数、数据快照 |
| 为什么要用这个框架? | 工程判断 | 底层机制、状态管理、恢复、团队维护成本 |
| 多 Agent 互相覆盖怎么办? | 协作设计 | 单写者、锁、版本检查、patch、冲突仲裁 |
重点能力的学习顺序
如果时间有限,优先把下面四条线练到能够连续回答 5 层追问:
- Tool loop 线:模型决策、工具 schema、参数校验、执行、错误回传、终止。
- RAG 线:文档处理、切分、召回、重排、证据生成、权限和评估。
- Agent 可靠性线:状态、预算、重试、幂等、checkpoint、人工接管和回放。
- 生产治理线:版本、trace、成本、缓存、灰度、安全、回滚。
多模态、微调、A2A 和具体框架可以在这四条线有基线后再扩展。面试官通常更看重你能否把一个系统做稳,而不是知道多少产品名。
核心能力矩阵
| 方向 | 必懂概念 | 必会动作 | 面试要能讲出的取舍 |
|---|---|---|---|
| 大模型基础 / 工程 | token、上下文、采样、embedding、KV Cache、Prompt Caching、Transformer、对齐、量化 | 能解释计费、截断、延迟和缓存,能讲模型结构和部署选型 | 为什么长上下文贵,为什么 embedding 不是越大越好,为什么要做路由和量化 |
| 提示词与工具调用 | system prompt、few-shot、tool schema、structured output、tool_call_id | 能设计窄工具、校验参数、处理多 tool calls | 为什么模型负责判断,代码负责执行 |
| 智能体核心 | ReAct、tool loop、planning、memory、context engineering、状态机 | 能写出最小 Agent 循环和终止条件 | 什么时候该规划,什么时候不该上 Agent |
| 检索增强生成 | chunk、embedding、metadata、召回、rerank、引用、权限 | 能设计入库链路和查询链路 | 为什么 RAG 不是向量库,召回差怎么排查 |
| 多智能体与框架 | 主管-工人、流水线、handoff、checkpoint、共享状态、冲突处理 | 能拆职责、传结构化状态、处理同文件编辑冲突 | 为什么多 Agent 不一定更好 |
| 评估 / 安全 / 可观测性 | eval set、LLM-as-judge、trace、usage、缓存命中、安全边界 | 能算成本、看 trace、设计安全样本 | 如何证明系统好、贵不贵、安不安全 |
| 面试题型能力 | 概念辨析、场景判断、连环追问、方案取舍、排查定位 | 能连续回答 3-5 层追问 | 不只背定义,能按场景做工程判断 |
每个方向的合格回答标准
1. 大模型基础
你不能只说“token 是分词”。合格回答要能连到:
- token 和成本。
- token 和上下文窗口。
- 长上下文和 RAG 的关系。
- embedding 的用途、维度、常见模型和聚类。
- KV Cache 和 Prompt Caching 的区别。
1.1 大模型工程
除了基础概念,你还要能讲:
- Transformer、注意力、位置编码、MHA / MQA / GQA 的区别。
- 预训练、SFT、RLHF、DPO 的作用。
- LoRA、QLoRA 和量化怎样影响训练或推理资源;谈到 MoE 时,要知道激活参数少不等于只需存放少量权重,部署还要考虑专家并行和跨卡通信。MoE 的结构和部署差异可参考 MoE 混合专家:大模型为什么要学会分工。
- greedy、sampling、batching、限流、缓存对推理服务的影响。
- 小模型路由、大模型兜底的组合策略。
如果面试官问“为什么一次 Agent 任务会很贵”,你要能答到:多轮调用、历史上下文、工具结果、输出 token、reasoning tokens、检索和重试都会叠加。
2. 提示词与工具调用
你不能只说“prompt 写清楚一点”。合格回答要能讲:
- system prompt 写哪些稳定规则。
- few-shot 什么时候有用。
- 工具 schema 为什么要窄。
- 模型生成的参数为什么要校验。
- 多个 tool calls 怎么执行和回传。
- 工具报错怎么结构化返回。
最关键的一句话是:
模型负责判断和生成,代码负责执行、校验、权限、日志和兜底。3. 智能体核心
你不能只说“Agent 会自己规划”。合格回答要能讲:
- tool loop 的每一步。
- ReAct 和 tool loop 的关系。
- planning 的适用场景和代价。
- memory 和 context engineering 的区别。
- 最大轮数、预算和终止条件。
- 为什么简单任务不该上 Agent。
面试官如果让你画最小 Agent,你应该能画出:
User -> LLM -> tool call -> tool execution -> observation -> LLM -> final answer4. 检索增强生成
你不能只说“把文档向量化”。合格回答要能讲:
- 文档清洗和切分。
- embedding 和 metadata。
- 向量检索、关键词检索、混合检索。
- rerank 的意义。
- 引用来源和无答案策略。
- 文档更新和权限过滤。
- RAG 评估指标。
RAG 的重点不是“能搜到”,而是“搜到的证据能支持答案”。
5. 多智能体与框架
你不能只说“我用 LangGraph / AutoGen / 某 SDK”。合格回答要能讲:
- 为什么需要拆 Agent。
- 选主管-工人、流水线还是并行评审。
- Agent 之间传什么字段。
- 结论冲突怎么裁决。
- 多个 Agent 编辑同一个文件怎么避免覆盖。
- state、checkpoint、handoff 各自做什么。
- 框架帮你省了哪些样板代码。
最稳的原则是:
能单 Agent 就单 Agent;只有职责清晰、可独立验收、可隔离上下文时才拆多 Agent。6. 评估、安全与可观测性
你不能只说“人工看效果”。合格回答要能讲:
- eval set 怎么覆盖正常、边界、无答案、工具错误和安全样本。
- trace 记录哪些字段。
- 一次任务成本怎么按 token 类型拆。
- cached_tokens 和 cache_write_tokens 怎么理解。
- prompt caching 命中率怎么提高。
- prompt injection 怎么分层防。
- prompt 改动后怎么做回归。
这部分往往最能区分“做 demo”和“做工程”的人。
7. 题型应对能力
真实面试不会严格按章节问。你要能切换这些回答模式:
- 概念辨析:把 Agent / Workflow、RAG / 微调、MCP / tool calling 这类相似概念讲清边界。
- 场景判断:判断某个场景该用规则、工具、RAG、Agent 还是多 Agent。
- 连环追问:从一个概念连续追到实现、失败、成本和安全。
- 方案取舍:在质量、成本、延迟、安全之间做选择。
- 踩坑排查:按输入、检索、工具、模型、状态、成本、安全逐层定位。
这类能力最接近真实面试。题库是基础,题型分类是临场应答训练。
自测方法
每个方向都问自己 6 个问题:
- 它解决什么问题?
- 它不解决什么问题?
- 它在系统里哪一步出现?
- 它的主要成本是什么?
- 它最常见的失败模式是什么?
- 它要怎么测试和回归?
如果一项答不上来,这个方向大概率还停在“看过”。
绿色、黄色、红色信号
绿色信号
- 你能先给结论,再补解释。
- 你会主动讲 trade-off。
- 你会讲评估、成本和安全。
- 你能把问题缩小到一个最小闭环。
- 你能说清一两个真实失败模式。
黄色信号
- 你知道名词,但只能顺着资料复述。
- 你能写 demo,但说不清为什么这样设计。
- 你会讲结果,但不会讲失败和优化。
红色信号
- 名词堆很多,但一追问就散。
- 只会说“用了某框架”,说不清框架帮了什么。
- 只讲功能,不讲指标和边界。
- 一遇到错误就只说“换 prompt”。
一句话自我定位
可以先写成这样:
我主要做过 [Agent / RAG / 工具调用 / 多智能体] 相关项目,
比较熟悉 [能力1]、[能力2],也会关注成本、评估、安全和可观测性。
我做系统时会先跑最小闭环,再用 trace 和 eval 找问题,而不是只调 prompt。