万字详解面试题库 - Agent篇
本文首发于同名众公号,完整版合集、面试题库、项目实战,全网同名【图解 AI 系列】
万字详解面试题库 - Agent篇
Agent是AI领域最热门的方向之一,也是面试高频考点。本文整理了18道Agent核心面试题,涵盖基础概念、ReAct/Function Calling原理、Multi-Agent协作、工程落地挑战、实际场景设计等,每道题都配有详细参考答案和延伸追问,帮助你系统掌握Agent技术栈。
题目一:什么是AI Agent,它和传统AI模型有什么区别
参考答案:
最简单的区别:传统模型是"问答机",Agent是"助理"。
传统模型你问一句它答一句,不会主动做事,也没有记忆,不能调用工具。Agent不一样,你给它一个目标,它会自己想办法完成,需要查资料就查,需要调API就调,需要写代码就写。
打个比方:传统模型像图书馆员,你问它答。Agent像私人助理,你说"帮我订明天去北京的高铁",它自己去查票、比较时间、确认信息、完成预订。
Agent有三个核心特征:自主性(自己决定下一步做什么)、反应性(能根据环境变化调整)、主动性(多步行动达成目标)。
现在面试中Agent考得越来越多,因为企业落地大模型基本都是做Agent系统,纯模型调用的场景反而少了。
延伸追问:
什么场景用Agent,什么场景传统模型就够了?简单的一次性问答用传统模型更轻量高效;需要多步骤执行、工具调用、跨系统操作的场景才需要Agent。
题目二:AI Agent的四大核心组件是什么
参考答案:
Agent系统有四个核心组件,形成一个闭环:
感知模块 - 负责接收外部信息,比如用户输入、工具返回结果、环境状态变化。
规划模块 - 核心是决策,决定下一步做什么。主要实现方式有ReAct(边想边做)和Plan-Execute-Replan(先规划后执行)。
记忆模块 - 分两种:短期记忆存当前对话上下文,通常用滑动窗口维护;长期记忆存跨会话的知识,通常存入向量数据库。
工具调用模块 - 与外部环境交互,调用API、查数据库、操作文件、执行代码。这是Agent区别于纯语言模型的关键能力。
四个组件形成闭环:感知获取信息 → 记忆提供上下文 → 规划制定策略 → 工具执行动作 → 执行结果反馈给感知,继续下一轮迭代。
延伸追问:
记忆模块的长期记忆怎么实现?用向量数据库,把需要记住的内容Embedding后存储,查询时用当前问题做向量检索,找到最相关的记忆片段返回给模型。
题目三:ReAct架构的原理是什么
参考答案:
ReAct是Reasoning(推理)+ Acting(行动)的缩写,谷歌2022年提出来的。
核心思想很简单:让模型交替进行推理和行动,形成"思考 → 行动 → 观察"的循环,直到任务完成。
具体实现用三个标签:
- Thought(思考):模型分析当前情况,决定下一步
- Action(行动):要执行的动作,调用什么工具、参数是什么
- Observation(观察):执行后的结果,反馈给模型继续思考
举个例子,用户问今天北京天气:
- Thought: 需要查询实时天气
- Action: call_weather_api(city=“北京”, date=“today”)
- Observation: {“weather”: “晴”, “temperature”: “28°C”}
- Thought: 已经获取到天气,可以回答了
- Answer: 今天北京天气晴,气温28°C
ReAct的优势是实现简单,Prompt里给几个示例就能跑,不需要额外训练,适合动态环境。缺点是缺乏全局规划能力,容易陷入局部最优,不适合需要复杂长期规划的任务。
延伸追问:
ReAct和Chain-of-Thought的区别?CoT只推理不行动,输出过程是思维链但没有外部工具调用。ReAct推理和行动结合,能通过工具获取外部信息,处理动态任务。
题目四:Plan-Execute-Replan是什么,和ReAct有什么区别
参考答案:
Plan-Execute-Replan分三个阶段:
Plan(规划) - 接到任务后,先用LLM把任务拆解成一系列子任务,形成执行计划。比如"写一份竞品分析报告"会被拆解为:搜索竞品信息 → 提取关键特性 → 对比分析 → 生成报告。
Execute(执行) - 按顺序执行每个子任务,每个子任务可以是工具调用、API请求、或者子Agent执行。
Replan(重新规划) - 执行过程中发现原计划不合适(步骤失败、环境变化、发现更优路径),就动态调整计划继续执行。
和ReAct的核心区别是规划方式:ReAct是边想边做,每步单独决策;Plan-Execute-Replan是先全局规划再执行。
实际对比:
| 维度 | ReAct | Plan-Execute-Replan |
|---|---|---|
| 规划方式 | 边想边做,每步单独决策 | 先全局规划再执行 |
| 灵活性 | 高,实时响应新信息 | 中,Replan有一定滞后 |
| 适用场景 | 动态交互、对话、网页浏览 | 复杂多步任务、数据分析、报告生成 |
实际应用中可以组合使用,复杂任务先用Plan-Execute-Replan做粗粒度规划,每个子任务再用ReAct做细粒度执行。
延伸追问:
实际应用中能不能组合使用?完全可以,也很常见。复杂任务先用Plan-Execute-Replan做粗粒度规划,每个子任务再用ReAct做细粒度执行。
题目五:Function Calling的工作原理是什么
参考答案:
Function Calling让模型能够自主调用外部工具,分五步:
- 定义工具 - 开发者用JSON Schema描述工具,包括工具名、功能说明、参数定义
- 传入模型 - 把工具描述作为参数传入API调用
- 模型决策 - 模型判断是否需要调用工具,需要就输出JSON格式的调用请求
- 执行工具 - 应用程序解析调用请求,执行对应函数
- 结果反馈 - 把执行结果传给模型,模型基于结果生成最终回复
关键在于"模型自主决策":模型自己判断什么时候调用、调用哪个工具、传什么参数,不是开发者写死的判断逻辑。
比如用户问"帮我查一下今天上海的天气",模型会自主输出:
{"name": "get_weather", "arguments": {"city": "上海", "date": "today"}}
这种自主性让Agent能够处理复杂的动态场景,但也需要做好参数校验和错误处理。
延伸追问:
如果模型选错工具或传了错误参数怎么办?Prompt工程优化工具描述、添加参数校验拦截非法调用、错误信息反馈让模型重试、关键操作增加用户确认环节。
题目六:AI Agent的反思机制是怎么实现的
参考答案:
反思机制让Agent能评估自己的行动效果,发现错误并自我改进,不需要人工干预。
两种主要实现方式:
Self-Refine(迭代式自我改进):
- 生成初始输出
- 对输出进行评估,找出问题
- 基于评估生成改进版本
- 循环直到达到质量标准或超过最大迭代次数
Reflexion(带记忆的反思):
- 把每次任务的反思结果存入长期记忆
- 下次遇到类似任务时,先检索历史反思,参考之前的经验教训
- 比Self-Refine更能积累经验,适合反复执行同类任务的Agent
反思的触发时机:工具调用失败后、任务执行超过预期步数后、用户明确反馈结果不满意时。
反思和规划是配合关系:规划是"向前看",决定接下来做什么;反思是"向后看",评估做得怎么样。两者结合才能形成持续改进的闭环。
延伸追问:
反思和规划有什么关系?规划是"向前看",决定接下来做什么;反思是"向后看",评估做得怎么样。两者结合才能形成持续改进的闭环。
题目七:如何保证Agent不会调用错误的工具或传递错误参数
参考答案:
三层保障机制:
预防层(事前):
- 工具描述要清晰准确,说明功能、参数格式、适用场景
- Few-shot Prompting:在Prompt里提供正确调用的示例
- 工具名称要有区分度,避免功能相似的工具名字太接近
校验层(事中):
- 参数类型检查:数字就是数字,字符串就是字符串
- 参数范围检查:日期格式、枚举值、必填项
- 不合法参数直接拒绝执行,返回清晰的错误信息
反馈层(事后):
- 执行失败时把错误信息完整返回给模型,让它重新规划
- 日志记录所有工具调用,分析失败模式,持续优化工具描述
- 关键高风险操作增加"确认机制",让用户确认后再执行
如果模型坚持调用不存在的工具,可以在Prompt里明确说只能使用提供的工具列表,解析阶段做白名单校验,只执行预定义的工具,非法调用直接拦截。
延伸追问:
如果模型坚持调用不存在的工具怎么办?在Prompt里明确说只能使用提供的工具列表,解析阶段做白名单校验,只执行预定义的工具,非法调用直接拦截。
题目八:Agent执行异常/失败了怎么处理
参考答案:
Agent执行过程中可能遇到各种异常,需要分类处理:
| 异常类型 | 处理方式 |
|---|---|
| 工具调用超时 | 指数退避重试,超过最大次数返回错误给模型重规划 |
| API返回错误码 | 区分临时错误(5xx重试)和业务错误(4xx不重试) |
| 结果不符合预期 | 校验规则检查,不符合让模型选择其他方案 |
| Agent进入循环 | 检测重复的Thought/Action模式,超过阈值强制退出 |
| 执行步数过多 | 设置最大步数上限,超出强制终止并告知用户 |
防止死循环的关键:设置最大迭代次数(通常10-20步)、检测重复模式(连续3步Thought相同认定陷入循环)、超时控制(整个任务设置全局超时)。
降级策略:主路径失败 → 备用方案(简化版工具或规则兜底)、关键异常 → 暂停执行通知用户介入、记录任务状态支持从断点恢复。
延伸追问:
指数退避是什么意思?第一次失败等1秒重试,第二次失败等2秒,第三次等4秒,以此类推,避免频繁重试打垮服务,但上限要设合理(通常不超过30秒)。
题目九:Multi-Agent系统有什么优势,主要挑战是什么
参考答案:
Multi-Agent系统让多个专用Agent协作完成复杂任务,有三个优势:
专业化分工 - 每个Agent针对特定任务优化,比一个大而全的Agent效果更好。比如代码Agent专注写代码,测试Agent专注写测试,Review Agent专注做代码审查。
模块化易维护 - 每个Agent独立开发、独立测试、独立部署,一个挂了不影响全局。
并行处理 - 多个Agent可以同时处理不同子任务,缩短整体执行时间。
但也面临三大挑战:
通信协调 - Agent之间怎么交换信息?消息格式怎么定义?
任务分配 - 复杂任务怎么拆解?分配给哪个Agent?
冲突解决 - 多个Agent结论不一致时怎么仲裁?
常见的协作架构:中心化(监督者模式,有一个主Agent负责协调)、去中心化(Agent之间点对点通信)、层级架构(上层Agent做规划,下层Agent做执行)。
LangGraph这类框架用图结构建模Agent关系,节点是Agent,边是执行流程,支持条件分支、循环、并行,很适合建模复杂的Multi-Agent协作工作流。
延伸追问:
LangGraph怎么帮助实现Multi-Agent?用图结构建模Agent关系,节点是Agent,边是执行流程,支持条件分支、循环、并行,很适合建模复杂的多Agent协作工作流。
题目十:AI Agent在实际落地中会遇到哪些问题
参考答案:
企业落地Agent面临四大挑战:
稳定性问题 - Agent可能出现无限循环、错误累积、工具调用失败等各种意外情况。解决方案是设计超时机制、最大步数限制、异常兜底路径,不能假设Agent永远按预期走。
安全性问题 - Agent有工具调用能力,一旦被恶意输入操控可能造成实际损失(删文件、发邮件、执行恶意代码)。必须做好权限控制、输入校验、高风险操作人工确认。
成本问题 - Agent通常需要多轮调用LLM,Token消耗是单次问答的数倍甚至数十倍。要优化Prompt长度、引入缓存、简单子任务用小模型。
可解释性问题 - Agent的决策过程不透明,出了问题很难定位。要记录完整的思考链路(每一步的Thought/Action/Observation),提供决策依据,支持人工干预和回滚。
解决这些挑战需要产品、技术、运营的紧密配合,不能单纯追求技术指标,要关注实际业务价值和风险控制。
延伸追问:
成本优化的具体手段?Prompt压缩去掉冗余、热门子任务缓存结果、简单判断用小模型路由、批量处理非实时任务。
题目十一:对话Agent怎么处理超出上下文窗口的长对话
参考答案:
长对话处理有三种主流方案:
方案一:滑动窗口 - 只保留最近N轮对话作为上下文,更早的内容直接丢弃。优点是实现简单,Token消耗可控;缺点是可能丢失重要的早期信息。
方案二:对话摘要压缩 - 定期(比如每10轮)用LLM对历史对话生成摘要,用摘要替代原始对话历史。优点是信息损失少,Token消耗可控;缺点是摘要本身可能有偏差。
方案三:关键信息结构化提取(推荐) - 从对话中提取关键实体和槽位(用户姓名、订单号、偏好等),结构化存储在单独的"用户档案"里,每次对话都带上这个档案。优点是核心信息永不丢失,Token开销小。
实际应用通常组合使用:最近5轮完整保留 + 更早的内容做摘要 + 关键信息结构化存档。
对话摘要生成可以用LLM提炼对话要点:讨论了什么主题、确定了什么信息、遗留了什么问题,保留关键实体,去除闲聊内容。
延伸追问:
对话摘要怎么生成?用LLM提炼对话要点:讨论了什么主题、确定了什么信息、遗留了什么问题,保留关键实体,去除闲聊内容。
题目十二:怎么设计一个对话Agent的意图识别
参考答案:
意图识别是决定对话Agent效果的关键环节,主流方案有四种:
基于规则 - 关键词、正则表达式匹配。实现简单,准确率高(对已知模式),但维护成本高,泛化差。
基于分类模型 - 训练BERT等文本分类模型,把用户输入分类到预定义意图。准确率高,但需要标注数据,不易处理新意图。
基于LLM(Zero-shot/Few-shot) - 让大模型直接判断意图,给几个示例就能工作,泛化好,但延迟高、成本高。
混合方案(推荐) - 先用规则和小模型快速处理高频、明确的意图(覆盖80%的情况),再把模糊情况升级给LLM处理。
意图设计的关键原则:粒度要合适(太粗区分不了,太细分类难)、覆盖"意图歧义"场景(同一个问法可能对应多个意图,要设计澄清机制)、包含"兜底意图"(处理无法识别的输入)。
意图太多可以分层处理:先分大类(查询/操作/投诉),再分小类,或者用槽位填充处理参数化意图。
延伸追问:
意图太多怎么处理?意图分层,先分大类(查询/操作/投诉),再分小类,或者用槽位填充处理参数化意图(比如"查询+订单类型+时间范围")。
题目十三:设计一个运维Agent,你会怎么做
参考答案:
运维Agent的核心能力包括告警分析、自动排查、建议生成、执行操作。
告警分析 - 接收监控系统的告警,用LLM分析告警含义,结合历史知识库判断可能原因。
自动排查 - 根据告警类型,自动执行排查操作:查询相关日志、检查系统指标(CPU/内存/磁盘)、连接数据库查询相关记录。
建议生成 - 基于排查结果,生成修复建议,输出操作步骤。
执行操作 - 对于标准化操作(重启服务、清理日志),可以自动执行;对于高风险操作,人工确认后执行。
安全设计是运维Agent的重中之重:危险操作(删除、停服)必须人工确认、所有操作记录审计日志可追溯、权限最小化(Agent只有完成任务所需的最小权限)、操作前备份。
运维Agent能把故障响应时间从小时级降到分钟级,因为自动化了排查和分析步骤,之前需要人工逐个检查的操作,Agent几秒内就能并行完成。
延伸追问:
运维Agent响应时间如何从小时级降到分钟级?自动化了排查和分析步骤:之前需要人工逐个检查的操作,Agent几秒内就能并行完成;判断逻辑固化后也不再需要等待专家。
题目十四:设计一个智能客服Agent,核心架构是什么
参考答案:
智能客服Agent的核心架构分四层:
接入层 - 多渠道接入(网页、APP、微信、电话)统一消息格式,做敏感词过滤、请求限流。
理解层 - 意图识别(判断用户想做什么)、实体抽取(提取关键信息如订单号、商品名)、情感分析(识别用户情绪,负面情绪及时预警)。
处理层(核心) - 根据理解结果分派处理:知识问答走RAG检索知识库回答、订单查询走Function Calling对接订单系统、投诉处理创建工单+发送安抚回复、复杂/敏感问题转人工处理。
输出层 - 生成自然语言回复,确认关键信息引导用户下一步,支持流式输出提升体验。
转人工的触发条件:用户明确要求、情绪激烈(多次负面情绪)、问题超出知识库范围、连续N次未能解决。
评估客服Agent效果的核心指标:问题解决率(不转人工就解决)、用户满意度评分、平均对话轮数、首次响应时间。
延伸追问:
如何评估客服Agent的效果?问题解决率(不转人工就解决)、用户满意度评分、平均对话轮数、首次响应时间,这四个是核心指标。
题目十五:设计一个智能数据分析Agent,你会怎么设计
参考答案:
数据分析Agent分四个核心模块:
意图识别模块 - 解析用户问题,识别分析目标:是趋势分析、对比分析、还是异常检测?涉及什么指标、什么时间范围、什么维度?
数据获取模块 - NL2SQL:把自然语言问题转换成SQL查询关系型数据库;支持对接多种数据源(SQL数据库、Excel文件、API接口);生成的SQL要做安全校验,防止SQL注入。
分析执行模块 - 时间序列分析(统计方法或预测算法如Prophet)、相关性分析(计算相关系数)、数据可视化(用Matplotlib/ECharts生成图表)。
结果呈现模块 - 自动生成图表(根据数据类型选择合适的图表类型)、用自然语言描述分析结论(不只是把数据列出来,而是说"发现了什么")、支持追问(“为什么3月份下降?”)。
NL2SQL准确率不高时,可以通过Schema描述优化(把表名字段名的业务含义写清楚)、Few-shot示例(给几个正确的NL-SQL对)、错误反馈迭代(SQL报错后自动修正)、复杂查询人工确认来解决。
延伸追问:
NL2SQL准确率不高怎么解决?Schema描述优化(把表名字段名的业务含义写清楚)、Few-shot示例(给几个正确的NL-SQL对)、错误反馈迭代(SQL报错后自动修正)、复杂查询人工确认。
题目十六:设计一个自动整理会议纪要的Agent
参考答案:
自动会议纪要Agent分四步流程:
语音转写 - 用ASR服务(Whisper或云端API)把录音转为文字;说话人分离(Diarization):区分不同发言人,标注"张三:…"“李四:…”,纪要才有意义。
内容理解 - 提取结构化信息:会议主题、时间、地点、参会人员;讨论的议题和各方观点;形成的决议事项;待办任务和负责人。
纪要生成 - 去除口语化表达和重复内容;提炼核心观点,结构化组织;LLM生成正式语言的纪要。
格式输出 - 按模板输出(基本信息 + 会议内容 + 决议事项 + 待办清单);导出Word/PDF,可以直接发送给参会人。
难点在于说话人分离,常见方案是用声纹识别模型,或者如果是多轨道录音(每个人麦克风单独录)就更简单。质量差的音频(嘈杂、重叠说话)效果会明显下降。
专业术语识别不准时,可以定制化词表,给ASR模型提供领域词汇,准确率会明显提升。
延伸追问:
专业术语(技术词、行业词)识别不准怎么办?定制化词表,给ASR模型提供领域词汇,准确率会明显提升。
题目十七:设计一个自动处理邮件的Agent
参考答案:
邮件处理Agent分四个核心模块:
邮件获取 - IMAP/POP3协议定时拉取,或用API(Gmail API、Exchange API)。
分类处理 - 重要紧急(老板/大客户 + 时效性词汇)标红提醒、广告推销自动归档、工作事务分类处理、会议邀请自动添加日历。
自动回复(关键) - 收到邮件的Auto-reply(确认收到,告知处理时间)、常见问题自动回复(对接知识库)、请假/不在状态自动告知转交人。
任务提取 - 从邮件中识别Action Item,创建待办;截止日期提取并添加提醒。
安全注意事项:邮件内容属于高度隐私数据,加密存储;自动回复前要有审核机制,避免发出不当内容;代发邮件的权限要严格控制,最好需要人工确认。
判断邮件优先级可以综合多个信号:发件人优先级(VIP列表)+ 关键词匹配(紧急/ASAP)+ 历史互动频率 + LLM综合理解内容,多信号加权。
延伸追问:
如何判断邮件的优先级?发件人优先级(VIP列表)+ 关键词匹配(紧急/ASAP)+ 历史互动频率 + LLM综合理解内容,多信号加权。
题目十八:设计一个多Agent协作的办公助手系统
参考答案:
多Agent办公助手系统需要设计好角色分工和协作机制。
专职Agent团队:
- 调度Agent(Orchestrator):接收用户请求,拆解任务,分配给对应Agent,汇总结果
- 日程Agent:管理日历,安排会议,查看空闲时间
- 邮件Agent:处理邮件收发,回复常见邮件
- 文档Agent:创建、编辑、整理文档,知识库检索
- 数据Agent:查询数据,生成报表,可视化分析
协作机制:
任务分配流程:用户请求 → 调度Agent分析 → 判断需要哪些专职Agent → 并行分发(可以并行的任务同时执行)→ 收集各Agent结果,汇总输出。
通信方式:消息队列(Agent之间异步通信,解耦)、共享状态数据库(所有Agent读写同一个状态仓库,协调进度)、事件驱动(某个Agent完成任务后发布事件,触发下游Agent)。
冲突处理:日程冲突由日程Agent协商解决,数据不一致时以权威数据源为准,优先级规则透明可配置。
Agent之间防止状态不一致的方法:共享状态数据库做单一事实来源,写操作加锁或用乐观锁,关键状态变更发布事件通知相关Agent。
延伸追问:
Agent之间如何防止状态不一致?共享状态数据库做单一事实来源,写操作加锁或用乐观锁,关键状态变更发布事件通知相关Agent。
以上就是万字详解面试题库Agent篇的全部内容,共18道核心面试题,涵盖Agent基础概念、ReAct/Function Calling原理、Multi-Agent协作、工程落地挑战、实际场景设计等核心知识点。建议结合自己的项目经验,针对每道题准备具体的案例和数据支撑,在面试中展现出对技术的深入理解和实际应用能力。
完整版合集、面试题库、项目实战,全网同名【图解 AI 系列】
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)