Skip to content

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

生成时间:2026-06-12 11:55 适用岗位:AI应用开发工程师(1-3年经验)


【面试题】1. 你在项目中是如何设计Agent的工具调用机制的?遇到过哪些坑? ​

【标准答案】我通常采用"工具注册+描述驱动"的模式。具体做法是:把每个工具封装成函数,用JSON Schema定义入参和出参,然后通过function calling让模型理解工具用途。

遇到过三个典型问题:第一是工具描述不够精确,模型会乱传参数,后来改成每个参数都写清楚"枚举值范围+必填标识+默认值";第二是工具数量过多导致token爆炸,我做了工具分级,先根据意图筛选相关工具再传给模型;第三是工具执行超时没处理,现在每个工具调用都有超时熔断和重试机制。

实际落地时,建议一个Agent控制在5-10个工具以内,复杂场景拆成多个Agent协作。


【面试题】2. 设计一个智能客服Agent,你会怎么规划记忆系统? ​

【标准答案】记忆分三层:短期记忆、会话记忆、长期知识库。

短期记忆就是当前对话上下文,用滑动窗口控制token,保留最近10轮左右。会话记忆用向量数据库存历史对话摘要,用户回来时能快速恢复上下文。长期知识库存产品文档、FAQ,用RAG检索。

关键是记忆的"写入"和"召回"策略。写入时:只在对话结束时提炼关键信息(用户画像、问题类型、解决方案),不存废话。召回时:先根据当前问题做语义检索,再把相关记忆注入prompt。

我之前做过一个售后客服,用户画像(设备型号、购买时间、历史投诉)放在Redis里高频访问,对话历史放向量库。这样既快又准。


【面试题】3. LangChain和Dify在Agent开发上有什么本质区别?什么时候选哪个? ​

【标准答案】LangChain是代码框架,灵活度高但学习成本大,适合定制化需求强、有工程能力的团队。Dify是低代码平台,可视化拖拽配置,适合快速验证和业务人员参与的场景。

选型看三点:团队技术栈、需求定制程度、交付周期。如果要做复杂的工具链编排、自定义规划算法、深度集成现有系统,选LangChain。如果是内部知识库问答、内容生成、快速MVP,Dify一周就能上线。

我见过很多团队一上来就LangChain,结果开发两个月还没跑通闭环。我的建议是:先用Dify验证需求,跑通后再评估要不要迁移到代码框架。


【面试题】4. 多Agent协作系统中,怎么解决Agent之间的冲突和重复工作? ​

【标准答案】核心是"职责清晰+协调机制"。我习惯用三种模式:

第一种是层级式,一个主Agent负责任务拆解和分配,其他Agent只负责执行,结果汇总回来统一决策。第二种是对话式,Agent之间通过消息传递协作,有个"黑名单机制"防止死循环(比如两个Agent互相踢皮球)。第三种是竞争式,多个Agent同时出方案,由评估Agent打分选最优。

冲突处理上,我会给每个Agent设"能力边界",在prompt里明确告诉它"哪些问题该转发给其他Agent"。同时有个全局状态管理,记录谁在处理什么任务,避免多人抢同一个活。

实际项目中,协作超过5个Agent就很乱了,建议控制规模,或者引入专门的协调Agent。


【面试题】5. 你们线上Agent出过最严重的生产事故是什么?怎么处理的? ​

【标准答案】(可以说一个真实案例)我们之前有个内容审核Agent,上线后突然开始批量通过违规内容。排查发现是模型版本升级后,原来的prompt在新版本上"理解偏了",把"优先保证审核效率"理解成"放宽审核标准"。

事后做了三件事:第一,建立了prompt版本管理和模型版本绑定机制,换模型必须回归测试。第二,加了安全兜底层,关键输出过一道规则引擎和关键词过滤。第三,做了实时监控,审核通过率异常波动自动告警。

这个事故让我学到:LLM不是传统软件,"代码没改"不代表"行为不变"。上线后必须有兜底方案和监控,不能完全信任模型。


【面试题】6. 用户问"帮我订一张明天去上海的机票",Agent应该怎么规划执行流程? ​

【标准答案】这个需求看起来简单,实际涉及任务拆解、信息补全、工具编排。

第一步是意图识别和槽位填充:出发地是哪?具体时间?航空公司偏好?这些信息不全,Agent要先追问用户。

第二步是任务规划:查询航班 → 筛选符合条件的 → 展示给用户选择 → 确认后调用订票接口 → 返回订单信息。

