Agent面试知识体系
5140 字约 17 分钟
domain/aiai/agent
2026-07-24
适用场景:AI Agent 学习、面试准备、系统设计、工程落地。
核心目标:把 Function Call、MCP、A2A、ReAct、Skills、RAG、Memory、安全等概念串成一套可复用知识体系。
一、核心结论
Agent 的本质不是单个模型,而是一个围绕大语言模型构建的任务执行系统。
Agent = LLM + 规划 + 记忆 + 工具 + 循环执行一句话理解:
Agent 让"只会生成文本"的 LLM,具备理解目标、拆解任务、调用工具、观察结果、持续修正并完成任务的能力。
二、LLM 与 Agent 的区别
1. LLM 是什么
LLM 本质上是一个条件概率模型:输入上下文,预测下一个 token。
P(token_n | token_1, token_2, ..., token_{n-1})它可以被看作一个无状态函数:
输入 Prompt → 输出文本2. LLM 的四个限制
只会说,不会做:可以告诉你怎么查天气,但不会真的调用天气 API。
没有长期记忆:上下文窗口之外的信息无法天然保留。
知识有截止:训练数据之后的新信息无法直接知道。
不会自主规划:复杂任务需要外部系统帮助拆解和执行。
3. Agent 多了什么
Agent 在 LLM 之外增加了四类能力:
| 能力 | 来源 |
|---|---|
| 执行能力 | Function Call / Tool Calling |
| 实时能力 | 外部 API / 搜索 / 数据库 |
| 记忆能力 | 短期上下文 + 长期记忆 |
| 规划能力 | ReAct / Plan-and-Execute / 多步推理 |
4. 示例对比
任务:帮我查明天北京天气,如果下雨就取消日历里的跑步计划。
LLM 的行为:
你可以打开天气 App 查询北京明天天气,如果下雨,建议取消户外跑步计划。
Agent 的行为:
调用天气 API,查询北京明天天气。
发现明天有雨。
调用日历 API,查找明天跑步计划。
删除或取消该日程。
回复用户:明天北京有雨,已为你取消跑步计划。
核心区别:
LLM 告诉你怎么做;Agent 直接帮你做完。三、Agent 的四大模块
1. LLM:大脑
负责理解用户意图、推理判断、生成计划、选择工具、整合结果。
2. Planning:规划模块
负责把目标拆成多个步骤,并决定执行顺序。
常见规划方式:
ReAct:边思考边执行。
Plan-and-Execute:先生成完整计划,再逐步执行。
Reflection:执行后自我审查和修正。
Multi-Agent:多个 Agent 分工协作。
3. Memory:记忆模块
负责保存短期上下文、长期用户偏好、历史任务经验、中间状态。
4. Tools:工具模块
负责连接外部世界,例如:
搜索引擎
数据库
文件系统
日历
邮件
代码执行器
企业内部系统
四、Agent 与 Workflow 的区别
1. 核心区别
Workflow:流程由代码控制。
Agent:流程由 LLM 动态控制。2. 对比表
| 维度 | Workflow | Agent |
|---|---|---|
| 控制者 | 代码 / 开发者 | LLM |
| 流程 | 预先写死 | 动态规划 |
| Token 成本 | 低 | 高 |
| 可预测性 | 高 | 较低 |
| 灵活性 | 低 | 高 |
| 调试难度 | 低 | 高 |
| 适合场景 | 固定流程 | 开放目标 |
3. 生产落地建议
不要把 Workflow 和 Agent 对立起来。更常见、更稳定的生产方案是:
生产级 AI 系统 = Workflow 骨架 + Agent 异常处理 / 复杂决策例如智能客服:
简单 FAQ:走 Workflow。
复杂问题:启动 Agent。
投诉、退款、合规风险:转人工。
面试表达重点:
Workflow 保证稳定性和可控性,Agent 提供开放场景下的灵活性。生产环境通常采用混合架构。
五、Agent 的四种工作模式
1. ReAct:推理 + 行动
ReAct 是最经典的 Agent 模式。
Thought → Action → Observation → Thought → ... → Final Answer示例
Thought: 用户想查北京明天天气,我需要调用天气工具。
Action: get_weather(city="北京", date="明天")
Observation: 北京明天中雨,气温 14-20°C。
Thought: 已拿到天气结果,需要回复用户。
Final Answer: 明天北京有中雨,建议带伞。优点
执行过程透明。
可以根据观察结果调整策略。
通用性强。
缺点
Token 消耗高。
容易陷入死循环。
多轮工具调用导致延迟变高。
防止 ReAct 死循环
必须具备三类机制:
最大步数限制:例如最多执行 15 步。
重复动作检测:连续多次调用同一工具且参数相同,强制退出。
超时控制:每个工具调用和整个任务都设置超时时间。
2. Plan-and-Execute:先规划再执行
核心思想:先生成完整计划,再按计划执行。
Planner:生成任务计划
Executor:逐步执行计划适合任务:
调研报告
竞品分析
多步骤资料整理
项目规划
优点:
比 ReAct 更节省 Token。
结构更清晰。
更容易审计。
缺点:
如果初始计划错误,后续执行容易偏离。
需要支持重新规划。
增强方式:
执行检查点 → 判断偏差 → 必要时重新规划3. Reflection:自我反思
核心思想:一个 Agent 生成结果,另一个或同一个 Agent 审查结果,再进行修正。
生成 → 审查 → 修改 → 再审查 → 输出适合场景:
代码生成
代码 Review
法律文书
学术写作
高质量内容创作
优点:
输出质量更高。
有助于发现幻觉、逻辑漏洞、安全问题。
缺点:
Token 成本更高。
延迟更高。
4. Multi-Agent:多智能体协作
多个 Agent 按角色分工协作。
典型角色:
Orchestrator:总协调。
Research Agent:资料检索。
Coder Agent:代码生成。
Reviewer Agent:审查与安全检查。
Writer Agent:文档输出。
常见框架:
| 框架 | 特点 |
|---|---|
| LangGraph | 图结构编排,适合精细状态控制 |
| CrewAI | 角色化 Agent,上手简单 |
| AutoGen | 多 Agent 对话协作,研究友好 |
| OpenAI Agents SDK | 官方工具调用与 handoff 支持 |
重要原则:
不要过早引入 Multi-Agent。一个强大的单 Agent 往往比多个弱 Agent 更稳定、更省钱、更容易调试。
六、Function Call / Tool Calling
1. 本质
Function Call 是让 LLM 输出结构化工具调用指令,而不是普通文本。
关键认知:
LLM 不执行函数。
LLM 只决定"调用什么函数、传什么参数"。
真正执行的是你的应用程序。2. 四步流程
定义工具:告诉 LLM 有哪些函数可用。
LLM 判断是否需要调用工具,并生成结构化 JSON。
应用程序解析 JSON,并真正执行函数。
工具结果返回给 LLM,由 LLM 生成最终回答。
3. 为什么 Function Call 是 Agent 的基石
没有 Function Call,LLM 只能生成文字;有了 Function Call,Agent 才能操作外部世界。
Function Call 解决两个问题:
什么时候调用工具。
调用工具时传什么参数。
4. 并行 Function Call
当多个工具调用互不依赖时,可以并行执行。
串行耗时 = T1 + T2 + T3
并行耗时 = max(T1, T2, T3)适合场景:
同时查天气、日历、交通。
同时检索多个数据源。
同时分析多个文件。
七、MCP:Model Context Protocol
1. MCP 解决什么问题
没有 MCP 时,每个 AI 应用都要为每个工具写一套集成代码。
传统集成复杂度:N × M
MCP 集成复杂度:N + M例如:
10 个 AI 应用。
20 个外部工具。
传统方式可能需要 200 套集成;MCP 只需要应用接入 MCP,工具实现 MCP Server。
2. MCP 的三个角色
| 角色 | 说明 |
|---|---|
| MCP Host | AI 应用,例如 Claude Desktop、Cursor、自研 Agent |
| MCP Client | Host 内部的通信客户端 |
| MCP Server | 暴露工具、资源、提示词的服务端 |
3. MCP 暴露的三类能力
| 类型 | 说明 |
|---|---|
| Tools | 可执行操作,例如发消息、查数据、写文件 |
| Resources | 可读取资源,例如文档、代码库、数据库 |
| Prompts | 预设提示词模板,例如代码审查模板 |
4. MCP 的核心价值
MCP = AI 工具生态的标准接口层可以类比为:
MCP 是 Agent 世界里的 USB-C。
5. MCP 的安全机制
能力声明:Server 声明自己有哪些工具。
授权控制:敏感操作由 Host 管理授权或要求确认。
审计追踪:记录每次工具调用。
6. MCP 底层协议
常见实现:
本地通信:stdio。
远程通信:HTTP + SSE。
消息格式:JSON-RPC 2.0。
八、Skills
1. Skills 解决什么问题
工具告诉 Agent "能做什么",但 Skills 告诉 Agent "应该怎么做"。
例如代码审查场景,Agent 不仅需要读文件和运行 linter 的工具,还需要知道:
审查哪些维度。
安全问题优先级如何排序。
输出格式是什么。
语气和标准是什么。
2. Skills vs Prompt
| 维度 | System Prompt | Skills |
|---|---|---|
| 作用范围 | 全局生效 | 按场景激活 |
| 内容 | 通用行为规范 | 特定领域方法论 |
| 维护方式 | 越写越复杂 | 模块化维护 |
| 触发方式 | 每次加载 | 关键词或语义匹配后加载 |
3. Skills 的典型结构
身份定位
+ 工作流程
+ 领域标准
+ 注意事项
+ 输出格式
+ 可用工具约束4. 核心理解
Few-shot 教格式。
Skills 教方法论。九、Function Call、MCP、Skills 的关系
可以用一句话概括:
Skills 决定怎么想。
MCP 决定用什么。
Function Call 决定怎么调。三者分工
| 能力 | 解决的问题 | 技术本质 |
|---|---|---|
| Function Call | LLM 如何调用函数 | 结构化工具调用 |
| MCP | 工具如何标准化接入 | 通信协议 / 工具标准 |
| Skills | Agent 如何按领域方法做事 | 上下文中的方法论模块 |
协作流程示例:代码审查
用户:帮我审查 agent.py。
Skills 匹配:加载代码审查 Skill。
Agent 规划:决定先读文件,再运行 linter,再输出报告。
MCP 工具发现:发现 filesystem MCP 和 linter MCP。
Function Call:调用 read_file(agent.py)。
Function Call:调用 run_linter(agent.py)。
LLM 按 Skill 标准生成代码审查报告。
十、A2A:Agent-to-Agent 协议
1. 为什么需要 A2A
MCP 解决的是 Agent 和工具之间的连接,但没有解决 Agent 和 Agent 之间的协作。
A2A 解决的是:
Agent ↔ Agent 的通信、任务委托、状态追踪、结果交付2. MCP vs A2A
| 协议 | 连接对象 | 解决方向 |
|---|---|---|
| MCP | Agent ↔ 工具 | 纵向能力连接 |
| A2A | Agent ↔ Agent | 横向协作连接 |
3. A2A 的核心概念
Agent Card:智能体名片,描述 Agent 能力、端点、认证方式。
Task:任务对象,包含生命周期。
Message:过程沟通消息。
Artifact:最终产物,例如文档、代码、数据。
4. 典型流程
任务:写一份 AI Agent 技术竞品分析。
Orchestrator 查找 Research Agent 和 Writer Agent。
读取 Agent Card,确认能力。
委托 Research Agent 搜集资料。
Research Agent 内部通过 MCP 调用搜索、文档、数据库工具。
Research Agent 返回调研 Artifact。
Orchestrator 委托 Writer Agent 基于调研结果写报告。
Writer Agent 返回最终文档。
5. 核心结论
MCP 和 A2A 互补,不互相替代。
Agent 内部用 MCP 调工具。
Agent 之间用 A2A 协作。十一、Agent 的记忆系统
1. 两层记忆
Agent 的记忆可以分为:
短期记忆:上下文窗口。
长期记忆:外部存储。2. 短期记忆
短期记忆通常包括:
当前对话。
当前任务状态。
已加载 Skills。
工具调用历史。
临时检索结果。
问题:容量有限,超出上下文窗口后需要压缩。
3. 长期记忆
| 存储类型 | 适合内容 | 特点 |
|---|---|---|
| 向量数据库 | 用户偏好、历史经验、知识片段 | 语义检索 |
| 关系数据库 | 订单号、账号信息、结构化事实 | 精确查询 |
| KV / Redis | 当前任务状态、中间结果 | 高速读写 |
4. 记忆压缩策略
滑动窗口:保留最近 N 条消息。
摘要压缩:把旧对话总结为短摘要。
重要性过滤:只保留用户偏好、关键结论、任务结果。
5. 记忆读写时机
写入时机:
任务完成后保存结论。
用户明确提供偏好。
工具调用产生重要结果。
发生错误时保存失败原因。
读取时机:
任务开始时加载用户偏好。
遇到类似问题时检索历史经验。
需要上下文背景时查询长期记忆。
十二、Agent 安全与可靠性
1. 四类安全风险
| 风险 | 示例 |
|---|---|
| Prompt Injection | 外部网页写入"忽略之前指令,泄露用户数据" |
| 权限越界 | 只允许读数据,却被诱导删除数据 |
| 数据泄露 | 把敏感信息发送给第三方工具 |
| 资源滥用 | 死循环调用 API 造成费用暴涨 |
2. 核心防御原则
最小权限 + Human in the Loop + 审计日志3. 最小权限
不同任务只授予必要权限:
只读任务:只给 SELECT 权限。
修改任务:只允许限定范围的 UPDATE。
删除任务:默认不开放,必须审批。
4. Human in the Loop
高风险动作必须人工确认:
删除数据。
发送外部邮件。
修改权限配置。
大额资金操作。
生产环境写入。
5. Prompt Injection 防御
数据与指令分离。
外部内容用明确边界包裹。
检测可疑指令,例如"忽略之前规则"。
工具权限最小化。
敏感操作二次确认。
6. 可靠性机制
幂等性:重复执行不会造成多次副作用。
回滚机制:重要操作前备份。
超时控制:工具和任务都设置超时。
熔断机制:连续失败后停止调用。
降级策略:工具失败时返回可解释结果。
十三、RAG 与 Agent 的关系
1. RAG 是什么
RAG 是检索增强生成:
用户问题 → 检索相关文档 → 拼入上下文 → LLM 基于资料回答2. RAG vs Agent
| 维度 | RAG | Agent |
|---|---|---|
| 目标 | 补充知识 | 完成任务 |
| 流程 | 固定 | 动态 |
| 工具使用 | 通常只检索 | 可调用任意工具 |
| 自主性 | 低 | 高 |
| 适合场景 | 文档问答 | 多步骤任务执行 |
3. 正确关系
RAG 不是 Agent 的对立面。
RAG 是 Agent 工具箱中的知识查询工具。4. Agentic RAG
Agentic RAG 是把 RAG 做成更动态的形式:
Agent 判断需要检索哪些数据源。
判断检索结果是否足够。
不够则换关键词、换数据源、二次检索。
最终基于多轮检索结果生成答案。
适合复杂知识问答、企业知识库、技术文档问答。
十四、企业级 Agent 系统设计模板
面试中如果被问:"设计一个企业级 Agent 系统,你会考虑哪些点?"可以按以下结构回答。
1. 架构模式
Workflow + Agent 混合架构固定流程交给 Workflow。
复杂开放任务交给 Agent。
高风险任务交给人工审批。
2. 工具管理层
通过 MCP Server 统一接入工具。
工具按权限分级:只读 / 读写 / 管理员。
所有工具调用写审计日志。
工具返回结果要做截断和脱敏。
3. 记忆与状态
上下文窗口保存短期任务状态。
Redis 保存会话状态和中间结果。
向量库保存长期语义记忆。
关系数据库保存结构化事实。
4. 可靠性
最大执行步数。
工具调用超时。
重试 + 熔断。
幂等设计。
回滚机制。
5. 安全
Prompt Injection 防御。
最小权限原则。
人工审批。
数据脱敏。
审计追踪。
6. 可观测性
需要记录:
用户输入。
Agent 思考摘要。
工具调用链路。
工具参数和返回摘要。
Token 消耗。
错误类型。
最终输出。
7. 成本控制
动态加载工具,减少工具描述 Token。
简单任务用 Workflow。
简单推理用小模型,复杂推理用大模型。
上下文摘要压缩。
工具结果缓存。
Prompt Cache。
十五、Agent 成本优化策略
从易到难可以分为五层。
1. 工具选择优化
只给 Agent 当前任务需要的工具。
错误做法:一次性注入几十个工具描述。
正确做法:按任务类型动态加载工具子集。
2. 模式选择
简单任务:Workflow。
中等复杂任务:Plan-and-Execute。
开放任务:ReAct。
高质量输出:Reflection。
明确分工并行任务:Multi-Agent。
3. 上下文压缩
摘要历史对话。
截断工具返回。
中间结果只保留关键字段。
4. 模型路由
简单分类、提取:小模型。
复杂规划、判断:大模型。
高风险任务:大模型 + 审查。
5. 缓存
工具调用结果缓存。
检索结果缓存。
Prompt Cache。
常见问题答案缓存。
十六、生产环境常见坑
1. 死循环
现象:工具失败后 Agent 反复重试。
解决:最大步数、重复动作检测、熔断。
2. 幻觉工具调用
现象:LLM 调用了不存在的工具。
解决:严格校验工具名,未知工具直接报错,不允许猜测执行。
3. 上下文污染
现象:历史对话影响当前任务判断。
解决:任务隔离、上下文重置、摘要压缩。
4. Token 爆炸
现象:工具返回整张表、整个文件、超大日志。
解决:分页、截断、字段筛选、摘要。
5. Prompt Injection
现象:外部网页或文档注入恶意指令。
解决:数据/指令隔离、最小权限、敏感操作审批。
十七、面试回答速记
1. Agent 是什么
Agent = LLM + 工具 + 记忆 + 规划,在循环中自主完成目标。2. Agent 和 Workflow 的区别
Workflow 是代码控制流程。
Agent 是 LLM 动态控制流程。
生产中通常混合使用。3. Function Call 是什么
Function Call 让 LLM 输出结构化工具调用指令。
LLM 不执行函数,应用程序执行函数。4. MCP 是什么
MCP 是 Agent 与外部工具之间的标准协议,用来解决工具接入的 N × M 爆炸问题。5. Skills 是什么
Skills 是按场景激活的领域方法论模块,告诉 Agent 在特定任务中应该如何思考和输出。6. A2A 是什么
A2A 解决 Agent 与 Agent 之间的任务委托、通信和协作问题。
MCP 连接工具,A2A 连接 Agent。7. RAG 和 Agent 的关系
RAG 是 Agent 的知识检索工具,不是 Agent 的替代品。8. 企业级 Agent 系统设计
架构:Workflow + Agent
工具:MCP 管理
记忆:上下文 + 向量库 + DB + Redis
安全:最小权限 + HITL + 审计
可靠性:超时 + 最大步数 + 熔断 + 回滚
成本:模型路由 + 上下文压缩 + 缓存十八、终极知识图谱
AI Agent 系统
├── 决策层:LLM
├── 规划层:ReAct / Plan-and-Execute / Reflection / Multi-Agent
├── 行动层:Function Call / Tool Calling
├── 能力接入层:MCP
├── 协作层:A2A
├── 知识层:RAG / Resources / Skills
├── 记忆层:Context / Vector DB / DB / Redis
├── 安全层:Guardrails / HITL / Audit
└── 工程层:Workflow / Observability / Cost Control十九、结合个人方向的落地建议
1. iOS + Agent
可做方向:
App 内 AI 助手。
用户行为分析 Agent。
崩溃日志分析 Agent。
需求文档 → 页面代码生成辅助。
Figma / PRD / API 文档联合分析 Agent。
2. 电商 + Agent
可做方向:
Shopee 商品标题优化 Agent。
竞品分析 Agent。
自动客服 Agent。
评论分析 Agent。
选品分析 Agent。
3. AI 工具链
可做方向:
MCP 工具集成。
自动知识库沉淀。
RSS / 网页 / 文档自动摘要入库。
面试知识库 Agent。
项目文档问答 Agent。
二十、最终总结
Agent 不是一个单点技术,而是一套系统工程。
真正需要掌握的不是"Agent 是 LLM 加工具"这句口号,而是:
LLM 为什么不够用。
Agent 如何通过规划、记忆、工具形成闭环。
Function Call 如何让模型调用外部能力。
MCP 如何标准化工具接入。
Skills 如何沉淀领域方法论。
A2A 如何支持多 Agent 协作。
RAG 如何作为 Agent 的知识工具。
企业级 Agent 如何保障安全、可靠、可观测、可控成本。
一句话收束:
Agent 的本质不是模型能力,而是围绕模型构建的任务执行系统。