刷了两个月 AI 面试题,投了十几家大厂,结果面试官一开口:"你做过 Agent 项目吗?"——简历上没有,脑子里全是八股,嘴巴张了张,一个字也蹦不出来。
这就是 2026 年 AI 岗面试的残酷现实。光背概念没用,面试官要的是你用什么项目、踩过什么坑、怎么解决的。我花了三周时间,把牛客、力扣讨论区、各大面经帖里高频出现的 Agent/RAG/LLM/MCP 相关面试题全过了一遍,按出现频次 × 难度权重加权排序,最终筛出 100 道。
和市面上其他合集不同的是,这 100 道题能关联到我们的实战项目来回答——PaiAgent(LangGraph4j + Spring AI 的工作流编排平台)、派聪明(基于 ES 混合搜索的 RAG 知识库)、PaiCLI(对标 Claude Code 的 Java Agent 命令行工具)。后续我会逐题拆解给出加精答案,这篇先把 100 道题的全貌给大家摊开,方便收藏按图索骥。
题目难度分三级:🟢 基础、🟡 进阶、🔴 深入。关联项目用 → 标注。面试公司来源于近半年真实面经汇总,不瞎编。
01、Agent 核心机制(18 题)
Agent 是这轮 AI 面试的绝对 C 位,18 道题覆盖了从基础概念到生产实战的完整知识面。PaiCLI 本身就是一个完整的 ReAct Agent,PaiAgent 则在工作流层面支持多节点编排,两个项目配合着答,基本能覆盖这个方向所有追问。
1. 什么是 Agent?和直接调大模型 API 有什么本质区别?
大模型只会"接收输入→生成输出",Agent 在此基础上加了感知环境、自主决策、调用工具、迭代反馈的能力。一个是被动的问答机器,一个是能自己动手干活的智能体。面试开场题,答不好后面全崩。
🟢 基础 | → PaiCLI 就是一个完整的 Agent | 字节、腾讯、阿里
2. Agent 的核心架构由哪些组件构成?
经典四件套:规划(Planning)、记忆(Memory)、工具调用(Tool Use)、行动(Action)。PaiCLI 四个都有:Plan-and-Execute 做规划、SQLite 存记忆、MCP 接工具、ReAct 循环执行行动。面试时画个架构图,把自己项目的组件往上映射就行。
🟢 基础 | → PaiCLI 四大组件完整实现 | 字节、阿里云
3. Workflow、Agent、Tools 三个概念怎么区分?
Tools 是原子能力(搜索、计算、读文件),Agent 是能自主决策调用 Tools 的智能体,Workflow 是多个 Agent 或步骤按预设流程编排。PaiAgent 就是 Workflow 层面的产品,PaiCLI 是 Agent 层面的产品,它们都调用各种 Tools。
🟢 基础 | → PaiAgent(Workflow)/ PaiCLI(Agent)
4. 什么是 ReAct 框架?思考-行动-观察循环怎么落地的?
面试出现频率最高的一道,没有之一。能说清 Thought→Action→Observation 的循环机制是及格线,能讲清自己项目里怎么控制最大迭代次数、怎么处理工具返回异常才是加分项。
🟡 进阶 | → PaiCLI 的 ReAct 主循环 | 淘天、腾讯、字节、百度
5. ReAct、Plan-and-Execute、Reflection 三种范式有什么核心区别?
ReAct 边想边干,适合探索型任务;Plan-and-Execute 先出完整计划再逐步执行,适合步骤明确的复杂任务;Reflection 在执行后加一轮自我评估和修正。PaiCLI 同时实现了 ReAct 和 Plan-and-Execute,还有编译反馈驱动的 Reflection 机制。
🟡 进阶 | → PaiCLI 三种范式都有实现 | 淘天、腾讯
6. 复杂任务怎么做拆分?为什么要拆?效果怎么提升的?
大模型一次性处理复杂任务容易丢步骤、逻辑混乱。拆成子任务后每步专注一件事,成功率显著提升。PaiAgent 的工作流编排本质就是任务拆分——把一个大任务拆成多个节点,每个节点用最合适的模型和工具。
🟡 进阶 | → PaiAgent 多节点工作流编排 | 字节、阿里
7. 多 Agent 协作有哪些模式?实际踩过什么坑?
常见的有主从模式、平等协商模式、层级委派模式。面试官更想听的是实际用下来哪种好使、哪种是"看着美好用着崩"。PaiAgent 的双引擎架构(DAG + LangGraph)天然支持多节点编排,每个节点可以理解为一个独立 Agent。
🟡 进阶 | → PaiAgent 双引擎 + 多节点编排 | 字节、阿里云、蚂蚁、小红书
8. 单 Agent 和多 Agent 怎么做选型判断?
一句话:任务能拆成独立子任务就上多 Agent,否则单 Agent 加工具就够了。过度设计多 Agent 系统是初学者最常犯的错误,面试时主动提这一点会让面试官眼前一亮。
🟡 进阶 | → PaiCLI(单 Agent + 工具)vs PaiAgent(多节点协作) | 字节、淘天、阿里云
9. Agent 上下文管理怎么做?怎么避免上下文爆炸?
对话轮次一多,token 就炸了。常见方案有滑动窗口、摘要压缩、关键信息提取。PaiCLI 支持动态 token 预算管理,能根据剩余窗口自动决定压缩策略,这个设计面试官问到了一定要展开讲。
🟡 进阶 | → PaiCLI 动态预算 + 上下文压缩 | 快手、百度、字节、阿里云、蚂蚁
10. Agent 的短期记忆和长期记忆分别怎么实现?
短期记忆就是当前对话上下文,长期记忆需要持久化存储跨会话的事实。PaiCLI 用 SQLite 做长期记忆存储,PaiAgent 的 AgentMemoryService 支持多作用域(workflow/global)+ 向量相似度检索。两个方案各有侧重,面试时可以对比着答。
🟡 进阶 | → PaiCLI SQLite 记忆 / PaiAgent AgentMemoryService | 淘天、快手
11. Agent 记忆压缩通常有哪些方法?
主流三种:摘要压缩(把 10 轮对话压成一段摘要)、实体提取(只保留关键实体和关系)、向量化存储(记忆转向量,按相似度召回)。PaiCLI 在上下文快满时自动触发压缩,PaiAgent 用向量相似度检索替代全量加载。
🟡 进阶 | → PaiCLI 自动压缩 / PaiAgent 向量检索记忆 | 腾讯
12. 长期记忆的 FIFO 淘汰有什么问题?怎么优化?
FIFO 最大的坑是把重要但不常用的记忆淘汰掉了。优化方向有:按重要性加权淘汰、给记忆打时间衰减分、用向量相似度做语义去重。PaiAgent 用标签化记忆 + 向量检索来避免暴力淘汰。
🔴 深入 | → PaiAgent 标签化记忆 + 向量检索 | 腾讯
13. 多轮工具调用,怎么判断该继续调用还是该停?
两种策略:一是模型自己判断(返回的 finish_reason 不含 tool_calls 时停止),二是工程侧兜底(设最大迭代次数)。PaiAgent 在 AbstractLLMNodeExecutor 里硬编码了 MAX_FUNCTION_ITERATIONS = 5,PaiCLI 的 ReAct 循环也有 20 步上限。兜底机制必须有,不然模型能调到天荒地老。
🟡 进阶 | → PaiAgent MAX_FUNCTION_ITERATIONS / PaiCLI 步数上限 | 淘天
14. Agent 的 Planning 模块有哪些实现方式?
主流两种:Step-by-step(走一步看一步,类似 ReAct)和 Plan-and-execute(先出完整计划再逐步执行)。更高级的还有 Plan→Execute→Replan 循环,执行过程中发现计划不对就重新规划。PaiCLI 的 Plan-and-Execute 模式就支持动态重规划。
🟡 进阶 | → PaiCLI Plan-and-Execute + 动态重规划
15. Agent 的反思机制是什么?为什么需要反思?
反思就是让 Agent 评估自己的输出质量,发现错误就自我修正。没有反思的 Agent 犯了错只会一条路走到黑。PaiCLI 在代码生成失败时会把编译错误和 LSP 诊断信息喂回模型,让模型自己修 bug,最多重试 3-4 轮。
🟡 进阶 | → PaiCLI 编译反馈驱动的反思循环
16. 在工程实践中,为什么有时候选择手搓 Agent 而不用框架?
框架(LangChain、LlamaIndex)封装太重、调试困难、性能不可控。手搓 Agent 虽然前期开发成本高,但可控性强、排查方便。PaiCLI 就是纯手搓的 Java Agent,从 ReAct 循环到工具调度全部自己实现,迭代到第 21 期了。
🟡 进阶 | → PaiCLI 纯手搓 Java Agent
17. Agent 怎么做经验积累和自我学习?
让 Agent 把成功的解题路径、踩过的坑、用户反馈存下来,下次遇到类似问题直接复用。PaiCLI 的 Skill 系统就是这个思路,每个 Skill 是一个结构化的知识包,包含最佳实践指南和参考样例,PaiAgent 同样有 SkillRegistry 机制做 Skill 加载和缓存。
🔴 深入 | → PaiCLI Skill 系统 / PaiAgent SkillRegistry
18. 多 Agent 协作时意见冲突怎么统一?
常见方案有投票机制(少数服从多数)、裁判 Agent(专门做最终决策)、层级委派(上级 Agent 拍板)。实际项目中最靠谱的是裁判模式,用一个更强的模型做最终裁决。PaiAgent 的工作流里可以在分支后设一个"汇总节点"来做冲突仲裁。
🔴 深入 | → PaiAgent 汇总节点仲裁 | 字节、阿里
02、RAG 全流程(20 题)
RAG 是 AI 面试的第二大热门方向,20 道题覆盖了从文档切片到检索排序的完整流程。派聪明项目是回答这些题的最佳弹药,它用 Elasticsearch 做向量存储、支持 KNN + BM25 混合搜索、还实现了多租户权限隔离,每一个技术选型背后都有真实的踩坑故事可以讲。
19. 为什么需要 RAG?直接把文档塞给大模型不行吗?
上下文窗口有限、塞太多 token 费钱又慢、模型对长文档的"注意力"分配不均匀(中间内容容易被忽略)。RAG 的核心价值是"先检索再生成",只把最相关的片段喂给模型。
🟢 基础 | → 派聪明整体架构 | 字节、淘天
20. RAG 和微调怎么选?各自适合什么场景?
RAG 适合知识频繁更新、需要溯源的场景(客服、文档问答);微调适合需要改变模型行为风格、固定领域的场景(医疗、法律术语)。两者不互斥,可以先微调让模型熟悉领域术语,再用 RAG 补充最新知识。派聪明选的就是 RAG 路线。
🟢 基础 | → 派聪明(RAG 路线)
21. 描述一下完整的 RAG 系统工作流程?
文档摄入(解析→分块→向量化→入库)→ 查询处理(Query Rewrite→向量检索→关键词检索→混合排序→Rerank)→ 生成(拼接检索结果 + 用户问题→LLM 生成→引用标注)。派聪明的每一步都有对应实现,面试时画出来逐步讲最有效。
🟢 基础 | → 派聪明完整实现 | 字节、快手
22. 文档分块策略怎么设计?chunk 大小怎么定?
派聪明用的是 512 字符块、100 字符重叠的配置,最小块 100 字符。分块太大语义不聚焦,太小丢失上下文。还有父子分块策略,检索用小块精准匹配,喂模型时用父块补充上下文。
🟡 进阶 | → 派聪明 ParseService 512/100 配置 | 快手、字节、Moka、阿里
23. 怎么规避语义被切割掉的问题?
三个手段:重叠切分(相邻 chunk 留重叠区)、按自然语义边界切分(段落、句号、标题)、递归切分(先按大结构切,不够再细分)。派聪明的 ParseService 优先在标点符号处断句,避免在词语中间截断。
🟡 进阶 | → 派聪明标点符号断句逻辑
24. Embedding 模型怎么选型?维度越高越好吗?
不是。维度高意味着存储成本高、检索速度慢。派聪明用的是阿里 Embedding 模型,2048 维,在中文场景下效果和性价比都不错。选型时要综合考虑语言支持、维度、速度和价格。
🟡 进阶 | → 派聪明阿里 Embedding 2048 维 | 快手、阿里
25. Embedding 有哪几种算法?各自的特点是什么?
Word2Vec(静态词向量,不考虑上下文)、BERT 类(双向编码,适合短文本语义匹配)、Sentence Transformers(专门做句子级别嵌入)、BGE/GTE 系列(中文优化,MTEB 榜单前列)。派聪明选阿里 Embedding 就是因为中文场景下 BGE 系列效果好。
🟡 进阶 | → 派聪明选型依据
26. 向量数据库怎么选型?你们项目用的哪个?
主流选择:Milvus(大规模分布式)、Qdrant(Rust 高性能)、Weaviate(GraphQL 友好)、Elasticsearch(已有 ES 集群就直接用)、Chroma/FAISS(轻量原型验证)。派聪明选了 ES,因为团队本身就熟悉 ES 生态,不需要额外引入新组件。
🟡 进阶 | → 派聪明 ES 8.10 + dense_vector | 字节、快手
27. 向量检索和关键词检索的混合搜索怎么做?
派聪明的 HybridSearchService 同时跑 KNN 向量召回(召回窗口 topK×30)和 BM25 关键词匹配,然后做分数融合排序。纯向量搜索容易漏掉精确关键词匹配,纯关键词又缺语义理解,混合搜索两头都兼顾了。
🟡 进阶 | → 派聪明 HybridSearchService KNN + BM25 | 快手、字节
28. 什么是 Query Rewrite?为什么需要改写用户查询?
用户提问经常口语化、模糊、有歧义。Query Rewrite 把用户原始问题改写成更适合检索的形式,比如补全指代("它"→"PaiAgent")、拆分多意图、扩展同义词。改写后检索召回率能提升 15-30%。
🟡 进阶 | → 派聪明可扩展 | 快手、阿里
29. 什么是多路召回?具体怎么做?
同一个查询走多条检索通道(向量召回、关键词召回、知识图谱召回),每条通道返回一批候选,最后合并去重排序。派聪明目前是双路(KNN + BM25),后续可以加知识图谱做第三路。多路召回的核心价值是"不把鸡蛋放一个篮子里"。
🟡 进阶 | → 派聪明双路召回 | 快手、字节
30. 为什么检索之后还需要 Rerank?
向量检索是"粗筛",召回量大但排序不够精准。Rerank 用交叉编码器对 query 和每个候选文档做精细打分,把最相关的排到前面。粗筛保证召回率,Rerank 保证精准率。
🟡 进阶 | → 派聪明检索流程 | 快手
31. Rerank 的 Top-K 怎么确定?
没有银弹,靠实验。一般先设一个较大的 K(比如 20),然后在测试集上逐步缩小,找到精度和延迟的平衡点。K 太大增加 Rerank 延迟,K 太小可能漏掉相关文档。
🟡 进阶 | → 派聪明 | 快手
32. RAG 系统怎么评测?核心指标有哪些?
检索阶段看召回率(Recall)、精准率(Precision)、MRR(平均倒数排名)。生成阶段看忠实度(Faithfulness,答案是否基于检索到的内容)、相关性(Relevancy)、有害性。RAGAS 框架把这套评测体系标准化了。
🟡 进阶 | → 派聪明 | 快手、Moka
33. 向量数据库里的历史文档怎么做时间衰减?
老文档的信息可能过时了,但向量相似度不会因为时间变化而降低。解决方案:给检索分数乘以一个时间衰减因子(比如指数衰减),或者在索引里加时间字段做过滤。
🟡 进阶 | → 派聪明 ES 时间字段过滤 | 快手
34. 在什么场景下会用图数据库来增强向量检索?
当知识之间有复杂的关联关系时(比如"A 公司收购了 B 公司,B 公司的 CEO 是 C"),纯向量检索很难捕捉这种多跳关系。图数据库(Neo4j、NebulaGraph)擅长处理实体关系查询,和向量检索配合可以回答"C 现在在哪家公司任职"这类需要推理的问题。
🔴 深入 | → 派聪明未来可扩展方向
35. Agentic RAG 和传统 RAG 的核心区别?
传统 RAG 是"检索→生成"的单次流水线。Agentic RAG 给 RAG 加了 Agent 能力,模型可以判断"这次检索结果不够好,换个关键词再搜一次",或者"这个问题需要先查 A 再查 B 最后综合"。PaiAgent 的 ReAct 节点 + 知识库检索工具就是 Agentic RAG 的实现。
🟡 进阶 | → PaiAgent ReAct + 知识库检索工具
36. 处理长文档时怎么避免 OOM?
派聪明在 ParseService 里做了两个关键设计:一是流式分块处理,不把整个文档加载到内存;二是内存阈值保护,运行时内存占用超过 80% 就暂停处理。大文件 + 小内存的服务器上,这两招救过命。
🟡 进阶 | → 派聪明流式处理 + 内存阈值保护
37. RAG 知识库怎么实现动态更新?
文档更新后要同步更新向量索引。派聪明通过 Kafka 异步处理文件上传队列(file-processing-topic),新文档上传后自动触发"解析→分块→向量化→入库"的完整流程,不需要手动重建索引。删除文档时同步清理对应的向量记录。
🟡 进阶 | → 派聪明 Kafka 异步更新
38. 多租户场景下 RAG 的权限隔离怎么做?
派聪明用了三层权限过滤:userId(用户私有文档)、orgTag(组织级隔离)、isPublic(公开标志)。检索时在 ES 查询里加 filter 条件,确保 A 公司的人搜不到 B 公司的文档。这道题在 ToB 方向的公司面试里高频出现。
🟡 进阶 | → 派聪明 userId + orgTag + isPublic 三层过滤
03、LLM 基础与工程(25 题)
这 25 道题从 Transformer 架构一路聊到模型部署,覆盖了大模型的底层原理和工程实践。不需要每道都答得像论文一样深,但 Transformer、注意力机制、KV Cache 这几个点几乎是必考题。能结合项目经验回答的就结合,纯理论的就把核心机制说清楚。
39. 什么是大语言模型?和传统 NLP 模型有什么区别?
传统 NLP 模型(LSTM、CRF)针对特定任务训练,换任务就得重新训练。大语言模型通过海量数据预训练获得通用语言能力,一个模型能处理翻译、摘要、问答、代码生成等各种任务,靠 Prompt 引导就行。
🟢 基础
40. 讲讲 Transformer 的基本架构?Encoder 和 Decoder 分别干什么?
Encoder 负责理解输入(把文本编码成语义向量),Decoder 负责生成输出(基于语义向量逐 token 生成文本)。GPT 系列只用 Decoder,BERT 只用 Encoder,T5 用完整的 Encoder-Decoder。现在主流的大语言模型基本都是 Decoder-only 架构。
🟢 基础 | 字节、腾讯
41. 多头注意力(MHA)有哪些局限?MQA、GQA、Flash Attention 怎么解决?
MHA 每个头都有独立的 KV 矩阵,显存占用大。MQA(Multi-Query Attention)所有头共享一组 KV,省显存但效果有损。GQA(Grouped-Query Attention)折中方案,几个头共享一组 KV。Flash Attention 从计算层面优化,减少 HBM 访问次数,不改注意力机制本身。
🟡 进阶 | 字节、腾讯
42. 位置编码是干什么用的?RoPE 和 ALiBi 有什么区别?
Transformer 本身不感知 token 顺序,位置编码告诉模型"第几个词在第几个位置"。RoPE(旋转位置编码)通过旋转矩阵编码相对位置,外推性好。ALiBi 直接在注意力分数上加一个和距离相关的偏置,实现简单,不需要额外参数。
🟡 进阶
43. 分词器是什么?BPE、WordPiece、SentencePiece 有什么区别?
分词器把文本拆成 token(模型能理解的最小单位)。BPE(字节对编码)从字符出发逐步合并高频对,GPT 系列在用。WordPiece 类似 BPE 但用似然概率选合并对,BERT 在用。SentencePiece 直接在原始文本上训练,不依赖预分词,多语言友好。
🟡 进阶
44. 大模型是怎么训练出来的?预训练→SFT→RLHF 三阶段讲一下?
预训练(在海量无标注文本上学语言能力)→ SFT(用人工标注的指令-回答对微调,学会"听话")→ RLHF(用人类偏好反馈做价值观校准,学会"说人话")。三阶段花费依次降低但重要性递增。
🟡 进阶 | 字节、腾讯
45. 什么是 Scaling Law?大模型的涌现能力是怎么回事?
Scaling Law 说的是模型性能随参数量、数据量、算力的增加呈可预测的幂律关系。涌现能力是指模型规模达到某个阈值后突然出现的能力(比如思维链推理),小模型完全不会,大模型突然就会了。
🟡 进阶
46. 大模型微调有哪些方案?LoRA 的原理是什么?
全量微调(改所有参数,贵)、LoRA(冻结原始权重,只训练低秩分解矩阵,参数量减少 99%+)、QLoRA(量化 + LoRA,更省显存)、Adapter(在层间插入小模块)、Prefix Tuning(只调前缀向量)。LoRA 是目前性价比最高的方案。
🟡 进阶 | 字节、阿里
47. SFT 之后还有哪些 Post-Training?RLHF、DPO、GRPO 什么关系?
SFT 让模型学会格式和基本能力,Post-Training 让模型学会"什么样的回答更好"。RLHF 用奖励模型 + PPO 训练,DPO 去掉奖励模型直接用偏好对训练,GRPO 去掉 Critic 网络用组内相对比较。进化路径是越来越简化训练流程。
🔴 深入 | 作业帮、腾讯
48. DPO 和 PPO 的区别是什么?
PPO 需要先训一个奖励模型,再用奖励模型的分数做策略梯度优化,流程复杂。DPO 直接用偏好数据对(好回答 vs 坏回答)优化策略,把奖励模型隐式地融入到损失函数里,训练更简单稳定。
🔴 深入 | 腾讯、三七互娱
49. 大模型生成文本时有哪些解码策略?
贪心搜索(每步选概率最高的 token,确定性强但无聊)、束搜索(保留 top-k 条候选路径)、温度采样(temperature 控制随机性)、Top-P 采样(nucleus sampling,动态截断低概率 token)、Top-K 采样(只从前 K 个 token 里采样)。
🟡 进阶
50. Temperature、Top-P、Top-K 分别是什么?怎么调?
Temperature 控制概率分布的"平滑度"(低→保守,高→发散),Top-P 控制累积概率阈值,Top-K 控制候选集大小。代码生成建议低 temperature(0.1-0.3),创意写作用高 temperature(0.7-1.0)。PaiAgent 的 ChatClientFactory 默认 temperature=0.7。
🟡 进阶 | → PaiAgent ChatClientFactory temperature 配置
51. KV Cache 是什么?Prompt Caching 又是什么?
KV Cache 缓存已计算的 Key/Value 矩阵,避免每生成一个新 token 都重新算前面所有 token 的注意力。Prompt Caching 更上一层,缓存相同前缀 Prompt 的计算结果,多次请求共享同一份缓存。PaiCLI 支持 Prompt Cache 可视化,让用户看到缓存命中率。
🟡 进阶 | → PaiCLI Prompt Cache 可视化
52. 大模型量化是什么?INT8/INT4/AWQ/GPTQ 怎么选?
把模型参数从 FP16 压缩到 INT8/INT4,显存占用直接减半或减四分之三。GPTQ 是训后量化(快但精度损失稍大),AWQ(Activation-aware)考虑激活值分布做量化(精度更好),INT4 省显存最多但精度损失最大。实际选型看你的显卡显存和精度要求。
🟡 进阶
53. 长上下文压缩有哪些方案?
主流方案有三种:对话摘要(把历史对话压缩成一段摘要)、关键信息提取(只保留重要的事实和决策)、滑动窗口(只保留最近 N 轮)。PaiCLI 支持 1M token 窗口的模型,同时配合动态压缩策略,在窗口快满时自动触发压缩。
🟡 进阶 | → PaiCLI 动态压缩 + 1M token 窗口 | 快手、淘天、拼多多、腾讯
54. 大模型幻觉问题怎么减少?
RAG 是最有效的方案之一,让模型基于检索到的真实文档回答,而不是"自由发挥"。派聪明的引用追踪机制(generationId → ReferenceMap)就是为了让每句回答都有出处可查。其他手段还有降低 temperature、增加 system prompt 约束、让模型说"我不确定"。
🟡 进阶 | → 派聪明引用追踪 generationId → ReferenceMap | 阿里云、京东、蚂蚁
55. 什么是 CoT(思维链)?为什么效果好?有什么局限?
CoT 让模型"一步步想"而不是直接给答案,把推理过程显式化。效果好是因为把复杂问题分解成了多个简单步骤。局限是增加了 token 消耗和延迟,而且模型可能生成"看起来合理但实际错误"的推理链。
🟡 进阶
56. MoE 混合专家模型是什么?DeepSeek、Qwen 为什么用 MoE?
MoE 把一个大模型拆成多个"专家"子网络,每次推理只激活其中几个专家。好处是模型总参数量大(知识储备多),但每次推理的计算量小(只用部分专家)。DeepSeek V3 用的就是 MoE,671B 总参数但每次只激活 37B。
🟡 进阶
57. 多模型动态切换怎么实现?不重启服务就能换?
PaiAgent 的 ChatClientFactory 每次调用都 new 一个新的 ChatClient,不用 Spring 单例。每个节点可以配不同的 apiUrl 和 model,第一个节点用 DeepSeek 做初步分析,第二个节点用 GPT 做精细加工,改个配置下次执行就生效。
🟡 进阶 | → PaiAgent ChatClientFactory 动态工厂 | Shopee、腾讯、Moka
58. OpenAI 兼容协议是什么?各家大模型的差异在哪?
请求格式统一走 /v1/chat/completions,差异在 base_url 和 api_key。响应大部分字段一致,个别细节不同,比如 token 统计有的叫 prompt_tokens 有的叫 input_tokens。PaiAgent 用 Spring AI 的 OpenAiChatModel 统一了 OpenAI、DeepSeek、通义千问三家的接入。
🟡 进阶 | → PaiAgent OpenAiApi 统一多厂商
59. 如何写好 Prompt?分享下 Prompt 工程的实践经验?
核心原则:角色设定("你是一个资深Java工程师")、明确任务(具体描述要做什么)、输出格式约束(JSON/Markdown)、Few-shot 示例(给几个例子)、约束条件(不要做什么)。PaiCLI 做了一套 Prompt 分层设计,从系统级到 Skill 级,层级越高优先级越高。
🟡 进阶 | → PaiCLI Prompt 分层覆盖机制
60. 流式输出(SSE / WebSocket)怎么设计?
派聪明用 WebSocket 做长连接,结合 DeepSeek 的 Stream API 实现"打字机效果",模型每生成一个 token 就推送给前端。还支持用户主动停止生成。技术细节包括心跳保活、断线重连、背压处理。
🟡 进阶 | → 派聪明 WebSocket + Stream API | 快手
61. Token 预算管理怎么做?
在模型调用前估算本次请求的 token 用量,如果超预算就先压缩上下文。PaiCLI 支持 Prompt Cache 可视化,让用户能看到每次请求的 token 消耗分布(系统提示词占了多少、历史对话占了多少、工具描述占了多少),方便针对性优化。
🟡 进阶 | → PaiCLI 动态预算 + Prompt Cache 可视化
62. 大模型部署有哪些主流方案?vLLM、TGI、llama.cpp 怎么选?
vLLM(PagedAttention,显存利用率高,适合高并发在线服务)、TGI(HuggingFace 出品,和 HF 生态集成好)、llama.cpp(C++ 实现,CPU/低端 GPU 也能跑)、SGLang(RadixAttention,适合复杂 Prompt 复用场景)。生产环境高并发首选 vLLM。
🟡 进阶
63. 对比使用过哪些主流大模型?你们项目里最终选了哪个?
PaiAgent 支持 OpenAI、DeepSeek、通义千问、智谱四家。PaiCLI 接了 GLM、DeepSeek V4、Kimi、StepFun 等。选型原则:代码生成优先 DeepSeek/Claude,中文对话优先通义千问/GLM,性价比优先 DeepSeek。没有最好的模型,只有最适合场景的模型。
🟡 进阶 | → PaiAgent 四家模型 / PaiCLI 多模型适配 | Shopee、腾讯
04、MCP 与工具调用(14 题)
MCP(Model Context Protocol)是 2025 年以来最火的 AI 基础设施协议,Anthropic 提出、各大厂商跟进。这 14 道题从 Function Calling 的底层原理到 MCP 的工程落地,再到 A2A 这种新协议,覆盖面比较全。PaiCLI 从第一天就深度集成了 MCP,支持 60+ 工具自动注册,面试时能讲清原理和落地经验绝对是加分项。
64. Function Calling 底层是怎么实现的?
模型在训练阶段见过大量"函数描述→调用参数"的样本,推理时根据用户意图生成结构化的函数调用 JSON。PaiAgent 里每个工具通过 Spring AI 的 FunctionCallback 接口注册,getName/getDescription/getInputTypeSchema 三件套就是 Function Calling 的标准协议。
🟡 进阶 | → PaiAgent FunctionCallback 实现 | 字节、阿里
65. LLM 是如何学会调用外部工具的?Function Call 能力怎么训练?
两种路径:一是在 SFT 阶段用大量"用户问题→工具调用→工具返回→最终回答"的样本做微调;二是在 Prompt 里描述工具并给 Few-shot 示例,利用 In-Context Learning 能力。前者效果更稳定,后者不需要重新训练。GPT 系列走的是第一条路。
🟡 进阶
66. MCP 是什么?它解决了什么问题?
MCP 是一套标准化的"模型↔工具"通信协议,让 AI 应用能像 USB 一样即插即用地接入各种外部工具。之前每接一个工具就要写一套适配代码,有了 MCP,工具提供方按协议封装一次,所有支持 MCP 的 Agent 都能直接用。
🟡 进阶 | → PaiCLI MCP 集成 / PaiAgent MCP 工具配置 | 腾讯、蚂蚁、字节
67. MCP 由哪几部分组成?
三大组件:MCP Server(提供工具/资源的服务端)、MCP Client(Agent 侧的客户端,发起调用)、协议规范(定义工具描述格式、请求响应格式、传输方式)。PaiCLI 里同时实现了 Client 端(调用外部 MCP Server)和对协议的完整支持。
🟡 进阶 | → PaiCLI MCP Client 实现
68. MCP 和 Function Calling 有什么区别?
Function Calling 是模型层面的能力,模型决定调用什么函数、传什么参数。MCP 是传输层的协议,规定了工具怎么描述自己、怎么接收调用、怎么返回结果。可以理解为 Function Calling 是"大脑的决策",MCP 是"手脚的执行通道"。
🟡 进阶 | → PaiAgent(Function Calling)+ PaiCLI(MCP 传输) | 作业帮、腾讯
69. Function Calling、Skill、MCP 三者有什么区别?
FC 是模型决策层(决定调什么工具),MCP 是传输层(工具怎么通信),Skill 是知识层(预置的最佳实践指南)。三者不互斥,一次完整的工具调用可能同时涉及:Skill 告诉模型"这个场景该用搜索工具",模型通过 FC 生成调用参数,MCP 把请求发给搜索服务。
🟡 进阶 | → PaiAgent(FC + Skill)+ PaiCLI(FC + MCP + Skill)
70. MCP Server 的 stdio 和 HTTP 模式分别怎么用?
stdio 模式通过子进程通信,适合本地工具(文件操作、Git 命令等),延迟低但只能单机。HTTP 模式走网络请求,适合远程服务(数据库、第三方 API),支持分布式但有网络开销。PaiCLI 两种都支持,还能自动发现和注册 MCP Server 的工具列表。
🟡 进阶 | → PaiCLI stdio + HTTP 双模式
71. 为什么有些推理模型不支持 MCP?
推理模型(比如 o1、DeepSeek-R1)在设计时优化了长链推理能力,但牺牲了工具调用能力。它们的训练数据和 RLHF 流程侧重于"想清楚再回答"而不是"边调工具边回答"。解决方案是用推理模型做规划,再用普通模型执行工具调用。
🟡 进阶
72. 什么是 A2A 协议?和 MCP 有什么区别?
A2A(Agent-to-Agent)是 Google 提出的 Agent 间通信协议,解决的是"Agent 和 Agent 怎么对话"的问题。MCP 解决的是"Agent 和工具怎么通信"。一个是 Agent 间的横向协作,一个是 Agent 向下调用工具。
🟡 进阶
73. WebSocket 和 SSE 通信有什么区别?在 AI 场景中各自怎么用?
SSE 是单向的(服务端→客户端),适合模型流式输出。WebSocket 是双向的,适合需要客户端随时发消息的场景(比如中途打断生成)。派聪明用 WebSocket 就是因为需要支持用户主动停止生成。
🟡 进阶 | → 派聪明 WebSocket 双向通信
74. 工具描述(Tool Description)怎么写才能让模型准确调用?
关键是写清楚"什么时候该用这个工具"而不只是"这个工具能干什么"。比如 search_code 的描述不该是"搜索代码",而该是"当需要在代码库中查找特定函数、变量名或代码片段时使用"。PaiAgent 的 FunctionCallback.getDescription() 就遵循这个原则。
🟡 进阶 | → PaiAgent FunctionCallback 描述设计
75. 敏感工具的安全控制怎么做?
PaiCLI 实现了一套完整的安全机制:HITL(Human-in-the-Loop)人工审批,执行高危操作前先问用户同意;路径围栏,限制文件操作只能在项目目录内;命令黑名单,禁止 rm -rf / 这类危险命令;结构化审计日志,每次工具调用都有迹可查。
🟡 进阶 | → PaiCLI HITL + 路径围栏 + 命令黑名单 | 快手
76. 模型编造不存在的工具调用(工具幻觉)怎么防?
两个手段:一是在工具列表里做白名单校验,模型返回的 tool_calls 如果不在已注册列表里就直接拒绝;二是优化工具描述让模型更准确地理解工具边界。PaiAgent 的 NodeExecutorFactory 通过 Map 注册机制天然实现了白名单校验。
🟡 进阶 | → PaiAgent NodeExecutorFactory 白名单 | 淘天
77. 有没有用过大模型网关框架?网关层解决了什么问题?
大模型网关(如 LiteLLM、OneAPI)统一管理多个模型提供商的 API 密钥、请求路由、限流、重试、负载均衡。PaiAgent 的 ChatClientFactory 其实就承担了部分网关职责,根据节点配置动态路由到不同的模型服务。生产环境建议上专门的网关。
🟡 进阶 | → PaiAgent ChatClientFactory 路由功能
05、AI Coding(8 题)
AI Coding 是最近半年面试里增长最快的方向。PaiCLI 对标 Claude Code,是一个完整的 Java Agent CLI 产品,从代码生成、AST 分析到 Git 安全回滚都有实现,拿来回答这个方向的题就是降维打击。
78. AI 辅助编程在实际工作中怎么提效的?
这道题考的不是技术深度,而是真实使用经验。PaiCLI 在日常开发中能做到:自然语言描述需求 → 自动生成代码 → 编译检查 → 自动修复错误 → 提交 Git。关键不在于代码生成准确率有多高,而在于"生成→反馈→修正"的循环效率。
🟡 进阶 | → PaiCLI 日常开发全流程 | 小红书、蚂蚁、影石
79. 代码生成场景下 AST 分析有什么用?
AST(抽象语法树)能让 Agent 理解代码的结构而不只是文本。PaiCLI 集成了 JavaParser 做 AST 分析,可以精确定位类、方法、字段的位置和关系,比正则匹配靠谱得多。生成代码时能确保插入位置正确、不破坏已有的代码结构。
🟡 进阶 | → PaiCLI JavaParser AST 分析
80. LSP 诊断注入在 AI Coding 中解决什么问题?
LSP(Language Server Protocol)能提供实时的编译错误、类型检查、未使用变量等诊断信息。PaiCLI 把 LSP 诊断信息注入到 Agent 的上下文里,让模型在生成和修改代码时能"看到"IDE 级别的错误提示,修复准确率大幅提升。
🟡 进阶 | → PaiCLI LSP 诊断注入
81. 怎么保障 AI 改代码的安全性?Git 快照回滚怎么做?
AI 改错代码是常有的事,关键是能快速恢复。PaiCLI 实现了 Git Side-History 机制,每次 AI 修改前自动创建快照,改坏了一键回滚到修改前的状态。类似游戏里的存档读档,心理负担一下子就没了。
🟡 进阶 | → PaiCLI Git Side-History 快照回滚
82. 代码库的向量化和语义搜索怎么做?
把代码文件按函数/类切块,生成向量存入数据库,搜索时用自然语言描述找到语义最匹配的代码片段。PaiCLI 用 SQLite 做代码向量的持久化存储,还构建了代码关系图谱,能理解函数之间的调用关系。
🟡 进阶 | → PaiCLI SQLite 向量存储 + 代码关系图谱
83. AI 代码审查和人工代码审查有什么互补关系?
AI 审查擅长的是:风格一致性检查、常见 bug 模式识别、安全漏洞扫描、代码复杂度评估。人工审查擅长的是:业务逻辑正确性、架构合理性、可维护性判断。最佳实践是 AI 先过一轮自动审查,人工只关注 AI 标记出来的问题和业务逻辑。
🟡 进阶
84. 多文件编辑时上下文怎么管理?
AI 改一个功能可能涉及 5-10 个文件,全部塞进上下文 token 就炸了。PaiCLI 的做法是:先用 Glob/Grep 精准定位相关文件和代码段,只把必要的片段加入上下文,改完一个文件就释放那部分上下文。代码关系图谱在这里也能帮忙,自动找出"改了 A 文件,B、C 文件也需要同步改"。
🟡 进阶 | → PaiCLI Glob/Grep + 代码关系图谱
85. CLI 形态的 AI Agent 和 IDE 插件形态有什么优劣?
CLI 形态(PaiCLI、Claude Code):不依赖特定 IDE,跨平台通用,适合全栈开发和 DevOps 场景,但缺少 GUI 交互。IDE 插件形态(GitHub Copilot、通义灵码):和编辑器深度集成,补全体验好,但绑定特定 IDE。PaiCLI 选 CLI 是因为 Java 开发者用的 IDE 太分散了,IntelliJ、Eclipse、VS Code 都有人用。
🟡 进阶 | → PaiCLI CLI 形态设计考量
06、工程化与生产落地(15 题)
最后 15 道题聚焦"怎么把 Agent 从 demo 做成产品"。面试官考这些题的目的是看你有没有真正把 Agent 上过线、扛过流量、处理过线上事故。PaiAgent 和 PaiCLI 都是跑在生产环境里的项目,拿来举例底气足。
86. Agent 系统从 demo 到生产级落地要走哪些流程?
需求定义 → 技术选型 → 原型验证 → 工具集成 → 评测体系搭建 → 安全审计 → 灰度发布 → 监控告警。PaiAgent 的完整落地历程就经历了这些阶段,从单节点 DAG 到 LangGraph4j 双引擎的演进过程本身就是很好的面试素材。
🟡 进阶 | → PaiAgent 从 DAG 到 LangGraph4j 的演进 | 万类智生、蚂蚁、字节、腾讯
87. Agent 的执行效果怎么评估?
三个维度:任务完成率(Agent 能不能把事干完)、回答质量(输出是否准确有用)、用户满意度(人工评分或隐式反馈)。PaiAgent 的执行记录会以成功/失败状态写入数据库,方便后续统计分析。量化指标能拿出来说的候选人凤毛麟角。
🔴 深入 | → PaiAgent 执行记录 + 状态追踪 | 数坤科技、字节
88. 大模型能力评测指标有哪些?
通用能力看 MMLU(多学科知识)、HumanEval(代码生成)、GSM8K(数学推理)。中文场景看 C-Eval、CMMLU。对话能力看 MT-Bench、Chatbot Arena ELO 排名。RAG 场景看 RAGAS。选型时不能只看一个榜,要结合自己场景做私有评测。
🟡 进阶
89. Agent 响应太慢怎么优化?
工程侧:工具调用并行化、缓存高频查询结果、流式输出减少用户等待感。基座侧:用更快的模型做初筛(比如 Haiku),复杂任务再调大模型。PaiAgent 的 TTS 模块就用了 CompletableFuture 做并行处理,多个音频片段同时生成。
🟡 进阶 | → PaiAgent CompletableFuture 并行 / PaiCLI 多模型切换
90. Agent 系统有哪些安全风险?怎么防范?
三大风险:Prompt Injection(恶意指令注入)、沙箱逃逸(Agent 执行了不该执行的系统命令)、越权操作(Agent 访问了不该访问的数据)。PaiCLI 的防范体系包括 HITL 人工审批、路径围栏、命令黑名单、结构化审计日志四道防线。
🔴 深入 | → PaiCLI 四道安全防线
91. Skill 预置知识包机制是什么?怎么设计的?
Skill 是把某个专业领域的最佳实践封装成结构化知识包,Agent 执行任务时自动加载对应 Skill 的指南和参考文档。PaiAgent 的 SkillRegistry 在应用启动时一次性加载所有 Skill 到 ConcurrentHashMap,支持全量注入和渐进式加载两种模式。PaiCLI 也有独立的 Skill 系统,还多了站点经验库的积累能力。
🟡 进阶 | → PaiAgent SkillRegistry / PaiCLI Skill + 站点经验
92. 多工具调度引擎怎么设计?工具之间有依赖怎么处理?
核心是拓扑排序。先分析工具之间的输入输出依赖关系,构建 DAG,然后按拓扑序执行。PaiAgent 的 GraphBuilder 就是干这事的,通过边的 source/target 关系构建执行图,没有入边的节点先执行。
🔴 深入 | → PaiAgent GraphBuilder 拓扑构建 | 字节、阿里云
93. Agent 流式输出怎么设计?怎么提升用户体验?
模型还在"想"的时候就开始给用户展示中间结果。PaiCLI 在 ReAct 循环中实时展示 Thought("我在想...")、Action("正在调用 xxx 工具")、Observation("工具返回了..."),让用户看到 Agent 的思考过程而不是干等一个最终结果。
🟡 进阶 | → PaiCLI ReAct 过程可视化
94. Agent 系统的可观测性怎么做?需要监控哪些指标?
核心指标:请求成功率、平均响应时间、token 消耗量、工具调用成功率、模型 API 错误率。PaiAgent 的每次工作流执行都记录完整的执行日志(每个节点的输入输出、耗时、状态),出了问题能快速定位是哪个节点挂了。
🟡 进阶 | → PaiAgent 执行日志 + 节点级追踪
95. Agent 灰度发布怎么做?
不能一次性把新版 Agent 推给所有用户。常见做法是按用户 ID 或流量比例分桶,先让 5% 的用户用新版,观察一段时间(错误率、满意度)没问题再逐步扩大。PaiAgent 可以通过工作流配置实现 A/B 测试,同一个任务走两套不同的节点编排。
🟡 进阶 | → PaiAgent 工作流 A/B 配置
96. Agent 系统的成本怎么控制?
大模型 API 按 token 计费,成本失控是真实风险。控制手段:设用户级别的 token 配额、用小模型做初筛(PaiCLI 支持多模型切换)、Prompt Cache 减少重复计算、批量请求合并。派聪明就设了聊天消息每分钟 30 次的速率限制。
🟡 进阶 | → PaiCLI 多模型切换 / 派聪明速率限制
97. Agent 系统怎么做容错?单点故障怎么处理?
工具调用失败要有重试和降级策略,模型 API 挂了要能自动切换到备用模型,消息队列保证异步任务不丢。PaiAgent 的节点执行失败会把 status 设为 FAILED 并记录 errorMessage,上层可以根据失败类型决定重试还是跳过。
🟡 进阶 | → PaiAgent FAILED 状态 + 错误记录
98. 数据标注在 Agent 项目中有多重要?怎么做?
评测数据集需要人工标注"标准答案",Prompt 优化需要标注"好回答 vs 坏回答",微调需要高质量的指令-回答对。标注质量直接决定了模型效果的上限。可以用 AI 辅助标注(先让模型生成初版,人工校正),效率能提升 3-5 倍。
🟡 进阶
99. Agent 项目如何处理合规与用户隐私?
用户输入可能包含敏感信息(个人信息、商业机密),不能直接存储或发送给第三方模型。处理方式:输入脱敏、审计日志加密、模型 API 选择数据不出境的国内厂商、用户明确授权后才开启数据收集。派聪明的多租户隔离也是合规要求之一。
🟡 进阶 | → 派聪明多租户隔离
100. 你在 Agent 项目中遇到的最大技术挑战是什么?
开放题,但最能看出候选人的真实水平。建议准备 2-3 个真实案例:一个架构层面的(比如 PaiAgent 从 DAG 引擎迁移到 LangGraph4j 双引擎的决策过程),一个工程层面的(比如 PaiCLI 上下文爆炸的优化方案),一个业务层面的(比如派聪明多租户权限隔离的需求变更)。
🔴 深入 | → 三个项目各准备一个案例
ending
100 道题,6 个方向,3 个实战项目。
这不是让大家死记硬背的题库,
而是一张带着项目的作战地图。
面试官问 Transformer,你从注意力机制聊到 PaiAgent 的多模型动态切换。
问 RAG 分块,你说派聪明为什么选了 512 字符加 100 字符重叠。
问 MCP,你说 PaiCLI 同时支持 stdio 和 HTTP 两种模式,60 多个工具即插即用。
问 LoRA,你把训练到部署的完整路径都串起来。
每道题背后都有真实代码、真实踩坑、真实数据。
后面我会逐题拆解,给出完整的加精答案,
每篇覆盖 5-8 题,带代码、带架构图、带面试官追问的回答思路。
【收藏这篇,不亏】
