AI智能体应用开发面试题
生成时间:2026-06-15 22:25
【面试题】1. 你怎么处理大模型的"幻觉"问题?线上生产环境必须保证准确性,你有哪些实战手段?
【标准答案】多措并举:
- 提示词层面:Few-shot示例、Chain-of-Thought引导、结构化输出约束JSON格式
- RAG增强:用检索结果做context,让模型"照着材料回答",减少凭空编造
- 答案校验:对关键字段用小模型单独校验,或让大模型自评置信度
- 后处理规则:正则匹配、实体识别过滤不合规内容
- 工程兜底:不确定时返回"我无法确定",而不是瞎编,配合人工复审流程
核心思路是:模型能答的让它答,答不准的用检索,检索不到就坦白。
【面试题】2. CrewAI和LangChain Agent都能做多智能体,它们各自适合什么场景?你怎么选?
【标准答案】看团队技术栈和项目阶段:
CrewAI:适合快速落地,声明式配置,角色+任务+流程很直观。业务逻辑主导、流程固定、迭代快的项目用它省心。
LangChain Agent:适合定制化强、需要深度控制工具链、复杂条件判断的场景。技术团队强、需要跟现有系统深度集成的选它。
选型口诀:业务驱动选CrewAI,技术深度选LangChain。小团队MVP用CrewAI提速,大厂深度定制用LangChain。
【面试题】3. RAG系统召回阶段效果差,召回的文档相关性不高,你怎么排查和优化?
【标准答案】排查链路按优先级来:
向量化问题:检查embedding模型是否适合你的领域(通用模型 vs 垂直领域模型),用BGE-M3或者针对行业的模型
分块策略:块太大引入噪声,块太小丢失上下文。试试128-256token动态分块,加上句子级别的重叠
索引结构:HNSW vs IVF-PQ,大数据量用量化压缩,小数据量保证召回率优先
查询改写:用户query和文档表述可能不同,用query改写/意图扩展/同义词扩充
混合检索:BM25关键词 + 向量语义双路召回,RRF融合权重
重排模型:召回20条,用Cross-Encoder重排取Top5送LLM
【面试题】4. 设计一个Agent的记忆系统,需要持久化哪些信息?怎么避免记忆膨胀?
【标准答案】三层记忆架构:
- 短期记忆(Buffer):当前对话上下文,窗口内全量保留
- 中期记忆(Summary):对话结束后用LLM摘要关键信息,存储结构化数据(用户偏好、任务进展、关键决策)
- 长期记忆(Vector/Graph):历史任务经验、常用工具模式,语义检索复用
防膨胀策略:
- 摘要而非全量存储,控制每个记忆节点在200字以内
- 基于时间衰减,长期未访问的记忆降低权重或归档
- 记忆分层,只保留"有价值"的总结,避免流水账
- 定期压缩合并相似记忆,减少冗余
【面试题】5. 多模态Agent怎么把图片理解能力集成进来?遇到过图片解析失败的情况怎么处理?
【标准答案】集成路径:
- API层面:GPT-4V/Claude Vision/国产通义千问VL,直接多模态输入
- 本地方案:LLaVA、Qwen-VL等开源模型私有部署
- 图片预处理:压缩到模型支持的分辨率和格式,减少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任务规划失败了怎么办?你怎么设计重试和容错机制?
【标准答案】分级容错策略:
- 单步失败重试:API超时、网络抖动等情况,指数退避重试3次,间隔2s/4s/8s
- 规划失败回退:Plan-Execute模式中,当前步骤失败则回退到上一步,用更保守的策略重试
- 降级执行:多智能体模式下,某个Agent挂了切换到备选Agent或降级为单Agent串行执行
- 任务放弃:超过最大重试次数,记录错误日志,人工告警,主动告知用户"任务处理遇到问题"
- 断点续传:复杂任务定期保存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滥用)、审计日志(合规要求)。