跳转至

AI Agent 面试题清单

Source: 本地文件 AI_Agent_面试题清单_120题.md Collected: 2026-09-20 Published: 2026-09-19

整理日期:2026-09-19

方向:Go / 后端转 AI Agent 应用开发。共 16 个模块、120 道题,不含答案。

★ 为优先准备题,共 40 道;其余用于第二轮查漏补缺。

本清单综合公开题库、官方工程资料与场景补充,经过筛选、合并和改写,不代表逐题核实过公司来源的面试真题。

模块索引

  1. 大模型与 API 基础(001–008)
  2. Agent 原理与执行范式(009–014)
  3. 任务拆分与规划(015–022)
  4. Prompt 与结构化输出(023–028)
  5. 工具调用与工具设计(029–038)
  6. 自纠、校验与循环控制(039–044)
  7. 上下文工程与记忆(045–054)
  8. RAG 与知识检索(055–064)
  9. MCP、Skills 与 A2A(065–070)
  10. 多 Agent 与框架选型(071–076)
  11. 任务状态、持久化与人工介入(077–084)
  12. 评测、可观测性与迭代(085–092)
  13. 性能、成本与服务稳定性(093–098)
  14. 权限、安全与隔离(099–104)
  15. Go 工程与编码题(105–110)
  16. 综合设计、故障排查与项目追问(111–120)

01|大模型与 API 基础

参考范围:S1、S7;包含面向本模块的改写与补充题。

  • [x] 001 ★ Token、上下文窗口和最大输出 Token 分别是什么?一次 Agent 任务的 Token 消耗如何估算?
  • [x] 002 ★ system、user、assistant、tool 等消息分别承担什么作用?一次工具调用的消息应如何组织?
  • [x] 003 Temperature、Top P 分别影响什么?把 Temperature 设为 0,能否保证结果完全一致?
  • [x] 004 流式输出和非流式输出有什么区别?首 Token 延迟与完整任务耗时应该如何区分?
  • [x] 005 大模型为什么可能产生幻觉?知识缺失、信息过期和错误推断应如何分别处理?
  • [x] 006 选择 Agent 使用的模型时,如何评估指令遵循、工具调用、推理能力、成本和时延?
  • [x] 007 ★ Prompt 优化、RAG 和微调分别适合解决什么问题?如何判断应该先尝试哪一种?
  • [x] 008 接入多个模型供应商时,怎样处理消息格式、工具调用、结构化输出和错误码的差异?

02|Agent 原理与执行范式

参考范围:S3;包含面向本模块的改写与补充题。

  • [x] 009 ★ 什么是 AI Agent?它与普通聊天机器人、单次模型调用、传统自动化程序有什么区别?
  • [x] 010 ★ Workflow 与自主 Agent 有什么区别?哪些任务不值得使用 Agent?
  • [x] 011 ★ 一个最小 Agent Loop 包含哪些环节?由谁执行工具、维护状态并决定是否继续循环?
  • [x] 012 ★ ReAct 与 Plan-and-Execute 有什么区别?各自适合什么任务?
  • [x] 013 CoT、ToT 与 ReAct 分别讨论什么问题?Agent 是否必须输出完整思维链才能工作?
  • [x] 014 如何把固定 Workflow 与动态 Agent Loop 结合起来?哪些决策由程序控制,哪些交给模型?

03|任务拆分与规划

参考范围:S3、S12;包含面向本模块的改写与补充题。

  • [x] 015 ★ 拿到一个复杂需求时,你依据什么划分子任务?如何判断拆分粒度过粗或过细?
  • [x] 016 任务拆分应该由开发者预先定义,还是由模型运行时生成?如何确定两者的边界?
  • [x] 017 ★ 怎样定义子任务的输入、输出、依赖和完成条件,让计划能够真正执行?
  • [x] 018 如何识别子任务之间的数据依赖,决定哪些串行、哪些并行?
  • [x] 019 怎样判断模型给出的计划存在漏项、重复步骤或无法执行的步骤?
  • [x] 020 用户目标模糊、信息缺失或约束冲突时,Agent 应如何决定澄清、假设或停止?
  • [x] 021 ★ 执行中发现某一步不可行时,如何决定局部重试、替换步骤还是重新规划?
  • [x] 022 用户在任务中途修改目标时,怎样判断哪些已完成结果可以复用,哪些必须失效?

04|Prompt 与结构化输出

