AI智能体应用开发面试题
生成时间:2026-06-12 02:50
【面试题】1. 当Agent调用工具返回错误时,你的容错策略是什么?
【标准答案】分层处理:第一层重试3次(指数退避),第二层降级方案(换工具或跳过),第三层优雅反馈用户并记录日志。关键是不让单点失败搞崩整个任务链路,我会用状态机管理执行状态,每步都留好checkpoint。
【面试题】2. 多Agent协作时如何避免"死锁"或"活锁"?
【标准答案】三种方案:一是设超时机制,Agent等待超过阈值自动释放;二是引入仲裁者/中央调度,决策权集中;三是用消息队列做异步通信,避免同步阻塞。实际项目里我会组合用:超时+降级+人工兜底。核心是让系统永远有出路,不会卡死在某个状态。
【面试题】3. Dify和CrewAI在多Agent编排上的核心差异是什么?
【标准答案】Dify偏可视化低代码,适合业务流程固定、运营人员参与的C端场景,编排门槛低但定制化受限。CrewAI是代码优先,角色+任务的声明式设计,适合技术团队快速迭代实验场景。选型逻辑:非技术团队用Dify,技术团队追求灵活性用CrewAI。我项目里后端用CrewAI前端用Dify,两层编排。
【面试题】4. 怎么做Agent的长期记忆优化?上下文太长怎么提速?
【标准答案】三层记忆架构:工作记忆(当前任务上下文)、情景记忆(最近重要交互摘要,用向量压缩)、长期记忆(持久化知识+经验)。上下文太长时,用语义切片+层级摘要,优先保留最近和最相关的内容。实测技巧:对历史对话做主题聚类,每个类只保留核心摘要+关键结论,而不是全量存储。
【面试题】5. 解释一下Function Calling和Tool Use的区别,以及实际选型建议
【标准答案】Function Calling是模型原生能力,结构化输出+强类型校验,适合确定性高的工具(查天气、搜文档)。Tool Use是更宽泛的概念,包含自定义插件、API适配、动态发现等,适合复杂或非标准化的外部系统。实操建议:简单CRUD用Function Calling,复杂外部系统用Tool Use+Dify插件机制。
【面试题】6. RAG检索质量差的常见原因及排查思路?
【标准答案】六个高频原因:embedding模型与业务场景不匹配(比如用通用模型处理垂直领域)、chunk大小不合理(过大噪声多,过小丢失上下文)、元信息丢失(分块后不知道来源)、向量数据库选型不当、检索策略单一(只做向量相似度)、重排环节缺失。排查顺序:先看召回率分布,再看topK相关性,最后加混合检索和重排验证提升。
【面试题】7. 如果让你从0设计一个客服Agent,核心模块有哪些?
【标准答案】五个核心模块:意图识别层(快速分类+路由)、对话管理(多轮状态+上下文注入)、工具层(查订单、退款操作、FAQ)、记忆层(会话+用户画像)、风控层(敏感词过滤+人工接管入口)。架构选型:意图识别用微调小模型保证速度和成本,工具调用用Function Calling,知识问答走RAG,系统解耦方便单独优化每个环节。
【面试题】8. Agent输出内容的安全对齐怎么做?
【标准答案】四层防护:输入侧做prompt注入检测+敏感词过滤,输出侧做内容审核+关键词替换,系统层做人设约束(system prompt边界定义),运营层建黑名单+反馈循环。技术实现上,用独立的Moderation API做二次校验,比单纯靠prompt约束靠谱。关键是对齐不是一次性的,是持续运营出来的。
【面试题】9. 多模态Agent怎么设计?图片和文本信息冲突时怎么融合决策?
【标准答案】两种融合策略:早期融合(原始特征拼接后统一编码)和晚期融合(各模态独立理解后加权决策)。实际落地用晚期融合更稳,图片描述+原文+结构化数据各走各的推理链,最后用Router做投票或优先级选择。冲突处理原则:信息互补时叠加,信息矛盾时按置信度加权或触发人工确认,不自作主张覆盖用户意图。
【面试题】10. 面试官问"你的Agent项目QPS多少?怎么优化的?"怎么答?
【标准答案】分三层答:模型层用流式输出+批处理减少TTFT,推理缓存命中重复query;架构层加Redis缓存高频意图+异步任务队列削峰;工程层用Kubernetes HPA弹性扩缩容+限流熔断保护。关键数据:我做的客服Agent日均10万对话,P99延迟从8秒压到1.2秒。优化心法:先找瓶颈点(profiling),优先优化性价比最高的环节,不是上来就换模型。