AI应用开发面试手册(精简版)
本手册覆盖RAG检索增强生成 + Agent智能体开发两大核心方向,全部来自生产落地高频面试题,提炼为核心得分要点,可直接背诵。面试时先答核心框架,再根据追问补充细节。
第一篇 RAG检索增强生成篇
模块一 RAG核心原理与挑战
核心题1:RAG技术的核心挑战是什么?对应有哪些落地方案?
背诵要点
6大核心挑战:文档解析难、分块切分难、召回准确率低、排序精度不足、拒答边界难控、权限隔离复杂
对应解法:
- 解析:按格式走专用解析器,保留结构化元数据
- 分块:结构化切分+重叠窗口+父子分块
- 召回:关键词+向量混合召回 + 查询改写
- 排序:Rerank重排 + 多路信号融合
- 拒答:置信度体系,多维度打分判断
- 权限:入库打标 + 检索层强制过滤 + 生成前二次校验
高频追问
RAG和微调怎么选型?各自适用场景?
- RAG:知识更新频繁、需要溯源、数据敏感、快速迭代,成本低,见效快
- 微调:固定领域风格/话术、能力对齐、大量高质量标注数据,成本高周期长
- 生产级方案:RAG做知识底座 + 轻量微调做风格/格式对齐
什么是Naive RAG?进阶RAG架构有哪些?
- Naive RAG:切片→向量化→检索→生成,基础流程,效果上限低
- 进阶:高级RAG(查询改写、重排、元数据过滤)、模块化RAG、Agentic RAG、Graph RAG
模块二 文档处理与分块
核心题1:文档分块有哪些最佳实践?
背诵要点
- 不按固定字符数硬切,优先按标题、段落、语义边界结构化切分
- 相邻块设置10%-20%重叠,避免上下文断裂
- 保留标题、章节、页码等元数据,每个块附带上下文信息
- 复杂场景用父子分块:子块细粒度召回,父块完整上下文生成
- 分块大小匹配Embedding模型最优窗口,兼顾召回精度与上下文完整性
高频追问
分块大小怎么选?有没有通用最优值?
- 无通用最优值,按内容类型定:FAQ类200-500字符,制度文档500-1000字符,长文知识1000-2000字符
- 核心原则:一个块包含一个完整语义单元,避免语义断裂和无关信息混杂
- 通过召回率、答案准确率指标调优到最优值
表格、图片类内容怎么处理进RAG?
- 表格:保留行列结构,转成结构化Markdown/JSON,同时存储文本描述
- 图片:OCR提取文字 + 图片描述生成,图文绑定存储
- 复杂图表:用多模态Embedding直接向量化,配合多模态大模型使用
模块三 召回与混合检索
核心题1:召回准确率低怎么优化?混合检索怎么实现?
背诵要点
- 优化方向:查询改写、混合召回、同义词扩展、实体链接、分块优化
- 混合检索流程:关键词BM25召回TopK + 向量语义召回TopK → 去重合并 → 送入重排
- 核心价值:关键词解决精确匹配问题,向量解决语义匹配问题,互补短板
高频追问
Query Rewrite有哪些常用方法?
- 规则层:去标点、归一化、口语转书面语、同义词替换
- 模型层:用大模型改写为更标准的检索问句、生成多视角查询
- 进阶:多查询生成,一个问题拆成多个检索query,多路召回合并
两路召回结果怎么融合?有哪些策略?
- 加权融合:关键词得分和向量得分按权重相加排序
- 倒数排位融合(RRF):按两路排名计算综合分,鲁棒性强
- 重排融合:统一送入Rerank模型做语义排序,效果最好
召回率和精确率怎么权衡?
- 召回阶段优先保召回率,宁可多召也不漏召,靠后续重排提精度
- 召回TopK设50-100条,重排后取Top5-10条进上下文,兼顾效果与成本
模块四 重排与上下文构建
核心题1:Rerank的作用是什么?全链路性能怎么优化?
背诵要点
- 作用:对初筛结果做精细化语义排序,大幅提升顶部相关性,是提升RAG效果的性价比最高的环节
- 性能优化:控制重排输入数量、选轻量Rerank模型、批量计算、高频结果缓存、高并发可降级跳过
高频追问
什么时候必须加Rerank?什么时候可以不加?
- 必须加:知识库体量大、查询语义复杂、对答案精度要求高的生产级系统
- 可不加:简单FAQ、小体量知识库、Demo原型、对成本极度敏感的场景
上下文太长塞不下怎么办?
- 控制召回数量,只取相关性最高的TopN
- 对长片段做摘要压缩,提取核心信息
- 用长上下文模型,或分段处理后整合
- 优先保留高置信度、高相关度内容
模块五 答案生成与幻觉治理
核心题1:如何治理大模型幻觉?引用溯源怎么实现?
背诵要点
- 全链路防控:
- 检索侧:提升召回准确率,保证输入知识正确
- 生成侧:Prompt强约束、强制引用来源、调低温度
- 校验侧:事实一致性校验、置信度打分、低置信度拒答
- 引用溯源:每个Chunk分配唯一ID → Prompt要求标注引用编号 → 返回时关联原文信息 → 前端支持跳转定位
高频追问
拒答阈值怎么定?怎么平衡误拒答和漏拒答?
- 先标注一批测试数据,绘制不同阈值下的准确率和拒答率曲线
- 根据业务场景选平衡点:客服场景宁误拒不漏答,内部工具宁漏答不幻觉
- 设置中间置信度区间,触发二次检索或人工兜底
什么是事实一致性校验?常用实现方式?
- 校验答案和检索上下文是否一致,有没有编造信息
- 实现方式:小模型分类器、大模型校验、关键词匹配规则、NLI自然语言推理模型
模块六 权限隔离与多租户
核心题1:企业级RAG怎么做权限隔离和数据隔离?
背诵要点
四层防护架构:
- 入库打标:每个文档/Chunk附带部门、角色、ACL等权限标签
- 检索强制过滤:查询时注入权限Filter,无权限数据不进入召回池
- 生成前二次校验:上下文送入Prompt前再校验一遍
- 审计溯源:全链路留痕,支持安全审计
高频追问
多租户用物理隔离还是逻辑隔离?怎么选?
- 逻辑隔离:共用索引,加租户ID字段过滤,成本低运维简单,适合中小租户、安全要求一般
- 物理隔离:每个租户独立索引/独立库,隔离彻底安全度高,适合大客户、数据敏感场景
- 混合方案:大客户物理隔离,中小客户逻辑隔离
只靠Prompt做权限限制为什么不行?
- 大模型有指令逃逸风险,Prompt注入可绕过约束
- 非确定性输出,无法100%保证遵守规则
- 检索层已经拿到了敏感数据,泄露风险已经存在
- 核心原则:权限控制必须在系统层做,Prompt只做辅助
模块七 技术选型与底层原理
核心题1:RAG项目选ES还是Milvus?各自适用场景?
背诵要点
- ES:适合企业级RAG,混合检索多、过滤条件多、结构化字段多、已有ES基建,中小规模性价比高
- Milvus:适合纯向量检索为主、数据量超亿级、超高QPS向量查询场景,专业向量检索性能更强
- 高阶方案:双库架构,ES做关键词+过滤,Milvus做向量召回,结果融合
高频追问
Embedding维度越高越好吗?怎么选型?
- 不是。维度越高语义表达越强,但存储、耗时、成本线性上升
- 按场景选:短文本简单任务768维,通用场景1024维,复杂长文本1536维
- 1024维是大多数业务场景的性价比平衡点
什么是HNSW索引?和IVF比有什么区别?
- HNSW:层次化近邻图,基于图结构,召回率高、查询快,内存占用高,适合高精度要求
- IVF:倒排文件,基于聚类,构建快、内存小,适合大数据量、可接受稍低召回
- 生产最常用HNSW,综合表现最优
模块八 性能优化与运维
核心题1:RAG全链路性能优化有哪些手段?
背诵要点
- 检索层:索引优化、向量量化、冷热分离、热点缓存
- 重排层:控制输入数量、轻量模型、批量处理、结果缓存
- 生成层:分级路由、流式输出、推理加速、高频问题缓存
- 架构层:就近部署、减少网络传输、异步非关键步骤
高频追问
向量检索慢怎么排查优化?
- 先看索引类型是否合适,参数是否合理
- 检查是否全量扫描、索引未生效
- 做向量量化压缩,减小内存占用
- 增加节点、分片,提升并发能力
- 热点查询结果做缓存
怎么设计RAG的缓存策略?
- 高频标准问题:完整答案缓存,TTL几小时到几天
- 向量检索结果:相同Query的召回结果缓存
- Embedding结果:相同文本的向量缓存,避免重复计算
- 缓存Key要包含权限、租户信息,防止串数据
模块九 评估体系与迭代闭环
核心题1:怎么做RAG的在线评测和用户反馈闭环?
背诵要点
- 评测体系:自动化指标+LLM评测+人工抽检三级
- 指标:召回率、答案准确率、引用准确率、拒答准确率、响应耗时
- 反馈闭环:采集反馈 → 归因分类 → 根因优化 → 回归验证 → 沉淀用例
高频追问
LLM-as-Judge有什么局限性?怎么弥补?
- 局限:自身有偏见、对细微错误不敏感、打分不稳定、成本高
- 弥补:搭配规则校验、多模型交叉评测、校准打分标准、人工抽检金标准
RAG效果一直上不去,一般排查顺序是什么?
- 先看文档质量和分块是否合理
- 再看召回是否漏召、相关性够不够
- 再看重排是否把最相关的排到前面
- 最后看Prompt和生成环节是否有问题
模块十 架构演进与扩展
核心题1:RAG系统怎么支持多模态、多语言?未来怎么演进?
背诵要点
- 多模态:多模态Embedding + 多模态大模型,图文统一检索统一生成
- 多语言:多语言Embedding模型 + 查询翻译 + 多语言混合检索
- 演进方向:从静态检索到Agentic RAG、从单一路径到多路检索融合、从纯文本到全模态、结合知识图谱
高频追问
什么是Graph RAG?和传统向量RAG比有什么优势?
- 从文档中提取实体和关系,构建知识图谱,配合向量检索
- 优势:复杂逻辑推理更强、多文档关联能力好、可解释性强
- 适合:知识密集型、需要跨文档推理的复杂场景
什么是Agentic RAG?和普通RAG的区别?
- 普通RAG:一次检索一次生成,被动执行
- Agentic RAG:Agent主动判断信息是否足够,自主决定多轮检索、补充查询、信息校验
- 大幅提升复杂问题的回答准确率,是RAG的进阶方向
第二篇 Agent智能体开发篇
模块一 Agent基础与核心原理
核心题1:什么是AI Agent?和普通对话、RAG的核心区别?
背诵要点
- 定义:目标驱动,能自主规划、调用工具、迭代反馈的智能体,核心是「自主决策+外部行动」
- 普通对话:被动问答,仅依赖模型内置知识,无外部能力
- RAG:增强知识库问答,本质还是问答模式,无自主执行能力
- Agent:目标驱动,自主拆任务、调用工具、修正错误,可产生真实业务动作
核心题2:ReAct框架的核心思想?和CoT的区别?
背诵要点
- ReAct = Reasoning推理 + Acting行动,推理与工具调用交替循环
- 流程:思考下一步 → 调用工具 → 基于结果继续推理 → 循环至完成
- 区别:CoT是纯内部逻辑推理,无法获取外部信息;ReAct结合工具,可解决知识过时、幻觉问题,能完成真实操作
核心题3:标准Agent由哪些核心模块组成?
背诵要点
- 大模型推理层:大脑,负责规划、决策、推理
- 记忆模块:会话历史、中间状态、长期知识
- 工具集:外部能力入口(搜索、数据库、API等)
- 规划模块:任务拆解、路径规划、异常修正
- 执行层:工具调用、结果回传、状态更新
- 反思模块:校验结果、自我修正、经验沉淀
高频追问
Agent必须用大模型吗?小模型能不能做Agent?
- 不一定。简单流程化Agent、固定工具调用,小模型加规则也能实现
- 复杂开放场景、自主规划、灵活推理,必须用大模型
- 生产趋势:大模型做规划调度,小模型做具体执行,分层降本
Agent规划失败常见原因有哪些?怎么优化?
- 原因:任务理解偏差、工具边界不清晰、缺乏领域知识、异常场景没遇到过
- 优化:完善工具描述、加入少样本示例、引入反思机制、预设常见异常分支、人工反馈调优
AutoGPT为什么生产落地很少用?
- 无边界规划,容易死循环和跑偏,可控性差
- Token消耗极高,成本不可控
- 任务成功率低,稳定性差
- 生产级Agent都是限定场景、明确边界、可控流程
模块二 开发框架与选型
核心题1:主流Agent框架有哪些?适用场景分别是什么?
背诵要点
- LangGraph/LangChain:代码级框架,生态最全。LangChain适合简单Agent;LangGraph支持复杂状态循环,生产级首选
- Dify:国产可视化低代码平台,自带RAG与工作流,企业快速落地内部Agent
- Coze:字节出品,零代码可视化,插件生态丰富,个人/小团队快速验证Demo
- AutoGen/CrewAI:专攻多Agent协作,内置分工模式,多角色协同场景
核心题2:LangGraph和LangChain的核心区别?解决什么痛点?
背诵要点
- LangChain:线性链式执行,状态管理弱,不支持复杂循环分支,适合简单单轮任务
- LangGraph:基于状态机架构,原生支持循环、条件分支、人工介入,内置持久化状态、断点续跑
- 解决痛点:LangChain无法优雅处理Agent思考-行动循环、状态持久化的问题
高频追问
什么时候用低代码框架,什么时候用代码级框架?
- 低代码:快速验证想法、内部工具、无深度定制、非技术团队
- 代码级:生产级复杂场景、深度定制逻辑、复杂工作流、多系统集成、可控性要求高
从零手写Agent和用框架比有什么优劣?
- 手写:灵活度最高、完全可控、无框架依赖、无冗余逻辑;开发成本高、重复造轮子
- 框架:开发快、生态完善、内置最佳实践;有学习成本、API变动快、定制有约束
模块三 工具调用与MCP协议
核心题1:Function Calling完整执行闭环是什么?
背诵要点
四步闭环:
- 定义:预定义工具Schema(功能、参数、返回值)
- 决策:模型判断是否调用、调用哪个、传什么参数
- 执行:业务代码执行工具逻辑,获取真实结果
- 回传:工具结果返回模型,模型继续推理生成最终答案
核心题2:工具调用常见异常与处理方案?
背诵要点
- 常见异常:参数错误、执行失败、循环调用、幻觉调用不存在的工具、解析失败
- 处理方案:
- 参数校验不合法,让模型重生成
- 执行失败的错误信息回传,让模型修正方案
- 设置最大执行步数,检测死循环强制终止
- 工具不可用触发降级,切换备用方案
核心题3:什么是MCP协议?核心价值是什么?
背诵要点
- 定义:模型上下文协议,Agent对接外部工具的行业标准接口
- 价值:一次实现,所有支持MCP的Agent都能调用,告别重复适配;标准化权限、异步任务、UI能力;已成行业事实标准,主流厂商全适配
高频追问
工具返回结果太长,上下文塞不下怎么办?
- 工具侧做分页、截断,只返回核心字段
- 对返回结果做摘要压缩,提取关键信息
- 让Agent决定需要哪部分信息,工具二次查询
- 分多次调用,分批处理结果
多个无依赖的工具可以并行调用吗?怎么实现?
- 可以,能大幅缩短总耗时
- 实现:模型一次性返回多个工具调用指令,业务层并行执行,全部完成后统一回传给模型
- 注意:判断工具间是否有依赖,有依赖的必须串行
工具调用的幂等性怎么保证?
- 每个工具调用生成唯一请求ID,工具侧做去重
- 查询类天然幂等,写入类加幂等键
- 断点续跑时,已执行成功的工具不再重复执行
模块四 状态管理与记忆系统
核心题1:Agent三层记忆架构?各自作用与存储方式?
背诵要点
- 工作记忆:当前任务上下文、中间状态,程序内存/滑动窗口,分钟级
- 短期记忆:单会话完整对话历史,Redis存储,小时-天级
- 长期记忆:用户偏好、领域知识、成功经验,向量库+关系库,永久存储
- 原则:分层召回,控制上下文体积,避免信息过载
核心题2:长对话上下文溢出怎么解决?
背诵要点
- 滑动窗口:只保留最近N轮
- 摘要压缩:历史对话做摘要替代原文
- 记忆召回:只召回和当前任务相关的片段
- 状态外移:执行状态存Redis,上下文只留核心推理信息
核心题3:断点续跑怎么实现?
背诵要点
- 核心依赖:持久化状态存储
- 流程:每步执行完持久化当前状态(已完成步骤、中间结果)→ 中断后读取历史状态 → 从断点继续执行
- 配套:工具幂等设计,避免重复执行副作用
高频追问
滑动窗口和摘要压缩各有什么优劣?怎么选?
- 滑动窗口:实现简单、信息无损失;长对话会丢失早期关键信息
- 摘要压缩:保留全局信息,上下文体积小;有细节损失、实现复杂
- 选型:短对话用滑动窗口,长对话用摘要+近期滑动窗口结合
会话记忆为什么不建议参与检索?
- 历史话题会干扰当前检索,导致召回偏移
- 指代、省略语会让检索Query不完整
- 最佳实践:检索只基于当前问题,记忆只辅助生成
模块五 多Agent协作
核心题1:多Agent对比单Agent的优势?适用场景?
背诵要点
- 优势:专业分工提质量、并行处理提效率、多视角校验降幻觉、复杂任务可拆解
- 适用场景:长流程流水线任务、多领域专业任务、高准确率评审场景、大规模并行任务
核心题2:常见的多Agent协作模式有哪些?
背诵要点
- 流水线模式:按阶段分工顺序执行,适合标准化流程
- 主从调度模式:总管Agent调度专业子Agent,分配任务整合结果,适合复杂开放任务
- 辩论评审模式:多Agent输出方案互相评审,适合高决策质量场景
- 自由协作模式:平等通信协商分工,适合科研创意类场景
高频追问
怎么避免多Agent沟通成本过高、效率反而下降?
- 明确职责边界,避免职责重叠
- 统一调度器,避免点对点混乱通信
- 标准化信息格式,减少理解成本
- 控制Agent数量,不是越多越好,简单任务单Agent更高效
多个Agent意见不一致时怎么裁决?
- 设主Agent做最终决策
- 投票制,多数意见胜出
- 引入评审Agent专门做裁决
- 高风险场景提交人工决策
模块六 工程化与性能优化
核心题1:生产级Agent为什么需要消息队列?解决什么痛点?
背诵要点
- 解决同步执行用户等待久、长耗时任务阻塞线程、系统耦合高的问题
- 价值:异步解耦、削峰填谷、自动重试、组件解耦
核心题2:工作流编排和Agent框架是什么关系?什么时候需要?
背诵要点
- 关系:互补而非替代。Agent框架负责智能决策推理;工作流负责任务可靠执行
- 工作流核心能力:自动重试、超时控制、断点恢复、分布式调度
- 需要场景:长耗时多步骤任务、高可靠断点续跑、跨系统协同、定时延迟任务
核心题3:Agent容灾降级怎么实现?
背诵要点
- 模型降级:主模型不可用切备用模型
- 工具降级:核心工具不可用切换备用方案
- 流量削峰:高并发时限流排队,非核心功能降级
- 熔断机制:连续失败触发熔断,快速返回,避免雪崩
高频追问
Agent任务执行超时怎么处理?
- 设置单步超时和总任务超时
- 超时后触发重试,重试失败转降级方案
- 记录超时异常,用于后续优化
- 通知用户任务状态,避免无响应
监控Agent的核心指标有哪些?
- 效果类:任务成功率、工具调用准确率、异常率
- 性能类:平均耗时、首响应时间、Token消耗
- 资源类:模型QPS、线程池水位、队列堆积
- 成本类:单次任务成本、日总Token消耗
大模型API限流时怎么应对?
- 消息队列削峰,任务排队执行
- 降级为小模型处理简单任务
- 触发限流时返回排队状态给用户
- 配置备用模型池,分摊流量
模块七 安全与合规
核心题1:工具调用有哪些安全风险?怎么防控?
背诵要点
- 风险:越权操作、恶意代码执行、数据泄露、误操作产生业务损失
- 防控:
- 权限最小化,只给必需的最小权限
- 代码执行类工具放沙箱运行
- 参数合法性校验,过滤恶意内容
- 全操作留痕审计
- 高危操作强制人工确认
核心题2:什么是人在回路?哪些场景必须加?
背诵要点
- 定义:高风险环节暂停执行,等待人工确认后再继续
- 必加场景:产生真实业务副作用(发邮件、改数据、删资源、支付)、高风险决策、低置信度场景
- 价值:平衡自动化效率与风险,降低误操作损失
核心题3:怎么防御Prompt注入攻击?
背诵要点
分层防御:
- 系统Prompt加固,明确指令优先级,禁止用户指令覆盖系统规则
- 输入检测,过滤恶意注入内容
- 工具白名单,只能调用预定义工具
- 权限兜底,工具本身有权限限制
- 输出校验,工具调用前二次校验
高频追问
Agent生成的SQL怎么防止删库、拖库?
- 数据库账号只给只读权限
- SQL语法校验,禁止DROP、DELETE、UPDATE等写操作
- 限制查询行数,防止全表扫描拖库
- 执行前人工确认高危查询
- 走专用只读从库,不碰主库
代码执行沙箱除了Docker还有什么方案?
- Wasm沙箱:启动快、资源占用低、隔离性好,适合轻量代码执行
- 进程级沙箱:限制系统调用、资源配额
- Serverless函数:独立运行环境,天然隔离
- 选型:轻量短任务用Wasm,重任务用Docker
模块八 评估体系
核心题1:Agent评估和传统软件、RAG评估有什么区别?
背诵要点
- 传统软件:输出确定,单元测试断言校验
- RAG:评估召回准确率、答案相关性,输出相对固定
- Agent:输出非确定、过程多步可变,核心评估端到端任务完成度和过程合理性
- 难点:路径不唯一、多步误差传导、成功标准难量化
核心题2:怎么自动化评估Agent任务效果?
背诵要点
- 方案:LLM-as-Judge + 规则校验结合
- 构建标准化测试用例集,覆盖正常/异常/边界场景
- 自动化执行,记录完整执行过程
- 规则校验工具调用正确性、权限合规性
- 大模型评委从任务完成度、逻辑合理性打分
- 每次迭代跑回归测试,验证效果不退化
高频追问
LLM-as-Judge本身有偏见怎么办?
- 用更强的模型做评委
- 多模型交叉评测,取综合结果
- 制定详细的打分标准和示例,减少主观偏差
- 人工抽检校准,调整打分prompt
任务成功率上不去,一般从哪些方向排查?
- 先看工具描述是否清晰,模型是否理解工具能力
- 再看规划能力,任务拆解是否合理
- 再看异常处理,遇到错误是否能自我修正
- 最后看记忆和上下文是否完整
模块九 实战场景与设计题
核心题1:Agent陷入死循环怎么检测和处理?
背诵要点
- 检测:最大步数硬限制、相同工具相同参数重复调用检测、无进展状态检测
- 处理:触发自我反思重新规划、注入提示引导更换方法、强制终止转人工、记录bad case优化
核心题2:设计一个自动数据分析Agent,核心架构是什么?
背诵要点
五层架构:
- 交互层:自然语言接收需求,流式返回过程结果
- 规划层:拆解为数据提取、清洗、分析、可视化子步骤
- 工具层:SQL查询、Python代码沙箱、图表生成、文件导出
- 记忆层:保存分析上下文、历史经验、数据元信息
- 安全层:数据权限过滤、代码沙箱隔离、高危操作人工确认
高频追问
从零搭建企业级Agent平台,整体架构怎么设计?
- 接入层:API网关、鉴权、限流、SSE流式输出
- 编排层:Agent运行时、状态管理、工具调度、工作流引擎
- 能力层:模型网关、向量检索、工具市场、记忆服务
- 基建层:消息队列、缓存、数据库、可观测、权限系统
- 运营层:评估体系、反馈闭环、Prompt管理、数据分析
Agent怎么和现有业务系统集成?有哪些难点?
- 集成方式:API对接、数据库对接、前端嵌入、MCP标准协议接入
- 难点:权限体系打通、数据安全、业务系统稳定性影响、旧系统无API
- 原则:低侵入、可降级、可审计、不影响主业务流程