📋 摘要
- AI Agent 面试 50 题高频问答,每题只保留回答重点与扩展知识
- 详细原理解析见 AI Agent
- 相关主题:大模型基础(面试版)、大模型训练与微调(面试版)、RAG(面试版)、LangChain 与 LangGraph(面试版)
1. 什么是 AI Agent?和单次 LLM 调用、Workflow 有什么区别?
📋 回答重点
- Agent = 以 LLM 为「大脑」的自主系统:规划 + 调用工具 + 记忆,多步自主完成目标
- 单次调用:一问一答,无工具无状态;Agent 多步循环可自我修正
- Workflow 是预先编排固定步骤,Agent 是 LLM 动态决定下一步;能固定就用 Workflow 更可靠
扩展知识
- 四要素:感知/规划/行动/记忆
- 详细讲解:AI Agent
2. ReAct 范式是什么?Thought/Action/Observation 各是什么?
📋 回答重点
- ReAct = Reasoning + Acting,推理与行动交替
- Thought(怎么推理)、Action(调哪个工具+参数)、Observation(工具结果)
- 循环直到 Final Answer,是多数 Agent 框架的底层范式
扩展知识
- 让模型能多步求解需外部信息的任务
- 详细讲解:AI Agent
3. Function Calling / Tool Use 的原理是什么?如何实现?
📋 回答重点
- 模型只输出结构化调用指令
{name, arguments},真正执行在宿主程序 - 步骤:定义工具 JSON Schema → 模型生成指令 → 宿主执行 → 回传结果 → 循环
- 工具 schema 描述质量决定调用准确率
扩展知识
- 需处理失败、参数错误、重试
- 详细讲解:AI Agent
4. Agent 的规划能力如何实现?Plan-and-Execute 和反思有什么区别?
📋 回答重点
- 方法:Plan-and-Execute(先计划再执行)、ReAct(边想边做)、Reflexion(反思重试)、自我纠正
- Plan-and-Execute 事前规划;反思(Reflexion)事后复盘
- 常组合:先规划,失败再反思调整
扩展知识
- 子目标分解大任务
- 详细讲解:AI Agent
5. Agent 的记忆如何设计?短期和长期有什么区别?
📋 回答重点
- 短期记忆 = 上下文窗口(多轮对话),受窗口限制,需截断/摘要/滑动窗口
- 长期记忆 = 向量库/数据库(跨会话持久),向量记忆/结构化画像/反思记忆
- 设计点:写入时机、检索策略、遗忘机制
扩展知识
- 类比 Generative Agents 的 memory stream
- 详细讲解:AI Agent
6. 多 Agent 协作有哪些模式?常见框架有哪些?
📋 回答重点
- 模式:顺序流水线、主管-下属(Supervisor)、辩论/投票、分层、群聊
- 框架:LangGraph(图编排)、AutoGen(多 Agent 对话)、CrewAI(角色团队)、MetaGPT
- 务实:能单 Agent 就不多 Agent
扩展知识
- 多 Agent 成本与复杂度更高
- 详细讲解:AI Agent
7. 什么是 MCP 协议?它解决什么问题?
📋 回答重点
- MCP = 模型与工具/数据源的标准化协议(AI 的 USB-C)
- 解决:每模型×每工具定制集成 → M×N 变 M+N,一次开发到处复用
- 组成:MCP Server(暴露工具)、MCP Client(调用)、JSON-RPC 通信
扩展知识
- 支持工具/资源/提示三类能力
- 详细讲解:AI Agent
8. LangChain、LangGraph、AutoGen、CrewAI 有什么区别?
📋 回答重点
- LangChain:组件库,快速搭 prompt/chain/tool
- LangGraph:图状态机,精确编排多步/多 Agent,可控强
- AutoGen:多 Agent 对话协作;CrewAI:角色化团队
- LlamaIndex 侧重数据/RAG
扩展知识
- 复杂可控流程用 LangGraph
- 详细讲解:AI Agent
9. 如何保证 Agent 的可靠性?如何避免死循环和失控?
📋 回答重点
- 问题:死循环、跑偏、token 爆炸、错误累积
- 手段:限步数 + 重复检测 + 超时/token 预算 + 错误重试降级 + 人工确认(关键操作)+ 日志审计 + 权限沙箱
扩展知识
- Human-in-the-loop 用于支付/删除等
- 详细讲解:AI Agent
10. 如何评估 Agent 的效果?
📋 回答重点
- 维度:任务成功率(核心)、轨迹质量、工具调用准确率、鲁棒性、成本
- 基准:WebArena、GAIA、AgentBench、SWE-bench(软件工程)
- 方法:LLM-as-judge + 人工 + 分步评估(规划/工具/结果分开打点)
扩展知识
- 开放任务难自动评估
- 详细讲解:AI Agent
11. Agent 落地有哪些难点?为什么说 Agent 落地难?
📋 回答重点
- 难点:幻觉多步累积、工具不可靠、长程任务失败率高、成本延迟高、可控性/安全、评估难
- 根因:不确定模型 + 不确定环境 + 多步累积误差
- 现实:生产常退化为受限 Agent / 强约束 Workflow 换可控性
扩展知识
- 步数越多成功率指数下降
- 详细讲解:AI Agent
12. Agent 有哪些安全风险?如何防护?
📋 回答重点
- 风险:提示注入、越权操作、数据泄露、工具滥用
- 防护:最小权限、人工确认高危操作、数据/指令隔离、沙箱执行、脱敏、审计、注入检测
扩展知识
- 提示注入是 Agent 特有风险
- 详细讲解:AI Agent
13. 如何设计工具(tool)的 schema?有哪些要点?
📋 回答重点
- 工具 schema 用 JSON Schema 描述:
name(函数名)、description(做什么/何时用)、parameters(参数 schema) - description 要写清「何时用 + 参数含义 + 返回格式」,动词开头、给参数示例
- 多工具间职责区分开,避免歧义/重叠;schema 是模型看到的唯一接口,质量决定调用准确率
扩展知识
- 差 vs 好 description 示例:
处理数据vs把 CSV 按某列聚合求和,返回 JSON - 详细讲解:AI Agent
14. parallel function calling 是什么?如何实现?
📋 回答重点
- 模型在一次响应中返回多个 tool call,宿主并行执行后一次性回传,减少多轮往返
- 只适合无依赖的调用;有依赖(A 结果喂 B)必须串行
- 并行后按
tool_call_id把结果一一对应回传
扩展知识
- OpenAI 用
parallel_tool_calls参数开关,Claude 默认支持 - 详细讲解:AI Agent
15. 工具调用失败如何处理?
📋 回答重点
- 失败类型:参数错误、工具不存在(幻觉)、运行时异常、返回格式错
- 错误要结构化回传,让模型看到失败原因才有机会自纠
- 处理链:回传错误 → 模型自纠重试 → 限次重试(如 3 次)→ 降级/转人工
扩展知识
- 关键:不要吞掉错误
- 详细讲解:AI Agent
16. 工具结果如何回传给模型?有哪些方式?
📋 回答重点
- 用 tool role 回传,带
tool_call_id与模型发起的调用一一对应 - 结果通常转 JSON 字符串;大结果需截断/摘要防爆上下文
- 可附
status(success/error)与耗时元信息;模型拿到后继续生成
扩展知识
- 失败要带错误状态回传
- 详细讲解:AI Agent
17. function calling 和 tool use 有什么区别?
📋 回答重点
- 本质相同:都是模型输出结构化调用指令
{name, arguments},由宿主执行 - Function Calling 偏「预定义函数」,Tool Use 泛指任意工具/能力(浏览器、代码、API)
- 区别在术语与生态(OpenAI 系 vs Anthropic/MCP 系),面试可互换
扩展知识
- 共同内核:结构化指令 + 宿主执行
- 详细讲解:AI Agent
18. CoT 和 ReAct 有什么区别?
📋 回答重点
- CoT:只逐步推理(纯「想」),不调外部工具
- ReAct:Reasoning + Acting,推理与「调工具 + 观察」交替
- ReAct = CoT + Action/Observation,补足 CoT 无法获取外部信息、易幻觉的短板
扩展知识
- 适用:CoT 纯推理(数学/逻辑),ReAct 需检索/计算/操作
- 详细讲解:AI Agent
19. 什么是 ToT(Tree of Thoughts)?
📋 回答重点
- 把推理建模成树状搜索:每步生成多个候选想法,评估后选择/回溯
- 过程:分解 → 生成候选 → 评估打分 → BFS/DFS 搜索可回溯
- vs CoT:CoT 单链一错到底,ToT 可回溯但成本高(多次采样+评估)
扩展知识
- 适合数学/规划/搜索等可回溯任务,生产中少用
- 详细讲解:AI Agent
20. 什么是 self-consistency?
📋 回答重点
- 对同一问题采样多条推理路径,取多数投票作为最终答案
- 原理:正确答案往往被多数采样命中,投票放大正确信号;常配 CoT
- 只适合有唯一确定答案的任务;采样次数(5/10/40)与成本线性相关
扩展知识
- 与 ToT 区别:多链投票 vs 回溯搜索
- 详细讲解:AI Agent
21. Reflexion 的完整流程是什么?
📋 回答重点
- 四阶段:Actor 生成轨迹 → Evaluator 评估 → Self-Reflection 用自然语言总结教训 → Memory 存入 episodic memory
- 反思是语言形式的强化信号,不是梯度更新,把教训写进下一轮提示
- 在 ReAct 之上多一层事后复盘,多次迭代成功率提升
扩展知识
- 反思模板:「上次失败因为 X,改进策略:下次 Y」
- 详细讲解:AI Agent
22. 计划如何修正?plan 修正有哪些策略?
📋 回答重点
- 初始规划器把任务拆成步骤列表(描述、预期结果、依赖)
- 每步执行后把「已完成 + 观察 + 原始计划」喂给 replanner,决定继续/修改/终止
- 计划存结构化对象(含依赖、状态),增量更新而非整体重排
扩展知识
- LangGraph 中 Planner + Replanner 用两个节点 + 条件边实现
- 详细讲解:AI Agent
23. 子任务分解中的依赖关系如何处理?
📋 回答重点
- 用任务树/DAG 表达执行顺序;子任务结构化
{id, desc, deps, status} - 依赖三型:顺序依赖(拓扑排序串行)、并行依赖(并行执行)、条件依赖(分支/重规划)
- 执行前检查前置是否完成,失败只重跑受影响分支
扩展知识
- 让 LLM 输出带依赖字段的结构化子任务
- 详细讲解:AI Agent
24. 什么是 self-correction?如何实现?
📋 回答重点
- 定义:生成 → 批评 → 修正的反馈回路
- 实现:Self-Refine(自评改进)、外部信号驱动(执行/测试/工具报错,更可靠)、结构化校验
- 局限:纯自评可能盲视,需外部验证信号才有效
扩展知识
- 可配合 Reflexion:多轮失败后的反思是更强的 self-correction
- 详细讲解:AI Agent
25. 短期记忆的窗口如何管理?
📋 回答重点
- 三手段:滑动窗口(保留最近 N 轮)、摘要(压缩早期)、截断(超限硬截)
- 组合实践:滑动窗口 + 摘要,超窗口的早期对话先摘要再丢弃
- 保留「系统提示 + 关键约束 + 最近对话」三段式,防目标漂移
扩展知识
- 可调参数:窗口大小(10~20 轮)、摘要触发阈值(如超 8k token)
- 详细讲解:AI Agent
26. 长期记忆的写入、检索和遗忘如何设计?
📋 回答重点
- 写入:事件驱动(重要决策/偏好/教训)+ 定期蒸馏,避免全量噪声
- 检索:相关性 + 时效 + 重要性打分取 top-k(recency/importance/relevance)
- 遗忘:TTL 过期、容量上限淘汰、巩固/衰减
扩展知识
- 引用 Generative Agents 三权重
- 详细讲解:AI Agent
27. episodic memory 和 semantic memory 有什么区别?
📋 回答重点
- Episodic = 具体事件/经历(时间地点),如「昨天用户让我改过 X」
- Semantic = 抽象事实/概念,如「用户偏好 JSON 输出」
- 映射 Agent:episodic=轨迹/教训,semantic=画像/规则,两层协同
扩展知识
- 记忆系统常是两层:原始事件流 → 蒸馏成语义记忆
- 详细讲解:AI Agent
28. 什么是记忆蒸馏?
📋 回答重点
- 用 LLM 把冗长原始对话提炼成结构化、可复用的长期记忆,丢弃噪声
- 抽取:关键事实、用户偏好、结论、待办 → 结构化
{entity, attribute, value, confidence} - 好处:省 token(不再整段重放)、可检索复用、形成稳定画像
扩展知识
- 时机:会话结束、定期批处理、事件触发
- 详细讲解:AI Agent
29. Agent 记忆和 RAG 有什么区别?
📋 回答重点
- 数据来源不同:RAG 是外部静态文档,Agent 记忆是自身经历/用户交互
- 更新方式不同:RAG 外部写入,Agent 自动写入/蒸馏
- 底层技术相通(embedding + 向量库 + 检索),可称「给 Agent 自己用的 RAG」
扩展知识
- 检索对象从文档变成「记忆条目」
- 详细讲解:AI Agent
30. supervisor 模式是如何工作的?
📋 回答重点
- 中央 supervisor agent 把任务分发给多个 worker,汇总结果(主管-下属)
- 控制流:supervisor 判断 → 调 worker → 收结果 → 再判断 → 直到汇总
- LangGraph:supervisor 节点 + worker 节点 + 条件边路由
扩展知识
- 缺点:supervisor 成单点瓶颈,多一层调度开销
- 详细讲解:AI Agent
31. hierarchical(分层)多 Agent 如何设计?
📋 回答重点
- 规划层拆子任务调度,执行层完成并回报,可多层嵌套(树状分权)
- vs supervisor:supervisor 是单层特例,hierarchical 是可多层嵌套的树状结构
- 适用复杂任务
扩展知识
- 规划层下面可再有子规划层
- 详细讲解:AI Agent
32. 多 Agent 之间的通信协议有哪些?
📋 回答重点
- 通信本质是结构化消息
{sender, receiver, type, content, metadata} - 协议:黑板(共享状态)、直接对话(point-to-point)、消息队列、A2A(Agent2Agent 互操作)、MCP(偏 agent↔工具)
- 选型:少 agent 强协作用共享状态/直接对话,跨系统用 A2A,接工具用 MCP
扩展知识
- 区分 agent↔agent(A2A)与 agent↔工具(MCP)
- 详细讲解:AI Agent
33. 什么是 debate(辩论)型多 Agent?reflection 型呢?
📋 回答重点
- Debate:多 agent 各自生成答案,互相批判辩论,裁判(judge)汇总,多视角降幻觉
- Reflection 型:agent 对自己的输出反思改进(单人版 self-reflection,多人版互相挑错)
- 优点降低单一模型偏见/幻觉,代价成本数倍、延迟高
扩展知识
- 联系 self-consistency 的多人版
- 详细讲解:AI Agent
34. 什么是 swarm(群集)多 Agent?
📋 回答重点
- 大量轻量、无状态 agent 通过 handoff(交接) 动态协作,无固定编排图
- 特点:无状态(靠上下文传递)、handoff 交接、简单易测
- 类比「客服转接」;OpenAI Swarm 偏教学,生产复杂流程用 LangGraph
扩展知识
- vs supervisor:去中心化 vs 中央分发
- 详细讲解:AI Agent
35. agent loop 如何实现?
📋 回答重点
- 循环:调 LLM → 判断有无 tool_calls → 有则执行并回传 → 把助手消息(含 tool_calls)也 append → 再循环
- 终止条件:无 tool_call、达到
max_steps、模型输出 Final Answer - messages 列表就是 loop 的「状态」,逐步累积
扩展知识
- 框架(LangGraph)抽象成节点 + 边 + 条件循环
- 详细讲解:AI Agent
36. Agent 的 streaming(流式)如何实现?
📋 回答重点
- 两层:LLM token 流(逐 token 显示)+ 工具调用流(JSON 参数增量解析)
- 事件流设计:on_llm_start → on_token → on_tool_start → on_tool_end → on_final
- 好处:用户实时看到进度,降低等待感知
扩展知识
- 增量解析要容错不完整 JSON;工具调用中途可能失败
- 详细讲解:AI Agent
37. human-in-the-loop 有哪些模式?
📋 回答重点
- 审批(approval):关键操作前等人工批准再执行(支付/删除)
- 暂停(pause/interrupt):检查点暂停等输入后继续
- 接管(takeover):人工接管控制权(Agent 卡死/危险)
扩展知识
- LangGraph interrupt/resume 实现;高危操作必经人
- 详细讲解:AI Agent
38. Agent 的可观测性(tracing)如何做?
📋 回答重点
- 记录:每步输入/输出、工具调用与结果、token、延迟、成本、模型版本
- 结构:trace(一次任务)+ span(子步骤),父子关联成调用树
- 工具:LangSmith、Langfuse、Phoenix、OpenTelemetry
扩展知识
- 用途:调试回放、评估、成本分析、回归测试
- 详细讲解:AI Agent
39. 沙箱和权限如何设计?
📋 回答重点
- 沙箱:容器(Docker)/VM/gVisor 隔离,限网络/文件、资源配额、超时
- 权限:白名单工具、参数校验、最小权限、高危拦截(人工确认)
- 每个工具声明所需权限,运行时判定,全程审计
扩展知识
- 沙箱限网络/文件,工具限能力
- 详细讲解:AI Agent
40. Agent 的 state 如何持久化?
📋 回答重点
- state = 会话消息、中间结果、计划状态、记忆指针
- 方案:Postgres/Redis/对象存储 + checkpointer 快照序列化
- 只存可序列化数据;用
thread_id标识会话,恢复时取最新 state
扩展知识
- 好处:崩溃恢复、跨会话续跑、人工介入、时间旅行
- 详细讲解:AI Agent
41. checkpoint 和恢复如何实现?
📋 回答重点
- 每个节点/步骤执行后保存 state 快照(含输入输出消息)
- 失败/暂停时从最近 checkpoint 恢复:重放、时间旅行、人工介入
- LangGraph:
checkpointer+thread_id+interrupt/resume
扩展知识
- 从 checkpoint 重跑避免从头执行
- 详细讲解:AI Agent
42. 死循环检测如何实现?
📋 回答重点
- 手段:
max_iterations限步、重复 Action 哈希检测、无进展检测、token 增长监控 - 处理:终止后提示「换策略或给最终答案」或降级/转人工
- 结合超时 + token 预算兜底
扩展知识
- 重复检测:用 deque 缓存最近 tool_call 的 (name, args) 哈希
- 详细讲解:AI Agent
43. token 预算如何管理?
📋 回答重点
- 三重预算:总 token 上限、单步上限、工具结果长度上限
- 控制:摘要/压缩、prompt caching、截断、模型分层、限制步数
- 超限即压缩或终止,实时告警/降级
扩展知识
- prompt caching 省输入成本
- 详细讲解:AI Agent
44. 轨迹评估(trajectory evaluation)是什么?
📋 回答重点
- 不只评最终答案,还评中间执行轨迹是否合理、高效
- 维度:正确性、步骤合理性、工具选择、效率(步数/token/延迟)、鲁棒性
- 方法:参考轨迹比对、LLM-as-judge、过程奖励 PRM(vs 结果奖励 ORM)
扩展知识
- PRM 给每一步打奖励,而非只给最终结果
- 详细讲解:AI Agent
45. prompt injection 如何攻防?
📋 回答重点
- 攻击:直接注入、间接注入(藏网页/文档/邮件/工具返回)、越狱
- 防御:指令/数据隔离、输入过滤、最小权限、人工确认、输出过滤/沙箱、防御性系统提示
- 本质:LLM 无法天然区分指令与数据,间接注入最难防,需纵深防御
扩展知识
- 外部内容一律当数据,不当指令
- 详细讲解:AI Agent
46. 工具越权的最小权限如何设计?
📋 回答重点
- 越权:水平越权(访问他人数据)、垂直越权(低权限调高权限工具)
- 最小权限:角色权限、工具级 ACL、参数校验、按需授权(临时提权人工批)、审计
- 关键:身份从会话注入,不让模型自己传身份参数
扩展知识
- 数据库工具只给只读 + 白名单表,写操作单独确认
- 详细讲解:AI Agent
47. Agent 的成本如何控制?
📋 回答重点
- 成本构成:输入 token(长上下文重放)、输出 token(多轮推理)、工具调用费、多 Agent 叠加
- 控制:模型分层、上下文压缩、限制步数、并行合并、批处理
- 用「成功率/成本」做性价比评估,设单任务成本上限
扩展知识
- 规划用大模型、执行/抽取用小模型
- 详细讲解:AI Agent
48. coding agent(SWE-agent/Devin)是如何工作的?
📋 回答重点
- 让 LLM 在真实仓库自主定位、修改、测试代码,完成 issue 修复
- SWE-agent 的 ACI:给模型精简易用的命令与文件查看器,比原始 shell 易掌握
- 靠真实执行反馈闭环:改码 → 跑测试 → 看报错 → 继续改;Devin 加长期规划与独立部署
扩展知识
- SWE-bench 从真实 GitHub issue 评测能否生成可过测试的 patch
- 详细讲解:AI Agent
49. browser agent(WebArena)是什么?
📋 回答重点
- LLM 通过操作浏览器(点击/输入/导航)完成真实网页任务
- 实现:Playwright/Selenium 控制,观察用 DOM/截图(+A11y 树),动作是点击输入滚动导航
- WebArena 是真实网站(电商/论坛/GitLab/地图/CMS)基准,评测任务完成率
扩展知识
- 难点:页面状态大、动作空间大、动态内容、登录/验证码
- 详细讲解:AI Agent
50. Agent 和 Workflow 的边界如何划分?
📋 回答重点
- Workflow:流程固定可预测、步骤可枚举 → 预编排(更可靠可控省成本)
- Agent:任务开放、需动态决策(未知路径/探索)→ 用 Agent
- 实践(Anthropic):能用 workflow 就不用 Agent,常用混合架构,给 Agent 明确任务+清晰工具+结构化输出换可靠性
扩展知识
- 主干用 workflow,少数节点是 Agent
- 详细讲解:AI Agent