第三步是异常处理:查询失败怎么办?接口超时怎么办?用户中途改主意怎么办?

实际落地时,我会把流程拆成多个状态机节点,每个节点有明确的输入输出和错误处理。追问环节用对话式交互,订票环节用表单确认。关键是要给用户"可控感",不能AI直接就下单了,要让人确认。


【面试题】7. RAG系统中,检索质量差怎么优化? ​

【标准答案】检索质量差通常有三个原因:切分策略不合理、embedding模型不匹配、检索逻辑太单一。

切分策略:纯按字数切分会把语义割裂。我改成了"按段落+标题层级"切分,每个chunk带上下文摘要,检索时更准。重叠窗口也加上,避免边界信息丢失。

Embedding模型:通用模型在专业领域效果差,我们换成了领域微调的模型,或者用BGE这种中文优化的模型。

检索逻辑:不能只用向量检索。我会加关键词检索做召回,然后用BM25+向量分数做混合排序,最后用LLM重排精选Top3。还可以加"元数据过滤",比如用户问产品价格,就只检索价格相关的文档块。

还有个技巧:用户query太短时,先用LLM改写成更完整的检索语句,召回率能提升20%以上。


【面试题】8. Agent的prompt怎么设计才能稳定输出结构化数据? ​

【标准答案】三个关键点:输出格式明确、示例引导、校验兜底。

格式明确:直接在prompt里写"请严格按照以下JSON格式输出",把schema贴进去,每个字段说明清楚。不要说"输出一个对象"这种模糊描述。

示例引导:给2-3个标准示例,模型更容易模仿。但要注意示例不能和实际任务太像,否则模型会直接抄答案。

校验兜底:模型输出后一定要做格式校验。我通常用Pydantic做schema校验,失败就触发重试或走降级逻辑。有些团队用"让模型自己修输出"的方法,我实测不稳定,不如直接重试。

另外,temperature设到0-0.3之间,太高输出会飘。如果数据结构复杂,可以让模型分步输出,每步校验,而不是一次吐完。


【面试题】9. 如何评估一个Agent系统的效果?有哪些关键指标? ​

【标准答案】评估分三个维度:任务完成率、过程质量、用户体验。

任务完成率是最核心的:用户交给Agent的任务,最终有多少成功完成?这个要按业务场景定义,比如客服场景看"问题解决率",订票场景看"订单成功率"。

过程质量看:工具调用准确率(有没有调错工具)、追问合理性(该问的问了没)、错误恢复能力(出问题能不能自动修复)。这些需要人工抽样评估或设计自动化测试用例。

用户体验指标:响应时长、对话轮数、用户满意度评分。对话轮数不是越少越好,要看"信息获取效率",该问的问清楚,不该问的别废话。

实际落地时,我会先跑一批golden dataset(标注好的测试集),看准确率和召回率。上线后埋点监控,定期做bad case分析迭代。


【面试题】10. 假如你是技术负责人,要从0到1搭建一个企业级Agent平台,你会怎么规划? ​

【标准答案】分四个阶段:MVP验证、能力沉淀、平台化、生态化。

MVP阶段(1-2个月):选一个高频场景(比如内部知识问答或合同审核),用Dify或LangChain快速搭出原型,跑通数据闭环。这个阶段重点是验证需求和ROI,不要追求完美。

能力沉淀(2-3个月):抽象出通用组件——统一的LLM网关、工具注册中心、向量库管理、对话状态管理。每个组件都做好监控和日志,为后续扩展打基础。

平台化(3-6个月):做Agent编排平台,让非技术人员也能配置简单Agent。加上权限管理、成本控制、效果评估工具,支持多业务线接入。

生态化(6个月+):开放工具市场、Agent模板库,让业务团队自己造Agent。技术团队只负责平台能力和底层治理。

关键原则:每个阶段都有业务价值产出,不要憋大招。先在一个场景打透,再横向复制。技术债要控制,但不追求一开始就完美架构。


知识点覆盖:

  • 技术基础:工具调用、Prompt工程、记忆系统
  • 架构设计:多Agent协作、RAG系统、任务规划
  • 项目落地:生产事故处理、效果评估、从0到1规划
  • 场景实操:智能客服、机票预订、内容审核
  • 框架对比:LangChain vs Dify

说明: 本套题目聚焦实战场景,答案采用口语化表达,适合面试现场作答。每道题都有明确的回答框架和实际案例支撑。