Skip to content

AI智能体应用开发面试题 ​

生成时间:2026-06-15 22:25


【面试题】1. 你怎么处理大模型的"幻觉"问题?线上生产环境必须保证准确性,你有哪些实战手段? ​

【标准答案】多措并举:

  1. 提示词层面:Few-shot示例、Chain-of-Thought引导、结构化输出约束JSON格式
  2. RAG增强:用检索结果做context,让模型"照着材料回答",减少凭空编造
  3. 答案校验:对关键字段用小模型单独校验,或让大模型自评置信度
  4. 后处理规则:正则匹配、实体识别过滤不合规内容
  5. 工程兜底:不确定时返回"我无法确定",而不是瞎编,配合人工复审流程

核心思路是:模型能答的让它答,答不准的用检索,检索不到就坦白。


【面试题】2. CrewAI和LangChain Agent都能做多智能体,它们各自适合什么场景?你怎么选? ​

【标准答案】看团队技术栈和项目阶段:

CrewAI:适合快速落地,声明式配置,角色+任务+流程很直观。业务逻辑主导、流程固定、迭代快的项目用它省心。

LangChain Agent:适合定制化强、需要深度控制工具链、复杂条件判断的场景。技术团队强、需要跟现有系统深度集成的选它。

选型口诀:业务驱动选CrewAI,技术深度选LangChain。小团队MVP用CrewAI提速,大厂深度定制用LangChain。


【面试题】3. RAG系统召回阶段效果差,召回的文档相关性不高,你怎么排查和优化? ​

【标准答案】排查链路按优先级来:

  1. 向量化问题:检查embedding模型是否适合你的领域(通用模型 vs 垂直领域模型),用BGE-M3或者针对行业的模型

  2. 分块策略:块太大引入噪声,块太小丢失上下文。试试128-256token动态分块,加上句子级别的重叠

  3. 索引结构:HNSW vs IVF-PQ,大数据量用量化压缩,小数据量保证召回率优先

  4. 查询改写:用户query和文档表述可能不同,用query改写/意图扩展/同义词扩充

  5. 混合检索:BM25关键词 + 向量语义双路召回,RRF融合权重

  6. 重排模型:召回20条,用Cross-Encoder重排取Top5送LLM


【面试题】4. 设计一个Agent的记忆系统,需要持久化哪些信息?怎么避免记忆膨胀? ​

【标准答案】三层记忆架构:

  1. 短期记忆(Buffer):当前对话上下文,窗口内全量保留
  2. 中期记忆(Summary):对话结束后用LLM摘要关键信息,存储结构化数据(用户偏好、任务进展、关键决策)
  3. 长期记忆(Vector/Graph):历史任务经验、常用工具模式,语义检索复用

防膨胀策略:

  • 摘要而非全量存储,控制每个记忆节点在200字以内
  • 基于时间衰减,长期未访问的记忆降低权重或归档
  • 记忆分层,只保留"有价值"的总结,避免流水账
  • 定期压缩合并相似记忆,减少冗余

【面试题】5. 多模态Agent怎么把图片理解能力集成进来?遇到过图片解析失败的情况怎么处理? ​

【标准答案】集成路径:

  1. API层面:GPT-4V/Claude Vision/国产通义千问VL,直接多模态输入
  2. 本地方案:LLaVA、Qwen-VL等开源模型私有部署
  3. 图片预处理:压缩到模型支持的分辨率和格式,减少token开销

解析失败兜底:

  • 超时处理:设置5-10秒超时,降级为"图片解析超时,请稍后重试"
  • 格式异常:用Pillow/Python做格式校验和预处理
  • 内容过滤:涉黄涉暴图片直接拒绝返回"暂不支持该类型图片"
  • 降级方案:图片转文字OCR描述、提取EXIF信息等基础信息返回

【面试题】6. Dify工作流编排怎么实现条件分支和循环?你在项目中用过哪些高级编排技巧? ​

【标准答案】Dify核心节点用法:

条件分支:用LLM判断节点或条件判断节点,根据输出字段(如intent、category)路由到不同分支

循环:LLM节点+模板节点组合,或用迭代节点处理列表数据

高级技巧:

  • 并行分支:提升整体效率,不互相依赖的节点并行执行
  • 模板变量:统一Prompt结构,减少重复配置
  • 缓存机制:相同输入的RAG查询结果缓存,减少重复调用
  • 异常捕获:节点级别设置失败处理分支,保证流程不中断
  • 子工作流:高频复用逻辑封装成子流程,主流程调用

【面试题】7. 面试官问:"你这个RAG项目,线上召回率是多少?怎么评估的?" ​

【标准答案】实操回答模板:

"线上召回率Top3达到85%左右,Top5在92%。评估指标用了两组:

离线评估:自己标注了500条query-doc对,用Recall@K、MRR、NDCG衡量,配合RAGAS框架评估答案质量

在线监控:用户点击反馈、问题转人工率、答案满意度打分

关键优化点是加了重排模型,Top3召回从78%提升到85%,代价是延迟增加30ms,在可接受范围内。"


【面试题】8. 向量数据库你们用的什么?Milvus、Pinecone、Chroma各有什么优劣?如何选型? ​

【标准答案】按场景选:

数据库优势劣势适用场景
Chroma轻量、单机、易上手不支持水平扩展POC、Demo、小数据量
Milvus开源、可扩展、支持混合检索运维成本高中大型项目、需要私有化
Pinecone托管免运维、全球CDN收费、数据出境合规快速上线、预算充足

选型原则:数据量<100万用Chroma快速验证;>100万或需要私有化用Milvus;追求免运维快速上线用Pinecone。


【面试题】9. Agent任务规划失败了怎么办?你怎么设计重试和容错机制? ​

【标准答案】分级容错策略:

  1. 单步失败重试:API超时、网络抖动等情况,指数退避重试3次,间隔2s/4s/8s
  2. 规划失败回退:Plan-Execute模式中,当前步骤失败则回退到上一步,用更保守的策略重试
  3. 降级执行:多智能体模式下,某个Agent挂了切换到备选Agent或降级为单Agent串行执行
  4. 任务放弃:超过最大重试次数,记录错误日志,人工告警,主动告知用户"任务处理遇到问题"
  5. 断点续传:复杂任务定期保存checkpoint,异常后从最近checkpoint恢复

核心原则是:不要让Agent死循环重试,设置明确的失败上限和兜底方案。


【面试题】10. 如果让你从0到1搭建一个企业级AI客服Agent,架构怎么设计?关键里程碑是什么? ​

【标准答案】三阶段架构:

Phase 1 - 核心链路(第1-2周)

  • 单Agent对话架构,LLM+意图识别+知识库检索
  • 基础对话流程:用户query → 意图分类 → RAG召回 → 生成回答 → 话术质检
  • 接入1-2个高频场景验证

Phase 2 - 能力扩展(第3-4周)

  • 多意图处理、对话记忆、上下文继承
  • 接入工单系统、CRM等业务系统API
  • 上线人工接管机制,不确定的转人工

Phase 3 - 持续优化(第5周+)

  • 数据埋点:对话日志、用户反馈、解决率指标
  • 模型微调:用线上数据优化垂直领域效果
  • 监控告警:异常对话、超时、失败率监控

关键技术点:对话状态管理(用Redis)、限流熔断(防止LLM滥用)、审计日志(合规要求)。