Skip to content

AI智能体应用开发面试题 · 2026-06-15 ​


【面试题】1. 你在项目中怎么判断什么时候该用单智能体、什么时候该用多智能体? ​

【标准答案】看任务复杂度。单智能体适合流程固定、工具链清晰的场景,比如客服问答、文档摘要,执行快、调试简单。多智能体适合需要角色分工、并行处理、或者任务有天然边界的场景,比如一个负责查资料、一个负责生成、一个负责审核。核心判断标准就是:一个Agent能不能独立闭环,如果不能就拆。我一般先跑单Agent验证MVP,碰到瓶颈了再拆,避免过度设计。


【面试题】2. Dify和CrewAI对比,你觉得各自适合什么场景? ​

【标准答案】Dify偏向低代码/可视化,适合产品、运营快速搭原型,对接工作流、NLP流程很直观,但深度定制要写插件,上限不如代码框架。CrewAI适合多角色协作场景,任务拆解清晰,角色定义简单直接,代码量少但逻辑强。个人建议:如果团队有开发能力、追求灵活性,用CrewAI;如果给业务方提供平台能力,用Dify。两个不互斥,Dify做前端编排,CrewAI做复杂逻辑执行。


【面试题】3. 解释一下LangChain的Agent和Tool有什么区别,为什么需要这种分离设计? ​

【标准答案】Tool是能力单元,比如搜索、计算、查数据库,每个Tool做一件具体的事。Agent是调度大脑,负责理解任务、决定用哪个Tool、按什么顺序用、结果怎么处理。分离的好处是解耦和复用——同一个Tool可以被不同Agent调用,同一个Agent可以灵活组合不同Tool链。类比一下:Tool是工具箱里的螺丝刀、锤子,Agent是知道什么时候用什么工具的人。


【面试题】4. 你们的RAG系统召回效果不好,怎么排查和优化? ​

【标准答案】先看召回率指标,定位是检索问题还是生成问题。排查链路:查query改写是否正确 → 查embedding模型和知识库领域是否匹配 → 查chunk策略是否合理(太大或太小都不行)→ 查向量数据库的索引参数。如果这些都OK,试试混合检索(向量+关键词),或者加一层rerank重新排序。实际项目里我们用过Cohere rerank提升Top5准确率10%以上。另外,知识库内容质量往往是被忽视的根源——脏数据、重复内容喂进去,再好的RAG也白搭。


【面试题】5. 智能体的"记忆系统"一般怎么设计? ​

【标准答案】分三层:短期记忆用对话上下文;长期记忆用向量数据库存关键经历、偏好、结论,检索时作为参考;工作记忆是当前任务执行过程中的临时状态。核心点是记忆要可检索、可写入、可遗忘。我会用向量数据库存历史交互记录,检索时取Top-K最相关的;定期把对话精华写入长期记忆;对话窗口控制成本。另外注意隐私,该脱敏的脱敏,别把敏感信息全塞进记忆里。


【面试题】6. 如果LLM的输出不稳定,经常出现幻觉,你们是怎么处理的? ​

【标准答案】多招组合:先用Few-shot示例约束输出格式;加输出校验层,让模型自我检查或用规则校验;重要场景加人工审核节点。架构上,幻觉没法根除,只能降低概率。提示词层面用确定性语言、限制生成长度;后处理层正则提取关键字段;高风险场景走人工复核。另外选择幻觉率低的模型也很关键,这个要在选型阶段就测清楚。


【面试题】7. 讲一个你从0到1落地Agent项目的完整流程 ​

【标准答案】六步走:需求拆解(判断能不能用Agent做,边界在哪)→ 技术选型(单还是多、用什么框架)→ 数据准备(知识库、工具链)→ 原型验证(快速跑通核心链路)→ 工程优化(容错、并发、监控)→ 上线迭代(看日志、调提示词、补case)。关键点是不要一上来就想做完美,先跑通再迭代。我一般两周出MVP,上线后再根据用户反馈持续优化prompt和工具。


【面试题】8. 多智能体协作时出现冲突或死循环,怎么处理? ​

【标准答案】设计阶段就预置冲突仲裁机制:比如定义优先级,或者用一个主Agent当协调者来决定执行顺序。死循环一般是因为Agent互相等待或任务分配不清,解决方案是加超时+最大重试次数,超限就中断或降级到人工。还有个经验是给每个Agent明确的终止条件,不要让它自己判断该不该停。调试阶段我会加详细的日志和状态追踪,出了问题能快速定位是哪个Agent在哪一步卡住了。


【面试题】9. 大模型API调用怎么控制成本? ​

【标准答案】几个常用手段:上下文压缩,不需要全量历史时只传相关片段;小模型优先,简单任务用GPT-4o-mini或Claude-haiku,省80%成本;缓存重复请求,相同query直接返回结果;批量处理,积攒一批请求一起发。另外监控每个任务的token消耗,设置预算告警。上线前我会做一次完整压测,算清楚每千次调用的成本,再决定要不要上。


【面试题】10. 面试官问:"你觉得AI Agent和传统软件最大的区别是什么?"你怎么答? ​

【标准答案】最大区别是不确定性和执行边界。传统软件输入输出是确定的,bug可复现。Agent的输出有概率性,同样的输入可能产生不同结果,所以要做好容错和监控。另外传统软件是人定义流程,Agent是模型决定下一步,可解释性变差了。核心能力也不一样——传统软件靠写代码,Agent靠写提示词。这带来一个新问题:你能不能用好prompt和工具链,成了开发Agent的核心竞争力,而不是写多少行代码。