参考范围:S5、S8;包含面向本模块的改写与补充题。

  • [x] 023 ★ 你会如何组织 Agent 的系统提示词?角色、目标、边界、工具说明和输出要求如何分工?
  • [x] 024 Zero-shot 与 Few-shot 如何选择?怎样挑选有代表性的示例,避免只对示例有效?
  • [x] 025 ★ 提示词要求输出 JSON、JSON Mode、基于 Schema 的结构化输出有什么区别?
  • [x] 026 模型输出满足 JSON Schema,是否就代表内容正确?还需要哪些业务校验?
  • [x] 027 模型拒绝回答、输出被截断或结构化内容不完整时,业务代码如何处理?
  • [x] 028 提示词越来越长、规则互相冲突时,怎样整理和验证,而不是不断追加补丁?

05|工具调用与工具设计

参考范围:S4、S7;包含面向本模块的改写与补充题。

  • [x] 029 ★ 请描述一次完整的 Function Calling 流程:模型和业务程序分别负责哪些事情?
  • [x] 030 ★ 如何设计工具名称、描述和参数 Schema,使模型能够正确选择工具并构造参数?
  • [x] 031 工具很多或功能重叠时,怎样降低选错工具的概率,并控制工具定义占用的上下文?
  • [x] 032 ★ 哪些参数可以由模型填写,哪些必须由后端提供?怎样避免模型虚构 ID 或业务条件?
  • [x] 033 工具应该按底层 API 拆细,还是聚合成业务操作?如何判断合适的粒度?
  • [ ] 034 工具结果应该返回什么字段和格式?数据量很大时,怎样兼顾可用性与 Token 成本?
  • [ ] 035 模型一次返回多个工具调用时,如何确定执行顺序、并发关系和部分失败的处理方式?
  • [ ] 036 多个工具调用的请求和结果如何对应?工具结果回填错误会怎样影响后续执行?
  • [ ] 037 流式返回工具调用参数时,如何拼接与校验?什么时候才可以真正执行工具?
  • [ ] 038 工具返回“没有数据”“参数无效”“执行失败”时,怎样让模型理解这些结果的差异?

06|自纠、校验与循环控制

参考范围:S2、S3;包含面向本模块的改写与补充题。

  • [ ] 039 ★ 同一个模型再检查一遍,为什么可能纠错,也可能重复原错?什么反馈能够提供新的纠错依据?
  • [ ] 040 程序校验、外部事实核验和模型自检各自适合发现什么错误?各自有什么盲区?
  • [ ] 041 对于没有唯一标准答案的文本,怎样发现事实错误、遗漏要求或前后矛盾,而不仅是检查格式?
  • [ ] 042 应该每一步都自检,还是只在关键节点或最终结果处检查?如何衡量收益与成本?
  • [ ] 043 ★ 如何检测 Agent 重复调用工具、重复生成相同计划,或者一直执行却没有进展?
  • [ ] 044 超时、限流、参数错误和权限拒绝分别应如何处理?重试、自纠和整个任务的停止条件如何配合?

07|上下文工程与记忆

参考范围:S5;包含面向本模块的改写与补充题。

  • [ ] 045 ★ Context Engineering 与 Prompt Engineering 有什么区别?Agent 每轮需要管理哪些上下文?
  • [ ] 046 ★ 如何给系统提示、工具定义、历史消息、检索结果和模型输出分配上下文预算?
  • [ ] 047 上下文尚未超过窗口限制,回答质量也可能变差吗?如何判断哪些信息构成干扰?
  • [ ] 048 滑动窗口、历史摘要和按需加载分别适合什么情况?怎样发现摘要丢失了关键约束?
  • [ ] 049 裁剪历史消息时,如何保留工具调用与结果的完整关联,以及仍然有效的用户要求?
  • [ ] 050 ★ 短期记忆与长期记忆有什么区别?把所有聊天记录存进数据库,是否就具备了长期记忆能力?
  • [ ] 051 哪些内容值得写入长期记忆?如何确定写入时机,并避免把模型猜测保存为事实?
  • [ ] 052 新信息与旧记忆冲突时如何处理?记忆怎样更新、过期和删除?
  • [ ] 053 长期记忆采用关系数据库、全文检索、向量库或文件存储,各有什么取舍?
  • [ ] 054 任务级结构化状态与对话历史有什么区别?复杂任务中如何防止目标和进度逐渐丢失?

08|RAG 与知识检索

