Skip to content

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

生成时间:2026-06-15 23:30


【面试题】1. LangChain的Chain和LCEL(LangChain Expression Language)有什么本质区别?为什么要推出LCEL? ​

【标准答案】Chain是类封装,继承BaseChain,适合固定流程的链路,但扩展和组合不够灵活。LCEL是声明式语法,用管道符|串联组件,底层自动处理批次、异步、流式输出,代码更简洁,调试更方便。LCEL推出的核心原因是解决Chain的"重"问题——写一个简单链路要定义类、实现方法,LCEL一行代码就能跑。实际项目中,简单场景用LCEL快速串联,复杂逻辑再用RunnableBranch做分支判断,灵活性更高。


【面试题】2. 多智能体系统中,如何防止某个Agent"越权"执行不该执行的操作? ​

【标准答案】三道防线。第一道是工具白名单,每个Agent只暴露它职责范围内的工具,主Agent调度时严格限制工具可见性。第二道是权限校验层,在工具执行前插入校验逻辑,检查当前Agent是否有权限调用该工具,没有就直接返回错误。第三道是输出审核,Agent生成的内容在发给用户或下游前,过一个安全检查模块,防止越权操作的输出落地。我实际做的是在工具层封装权限装饰器,每次调用都记录Agent ID和操作类型,审计日志留存。


【面试题】3. 请解释Agent中的"幻觉"问题,以及在工具调用场景下如何降低幻觉的影响? ​

【标准答案】幻觉是模型生成与事实不符或编造信息,在Agent场景特别危险——可能调用错误的工具、传错误的参数。降低方法有四招:第一,工具描述要足够精确,不留给模型"猜测空间";第二,强制结构化输出,用JSON Schema约束参数格式,格式错误直接拒绝;第三,关键参数用校验器检查,比如日期格式、ID范围,不合法就返回错误让模型重试;第四,执行结果加验证环节,比如数据库操作后查询确认,不是调完就信。最关键的是:永远不要100%信任模型输出,关键操作必须有人工确认或二次验证。


【面试题】4. 如果让你设计一个支持长文档处理的Agent,你会如何架构? ​

【标准答案】分层处理。第一层是预处理,长文档切分成语义段落,每段生成摘要和向量,存进向量库建立索引。第二层是检索层,用户问题先向量化,在向量库里召回相关段落,同时用BM25补充关键词召回,混合检索提高覆盖。第三层是压缩层,把召回的段落再精简,用LLM做上下文压缩,控制Prompt长度。第四层是回答层,如果问题复杂就拆成子问题,多次检索再汇总。关键点:不要试图把全文塞进Prompt,检索质量决定回答质量,预处理做好了后面都顺。


【面试题】5. 请对比LangGraph和AutoGPT在设计理念上的差异,各自适合什么项目? ​

【标准答案】LangGraph是"显式状态机",用图结构定义节点和边,每一步的状态转换都是确定的,适合有明确流程的业务,比如客服工单流转、审批流程。AutoGPT是"自主探索",给一个目标后自己规划、执行、反思,适合开放式任务,比如调研报告生成、竞品分析。选LangGraph的场景:业务流程清晰、需要人工介入点、对可解释性要求高。选AutoGPT的场景:探索性任务、对结果要求不严格、能接受多轮迭代。我一般推荐LangGraph,可控性更强,AutoGPT在生产环境容易跑飞。


【面试题】6. Agent上线后,如何设计监控指标来发现模型性能退化或异常? ​

【标准答案】三类核心指标。第一类是调用指标:成功率、平均延迟、Token消耗、重试次数,这些直接反映服务健康度。第二类是业务指标:用户满意度评分、任务完成率、转人工率、负面反馈占比,这些反映Agent实际效果。第三类是内容指标:通过采样检查输出质量,可以设置规则(如输出长度异常、敏感词触发)或用另一个LLM做自动化评估。监控告警设置建议:成功率低于95%立即告警,平均延迟超过阈值预警,负面反馈率连续升高触发人工review。关键是要有基线数据,上线第一周先建立baseline,后续对比才有意义。


【面试题】7. 如何在Agent中实现"用户意图理解"和"槽位填充"的协同工作? ​

【标准答案】分两阶段处理。第一阶段是意图识别,用分类模型或LLM判断用户核心诉求,输出意图标签。第二阶段是槽位填充,根据意图对应的槽位定义,从对话中抽取关键信息。协同设计上,我推荐"渐进式填充":先识别意图,然后检查槽位是否完整,缺失的槽位生成追问Prompt引导用户补充,槽位齐了才进执行环节。技术实现上,用一个统一的Prompt让LLM同时输出意图和已识别槽位,减少调用次数。槽位用字典结构管理,每个槽位定义类型、是否必填、追问话术,代码层面解耦,方便后续扩展新意图。


【面试题】8. 面试官问:"你做过最有挑战的Agent项目是什么?遇到过什么坑?" ​

【标准答案】我做过一个多Agent协作的销售助手项目,三个Agent分别负责客户问题解答、产品推荐、订单查询。最大的坑是Agent间信息同步——推荐Agent不知道订单Agent查到的库存信息,导致推荐了缺货产品。解决方案是引入共享状态存储,每个Agent执行完都把关键信息写进去,其他Agent决策前先读取相关状态。第二个坑是主Agent任务分发逻辑复杂,经常分错。后来我改用LangGraph显式定义路由,每个分支用条件判断而不是靠Prompt决策,准确率从70%提到95%。最大的教训:复杂协作场景,不要相信Prompt能搞定一切,显式代码逻辑更靠谱。


【面试题】9. RAG系统中,如果检索到的文档和用户问题相关性都不高,应该如何处理? ​

【标准答案】三层兜底。第一层是阈值判断,检索相似度低于设定阈值(比如0.3)直接触发"无相关内容"分支,不强行回答。第二层是澄清追问,让Agent反问用户"您是想了解XX还是YY?",通过对话收窄问题范围再检索。第三层是降级策略,转接知识库FAQ、搜索引擎补充或转人工客服。实操中我会设置两级阈值:高置信度直接回答,中置信度给参考答案并标注"供参考",低置信度触发澄清或降级。核心原则是:宁愿承认不知道,也不要编造答案误导用户。


【面试题】10. 如何评估一个Agent项目的ROI(投资回报率),向老板汇报时用什么数据说话? ​

【标准答案】三个维度量化。第一个是人力节省,统计Agent处理的对话量,按人工客服成本计算节省金额,比如"每月处理1万次对话,相当于3个客服的工作量,节省人力成本15万/月"。第二个是效率提升,对比人工处理和Agent处理的平均时长,比如"查询类问题从平均5分钟降到30秒"。第三个是业务指标变化,比如"Agent上线后客户满意度提升10%,转人工率下降20%"。汇报时建议三步走:先说业务效果(用户反馈好),再说效率数据(响应快),最后算经济账(省了多少钱)。关键是要有上线前的baseline数据做对比,没有对比就没有说服力。


知识点覆盖:

  • 技术基础:LCEL、幻觉问题
  • 架构设计:长文档处理架构、权限控制
  • 框架对比:LangGraph vs AutoGPT
  • 工具使用:意图识别与槽位填充
  • 项目落地:最有挑战项目
  • 运维监控:监控指标设计
  • RAG进阶:低相关性处理
  • ROI评估:项目价值量化