本文基于公众号「小林coding」的《面试官:”Agent 不就是 LLM 加点工具?”》一文,按其”概念型知识”四段式模板重组成一份可速查、可面试复习的文档。
一、一句大白话描述概念
Agent(智能体)就是让大语言模型(LLM)在”思考—行动—观察”的循环里,自己决定调用工具、一步步把任务真正干完的系统——LLM 负责”想”,工具负责”做”,循环让它能持续推进直到目标达成。
围绕 Agent,业界还沉淀了一整套”能力—连接—知识—协作”的概念体系:
- Function Call:让 LLM 学会”打电话”(调外部函数)
- MCP:统一插口(”AI 界的 USB-C”),标准化连接工具
- Skills:菜谱/方法论,教 Agent”怎么做”
- A2A:让多个 Agent 之间互相发现、委派任务
二、图示
概念分层全景:
1 | LLM 大语言模型 |
三、知识点
1. LLM 与 Agent 的区别
- LLM 四大弊端:①只会说不会做 ②没有记忆(上下文窗口外即归零)③不会用工具(无法实时查数据/调 API)④不会规划(被动响应,无法自主拆解任务)。
- Agent 定义:
Agent = LLM + 工具 + 循环。三关键词:LLM(大脑)、工具(手脚)、循环(思考→行动→观察→再思考)。 - Agent 四模块:大脑(LLM) / 规划 / 记忆(短期+长期) / 工具。
2. Agent 与 Workflow 的区别
- 核心区别:谁在控制流程。
- Workflow:控制权在代码(步骤写死、确定可复现、token 省,约为 Agent 的 1/4)。
- Agent:控制权在 LLM(动态灵活但不确定、token 贵)。
- 实践建议(Anthropic):从最简单方案开始;固定步骤 / 高可靠场景用 Workflow,开放 / 不确定场景用 Agent;生产中多为混合架构(流水线上局部挂 Agent)。
3. Agent 的四种工作模式
- ReAct(边想边做):
Thought → Action → Observation循环,最基础,几乎所有框架底层都在用;透明可审计,但 token 贵、可能陷入循环。 - Plan-and-Execute(先想后做):先列完整计划再逐项执行,规划只做一次,token 约为 ReAct 的 1/5;缺点是计划僵化,可加”重新规划检查点”。
- Reflection(做完再检查):自我反思(同 Agent 切审查者角色)或双 Agent 互审;适合代码 / 法律 / 论文等高质量要求场景。
- Multi-Agent(团队协作):多个专业化 Agent 分工协作(规划 / 搜集 / 编码 / 测试);框架有 LangGraph、CrewAI、OpenAI Agents SDK、AutoGen。
- ⚠️ Anthropic 提醒:不要过早引入多 Agent,单 Agent 够用就别上。
- 💡 个人见解:Multi-Agent 的关键不只是”跑多个 Agent 进程”,更在于引入多个大模型——不同模型训练数据、擅长方向各异。落地思路:先按各模型的能力偏向做评估,再为每个 Agent 设定差异化的角色提示词,让它们各司其职、协同完成任务(例如推理强的模型负责规划、代码强的模型负责编码、知识面广的模型负责搜集)。这比单纯”同一模型多角色”更能发挥模型间的互补性。
- 四者非互斥,常组合使用(Multi-Agent 内部可能用 ReAct,整体再挂 Reflection)。
4. Function Call(函数调用)
- 让 LLM 不仅能生成文字,还能输出”我想调某函数、参数是这些”的结构化指令;真正执行函数的是你的应用代码,LLM 只产出调用请求。
- 四步流程:①定义函数(JSON 描述) ②模型判断要调哪个、提取参数 ③应用执行 ④把结果回填给 LLM 生成回答。
- 定位:Agent 的原子操作 / 基石,几乎所有主流大模型都支持(格式略有差异)。
5. MCP(Model Context Protocol)
- 比喻:”AI 界的 USB-C”——统一标准,让任意 AI 应用用同一种方式连任意工具 / 数据源。
- 核心价值:把
N×M的定制集成降到N+M(每应用实现一次 Client,每服务实现一次 Server,自动对接);工具可被动态发现。 - 三角色:Host(AI 应用,发起方)、Client(住 Host 内、负责通信的”翻译官”)、Server(暴露具体工具能力)。Anthropic 于 2024-11 开源。
6. Skills(技能)
- 自然语言指令文件(常为
SKILL.md),教 Agent”在什么场景、按什么方法、遵循什么规范完成任务”——类比”菜谱”。 - 本质:提示词扩展,完全在 Agent 上下文窗口内生效,不涉及外部调用,与 Function Call / MCP 不同。
- 价值:把领域专家经验(代码审查、SQL 优化、客服话术)编码成可复用模块,团队共享。
7. Function Call / MCP / Skills 三者区别
| 维度 | Function Call | MCP | Skills |
|---|---|---|---|
| 解决的问题 | LLM 怎么跟外部函数交互 | 用统一标准管理大量工具 | Agent 怎么获得领域知识 |
| 运行位置 | 你的应用程序中 | 外部 MCP Server | Agent 上下文窗口内 |
| 技术本质 | API 协议 | 通信标准 | 提示词扩展 |
| 标准化 | 厂商间不统一 | 统一开放标准 | 暂无跨厂商统一标准 |
关系:Function Call 是底层能力;MCP 在其上做标准化包装;Skills 在另一维度指导”何时 / 如何用工具”。三者分层互补(能力层 / 连接层 / 知识层)。
8. A2A(Agent-to-Agent Protocol)
- Google 于 2025-04 Cloud Next 发布,联合 50+ 合作伙伴;解决 Agent 与 Agent 之间的发现与协作——MCP 管不了这块(MCP 是竖向 Agent↔工具,A2A 是横向 Agent↔Agent)。
- 核心概念:
- Agent Card:JSON 名片,描述身份 / 能力 / 擅长领域 / 认证要求;
- Task:任务生命周期(创建 → 处理中 → 完成 / 失败);
- Message & Artifact:过程消息 + 最终制品(如分析报告)。
- 生态现状(截至 2026 年初):仍早期,远未成事实标准,但前景被看好。Agent 协议三层:FC(调用)→ MCP(连工具)→ A2A(连 Agent)。
⚠️ 学习提示:文中 token 比例(1/4、1/5)是经验性示意值,面试时讲”量级差异”即可,勿咬死数字;”Skills 暂无统一标准”基本成立,但 Agent Skills 生态已出现,趋势走向标准化;”MCP 建立在 Function Call 之上”应理解为 MCP 调用工具时底层仍走”模型输出结构化请求→程序执行”的同构机制,二者不在同一抽象层。
四、代码逻辑分析
1. Function Call 四步流程(以查天气为例)
定义函数(告知 LLM 有哪些工具可用):
1 | { |
调用与执行逻辑:
1 | 用户: 上海今天天气如何? |
关键:LLM 只产出结构化调用请求,真正执行在第③步由你的程序完成。
2. SKILL.md 示例(Code_Review_Expert)
1 | --- |
Skills 可通过 allowed-tools 声明可用工具,甚至打包脚本,指导 Agent 去调 MCP / 发起 Function Call。
3. ReAct 循环逻辑(伪代码)
1 | while not done: |
4. MCP 三角色调用时序
1 | 用户提问 |