参考范围:S1、S15;包含面向本模块的改写与补充题。

  • [ ] 055 ★ 请描述完整 RAG 链路,分别说明离线建库和在线检索生成需要做什么?
  • [ ] 056 ★ 什么情况下应该使用结构化查询、关键词检索或向量检索?如何判断是否需要引入 RAG?
  • [ ] 057 HTML、Markdown、PDF 等文档如何解析和清洗?表格、代码块、图片应该如何处理?
  • [ ] 058 如何选择切块方式、块大小和重叠范围?怎样保留章节关系与来源信息?
  • [ ] 059 如何选择 Embedding 模型和向量数据库?更换 Embedding 模型后如何处理已有索引?
  • [ ] 060 余弦相似度、内积和欧式距离如何选择?向量是否归一化会影响哪些判断?
  • [ ] 061 ★ 关键词检索、向量检索、混合检索和 Rerank 如何组合?怎样确定 Top K 与相关性阈值?
  • [ ] 062 用户问题不适合直接检索时,如何判断是否需要查询改写、问题拆分或多轮检索?
  • [ ] 063 知识库更新或删除文档后,怎样处理索引、缓存和引用?检索权限应该在哪一层校验?
  • [ ] 064 普通 RAG 与 Agentic RAG 有什么区别?让 Agent 自主决定检索次数和方式会带来什么取舍?

09|MCP、Skills 与 A2A

参考范围:S9、S10、S11;包含面向本模块的改写与补充题。

  • [ ] 065 ★ MCP 解决了什么问题?它与 Function Calling、普通 HTTP API 是什么关系?
  • [ ] 066 ★ MCP 中的 Host、Client、Server 分别负责什么?一次工具发现与调用经过哪些环节?
  • [ ] 067 MCP 的 Tools、Resources、Prompts 有什么区别?各适合暴露什么能力?
  • [ ] 068 MCP 的 stdio 与 Streamable HTTP 如何选择?接入时怎样处理协议版本和能力兼容问题?
  • [ ] 069 Agent Skills 与普通提示词、工具、MCP 有什么区别?Skill 的发现和按需加载如何设计?
  • [ ] 070 A2A 与 MCP 分别解决什么协作问题?什么时候需要跨 Agent 通信协议,而不只是本地函数调用?

10|多 Agent 与框架选型

参考范围:S12、S14;包含面向本模块的改写与补充题。

  • [ ] 071 ★ 什么情况下应该使用多 Agent,而不是一个 Agent 加多个工具?如何验证拆分确实有收益?
  • [ ] 072 主 Agent 调度子 Agent、把 Agent 当作工具、直接移交任务,这几种协作方式如何选择?
  • [ ] 073 子 Agent 应接收完整历史还是精简任务上下文?如何保证信息充分,又避免上下文互相干扰?
  • [ ] 074 多个 Agent 给出冲突结果或重复执行同一任务时,如何协调和合并结果?
  • [ ] 075 如何防止 Agent 之间循环委派、等待彼此或无限扩张任务?全局预算由谁管理?
  • [ ] 076 ★ 手写 Agent Loop 与采用 Eino、LangGraph 等框架如何取舍?你实际需要框架提供哪些能力?

11|任务状态、持久化与人工介入

参考范围:S13、S14;包含面向本模块的改写与补充题。

  • [ ] 077 ★ 如何定义 Session、Run、Step 及其状态?会话状态与一次任务的执行状态如何区分?
  • [ ] 078 长时间运行的 Agent 任务应该如何提供接口?同步请求、异步任务与结果通知如何取舍?
  • [ ] 079 ★ Checkpoint 应保存哪些内容、在什么时候保存?服务重启后怎样恢复任务而不重复已完成步骤?
  • [ ] 080 同一个会话同时收到两条用户消息时,怎样保证状态一致,避免互相覆盖?
  • [ ] 081 ★ 写操作已经执行但响应丢失时,怎样确认执行结果并避免重复执行?幂等键应该如何设计?
  • [ ] 082 哪些操作需要人工确认?确认界面应展示什么,怎样防止批准后执行的内容发生变化?
  • [ ] 083 人工修改了计划或工具参数后,任务如何恢复?哪些下游结果需要重新计算?
  • [ ] 084 用户取消任务或多步操作执行一半失败时,怎样停止后续执行,并处理已经产生的副作用?

12|评测、可观测性与迭代

参考范围:S6;包含面向本模块的改写与补充题。

  • [ ] 085 ★ 如何定义一个 Agent 的任务成功?为什么不能只看它最终声称自己完成了什么?
  • [ ] 086 如何构建包含正常、边界和失败场景的评测集?没有唯一标准答案的任务如何制定验收标准?
  • [ ] 087 ★ 最终结果评测与执行轨迹评测有什么区别?是否应该要求工具调用顺序与标准答案完全一致?
  • [ ] 088 程序评分、模型评分和人工评分分别适合什么任务?RAG 的检索与生成又应如何分别评测?
  • [ ] 089 ★ LLM-as-a-Judge 会有哪些偏差?如何校准评分标准并检查评审模型自身的可靠性?
  • [ ] 090 同一任务多次运行结果不同,应该如何评测稳定性?怎样区分真实提升与随机波动?
  • [ ] 091 一条 Agent Trace 应记录哪些信息,才能定位模型、工具、检索、状态或编排中的问题?
  • [ ] 092 修改提示词、工具或模型后,如何做回归验证、灰度发布和线上反馈分析?

