4.4 KiB
id, title, type, domain, stack, tags, level, related, week
| id | title | type | domain | stack | tags | level | related | week | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ai.agent-design.interview | Agent 设计面试题 | interview | ai |
|
|
advanced |
|
|
Agent 设计面试题
基础
【基础】什么是 Agent?和普通的大模型调用有什么区别?
参考答案:Agent 是由大模型决定执行步骤的系统:根据目标和当前观察,选择调用工具、获取结果、继续决策,直到完成。普通调用是单次输入输出;工作流是代码固定步骤、模型完成其中的环节。Agent 更灵活,但更难控制和评测。
追问:你的项目为什么用 Agent 而不是工作流?→ 按实际说明哪些环节步骤不固定、需要模型决策;哪些环节固定成了工作流。
【基础】ReAct 是什么?
参考答案:Reasoning + Acting:模型交替进行推理和行动(调用工具),根据工具返回的观察结果继续推理,直到得出答案。现在基于原生工具调用的 Agent 循环就是 ReAct 的工程实现。
追问:ReAct 的缺点?→ 每一步都要调用模型,长任务成本高、容易偏离目标;需要最大步数和更好的规划。
【基础】什么是上下文工程?
参考答案:设计和管理每次模型调用时上下文窗口中的内容:系统提示词、工具、检索结果、历史、记忆、任务状态。手段包括选择相关内容、压缩、用子 Agent 隔离、把信息外部化存储后按需读取。
追问:上下文越长越好吗?→ 不是。无关信息会干扰模型、增加成本和延迟;关键信息放在显眼位置,长上下文中间的内容容易被忽略。
进阶
【进阶】Plan-and-Execute 和 ReAct 怎么选?
参考答案:步骤可以提前规划、需要给用户确认或展示进度的任务,用 Plan-and-Execute(执行阶段还能用便宜模型);需要根据每一步结果动态调整的探索性任务,用 ReAct。也可以结合:先规划,执行中每一步用 ReAct,失败时重新规划。
追问:计划执行到一半失败怎么办?→ 把具体错误和已完成步骤反馈给规划器重新规划,已完成的步骤不重复执行;设置最大次数。
【进阶】什么是 Skills?解决什么问题?
参考答案:把某类任务的说明、规范、脚本打包成目录,系统提示词中只放名字和描述,需要时加载全文(渐进式披露)。解决“专业知识太多放不进上下文”的问题,也便于团队沉淀和复用工作流。
追问:Skills 和 RAG 有什么区别?→ RAG 按相似度检索知识片段;Skill 是完整的操作说明,由模型根据描述决定是否加载,更像“按需打开的操作手册”。
【进阶】多 Agent 有哪些模式?什么时候用?
参考答案:主管模式(分派和汇总)、转交模式(按领域转给专门的 Agent)、流水线。在需要上下文隔离、专业分工、并行处理时使用;代价是成本、延迟、信息丢失和调试难度,能用单 Agent 解决的不拆。
追问:A2A 和 MCP 有什么区别?→ MCP 是 Agent 调用工具和数据的协议;A2A 是不同 Agent 之间协作的协议(Agent Card 描述能力,Task 有状态)。
场景题
【场景题】设计一个运营报表 Agent,你会怎么做?
参考答案:固定流程 + 局部 Agent;指标口径作为 Skill;SQL 工具连只读库,用解析器限制只读和表白名单,强制时间范围、LIMIT、超时;结论结构化输出,数字必须来自查询结果;任务状态和进度通过 SSE 推送。详见报表 Agent 场景。
追问:用户问的指标没有定义怎么办?→ 不猜,回复“该指标没有统一口径”,引导用户选择已有指标或联系数据组。
【场景题】Agent 接入了 40 个工具,经常选错,怎么优化?
参考答案:先用评测集确认错误类型;优化工具描述(何时用 / 何时不用);按意图分组,每次只提供相关工具;把相关工具合并或拆分到子 Agent;规范改成 Skills 按需加载;修改后用评测集验证。
追问:怎么评估工具选择的准确率?→ 评测用例标注期望调用的工具和参数,统计工具选择正确率和参数正确率。