13|性能、成本与服务稳定性

参考范围:S2、S4;包含面向本模块的改写与补充题。

  • [ ] 093 ★ 一个 Agent 请求耗时很长时,如何拆分模型推理、工具调用、排队和编排的耗时并定位瓶颈?
  • [ ] 094 如何统计单次任务的完整 Token 成本?输入、输出、重复上下文和多轮调用分别如何计算?
  • [ ] 095 ★ 模型供应商限制请求数或 Token 吞吐时,如何设计并发限制、排队、重试与背压?
  • [ ] 096 如何做模型路由与故障降级?切换到更便宜或不同供应商的模型时,要验证哪些能力差异?
  • [ ] 097 Prompt 缓存、模型结果缓存和工具结果缓存有什么区别?怎样处理过期、权限与用户隔离?
  • [ ] 098 如何为不同任务和用户设置时间、Token、费用及工具调用预算,避免单个任务耗尽资源?

14|权限、安全与隔离

参考范围:S2、S9;包含面向本模块的改写与补充题。

  • [ ] 099 ★ 什么是 Prompt Injection?用户输入、网页和工具结果中的恶意指令分别可能怎样影响 Agent?
  • [ ] 100 ★ 为什么不能仅靠提示词限制越权?用户身份、租户 ID 和资源权限应该由谁提供和校验?
  • [ ] 101 读操作、写操作和高风险操作应如何分级授权?怎样限制 Agent 可发现和可调用的工具范围?
  • [ ] 102 Agent 能执行代码、访问文件或网络时,如何设计沙箱、资源限制和凭据隔离?
  • [ ] 103 多租户 Agent 的记忆、检索、缓存与日志如何隔离?如何避免跨用户数据泄露?
  • [ ] 104 引入第三方 MCP Server 或 Skill 时,需要审查哪些代码、权限和更新风险?

15|Go 工程与编码题

参考范围:S14;包含面向本模块的改写与补充题。

  • [ ] 105 ★ 请用 Go 或伪代码实现最小 Agent Loop,覆盖模型调用、工具分发、结果回填和退出条件?
  • [ ] 106 ★ 如何用 context.Context 把取消和超时传递到模型请求、工具调用、流式读取及子 goroutine?
  • [ ] 107 如何实现有并发上限的工具执行器,并处理部分失败、结果汇总与 goroutine 泄漏?
  • [ ] 108 如何在 Go 中实现 Agent 的 SSE 输出?客户端断开、读取变慢或上游流中断时分别怎么处理?
  • [ ] 109 如何设计 Model、Tool 和 StateStore 等接口,使业务逻辑不绑定单一模型供应商或框架?
  • [ ] 110 如何为 Agent 编写可重复的单元测试和集成测试?怎样模拟非法输出、超时、重复调用和恢复执行?

16|综合设计、故障排查与项目追问

参考范围:S6;包含面向本模块的改写与补充题。

  • [ ] 111 ★ 设计一个根据学生薄弱点、可用时间和考试目标生成学习计划的 Agent,如何划分流程、工具和验收条件?
  • [ ] 112 设计一个辅助教师生成题面、题解和参考代码的 Agent,如何安排校验、草稿保存、人工确认与发布边界?
  • [ ] 113 设计一个 Wiki 整理 Agent,面对重复文档、过时内容和相互矛盾的信息,如何生成可审核的修改方案?
  • [ ] 114 上线后任务 P95 耗时突然升高,但单次模型请求耗时基本不变,你会如何建立排查路径?
  • [ ] 115 检索日志显示已找到正确资料,但最终回答仍然错误,你会怎样逐层定位原因?
  • [ ] 116 Agent 不断换参数查询同一个工具,表面没有完全重复但任务始终不推进,你会怎样诊断和处理?
  • [ ] 117 单用户测试正常,并发后偶尔出现串话、错误工具结果或重复写入,你会如何定位?
  • [ ] 118 一次提示词修改修复了部分案例,却让另一批任务退化,你会如何判断原因并决定回滚还是继续调整?
  • [ ] 119 Coding Agent 生成的代码通过了现有测试,是否就可以认定任务完成?还需要如何验证需求与安全边界?
  • [ ] 120 选一个你实际做过的 Agent,说明你独立负责的部分、最难的问题、关键取舍,以及证明效果的证据?

参考资料

资料用于选题与工程主题校准,不作为各题唯一参考答案。