AI Agent 到底是什么?和普通大模型、Workflow、MCP 有什么区别?
最近开始认真看 AI Agent,发现一个很有意思的事情。
现在关于 AI 的名词越来越多:
LLM
Agent
Workflow
Tool Calling
Function Calling
MCP
RAG
Memory
Multi-Agent
单独看每一个,好像都能理解。
但放到一起就开始乱:
ChatGPT 这种大模型本身算不算 Agent?
会调用工具就是 Agent 吗?
Agent 和 Workflow 到底有什么区别?
MCP 最近为什么到处都在讲?
MCP 是不是有了之后,就不需要 Function Calling 了?
我一开始也一直把这些东西混在一起。
后来发现,其实只要先抓住一条线:
大模型负责“想”
工具负责“做”
Workflow 负责“按照规定流程做”
Agent 负责“自己决定下一步怎么做”
MCP 负责“让外部工具更标准地接进来”
很多概念一下就顺了。
这篇就按照这个思路,把 AI Agent 最基础的一层理清楚。
一、先别急着讲 Agent,普通大模型到底是什么?
先从最简单的开始。
假设我问一个大模型:
帮我写一封请假邮件。
它收到输入:
用户 Prompt
↓
LLM
↓
生成文本
最后给我:
老师您好,因为身体不适……
这其实已经很强了。
它可以:
写文章
翻译
总结
写代码
回答问题
分析文本
但这里有一个问题:
它主要是在“生成答案”
如果我对它说:
帮我看看我明天下午有没有会议,如果没有,就给张三发邮件约三点开会。
单纯的大模型其实做不了完整闭环。
因为这里涉及:
读取我的日历
↓
判断有没有空
↓
找到张三邮箱
↓
发送邮件
这些事情都发生在模型之外。
大模型本身不会凭空拥有:
我的 Google Calendar
我的邮箱
公司的数据库
服务器 Shell
浏览器
文件系统
所以可以先把普通 LLM 理解成:
一个很强的大脑,但这个大脑不一定有手和脚。
二、工具 Tool 出现以后,大模型开始能“做事”了
如果我们给模型增加几个工具:
check_calendar()
send_email()
search_web()
read_file()
run_python()
事情就不一样了。
用户说:
看一下我明天下午有没有空,有空的话给张三发邮件约三点。
模型可以决定:
我要先查日历。
于是产生一次工具调用:
check_calendar("tomorrow afternoon")
程序真正去查询日历,再把结果返回给模型。
模型看到:
15:00 - 17:00 没有会议
然后继续判断:
可以约三点。
再调用:
send_email(...)
这时整个过程开始变成:
用户
↓
LLM
↓
选择工具
↓
程序执行工具
↓
工具结果
↓
LLM 再判断
↓
继续调用工具 / 返回答案
这已经开始有一点 Agent 的味道了。
OpenAI 当前 Agents SDK 对 Agent 的基础定义也很直观:一个 Agent 是配置了 instructions、tools,并且还可以拥有 handoff、guardrail 等运行行为的 LLM;SDK 还提供循环执行、会话、人工介入等机制。
三、所以 AI Agent 到底是什么?
我现在更喜欢把 Agent 理解成:
一个以大模型作为决策核心,能够根据当前环境和执行结果,自主决定下一步行动,并通过工具持续完成目标的系统。
注意这里最重要的不是:
用了大模型
甚至也不是:
会调用工具
真正关键的是:
它存在一个循环
可以简单画成:
┌──────────────┐
│ 用户目标 │
└──────┬───────┘
↓
┌──────────────┐
│ LLM │
│ 理解 / 判断 │
└──────┬───────┘
↓
下一步做什么?
↓
┌───────────┴───────────┐
↓ ↓
调用工具 直接回答
↓
得到结果
↓
重新观察当前情况
↓
再次交给 LLM 判断
↓
继续行动……
Anthropic 对 Agent 的描述也很接近这个思路:Agent 往往就是 LLM 根据环境反馈,在循环中使用工具;它更适合那些无法提前确定需要多少步骤、也很难把完整路径写死的问题。
所以:
Agent 最大的特点其实是“动态决策”。
四、举一个最简单的例子
假设任务是:
帮我调查最近 AI Agent 的发展,并整理成一份文章。
普通 LLM:
根据自己的已有知识
直接生成一篇文章
带搜索工具的 Agent 则可能:
先理解任务
↓
搜索 AI Agent
↓
发现 MCP 最近更新
↓
继续搜索 MCP 官方资料
↓
搜索 Agent 框架
↓
对比不同资料
↓
发现某个结论存在冲突
↓
再搜索一次确认
↓
整理信息
↓
生成文章
注意:
用户并没有提前规定:
必须搜索几次
必须访问哪三个网站
必须先 MCP 再 Agent SDK
这些步骤可能是 Agent 根据中间结果自己决定的。
这就是 Agent 和固定流程最大的区别之一。
五、Workflow 又是什么?
Workflow 翻译过来就是:
工作流。
它其实并不是 AI 出现以后才有的概念。
传统 IT 自动化里面早就有 Workflow。
比如:
用户上传简历
↓
解析 PDF
↓
提取姓名和联系方式
↓
存数据库
↓
发送确认邮件
这些步骤是程序员提前写好的。
无论今天上传的是:
张三.pdf
还是:
李四.pdf
流程基本都是:
A → B → C → D
六、Workflow 和 Agent 最大的区别
我觉得这是整篇最值得记住的一句话:
Workflow 是人提前决定流程,Agent 是模型运行时决定流程。
例如我要做一个服务器巡检。
Workflow 的写法
程序员提前规定:
1. 执行 df -h
2. 执行 free -h
3. 执行 uptime
4. 执行 systemctl --failed
5. 收集结果
6. 输出报告
无论服务器有没有问题,都按照这套流程执行。
这就是 Workflow。
Agent 的写法
我只告诉它:
检查这台 Linux 服务器有没有异常,有问题的话继续定位原因。
Agent 可能先:
uptime
发现 Load 很高。
于是决定:
top
发现某个进程 CPU 99%。
继续:
ps -fp PID
发现是 Java。
再看:
journalctl
如果发现其实负载正常,它可能根本就不会走这一套。
所以执行路径可能是:
A → B → C
也可能:
A → D → F → G → H
甚至可能执行十几步。
Anthropic 在工程实践中也是这样区分二者的:Workflow 的 LLM 和工具通过预定义代码路径运行,而 Agent 则由 LLM 动态指导自己的流程和工具使用。
七、那是不是 Agent 一定比 Workflow 高级?
不是。
这是我刚开始学的时候一个很大的误区。
我以前会觉得:
Workflow
↓
比较低级
Agent
↓
更智能,更高级
其实工程上完全不是这么回事。
比如:
付款
删除数据库
发布生产版本
员工离职
创建云服务器
修改防火墙策略
很多步骤你根本不希望 AI:
“自己看着办。”
这种场景反而更适合:
确定性 Workflow
+
局部使用 LLM
+
重要步骤人工确认
Agent 的自由度更高,但这也意味着:
成本更难预测
执行时间更难预测
可能走错路径
错误可能累积
安全边界更复杂
Anthropic 也特别提醒:Agent 的自主性会带来更高成本和错误累积风险,因此需要测试、隔离环境和适当的 guardrails。
所以实际系统经常不是:
Agent VS Workflow
而是:
Agent + Workflow
八、举个更真实的例子
假设我们做一个:
网络故障处理助手。
可以把固定流程写成 Workflow:
接口 Up 吗?
↓
有 IP 吗?
↓
有默认路由吗?
↓
网关能 Ping 吗?
↓
DNS 正常吗?
但如果发现:
网关 Ping 不通
后面究竟检查:
ARP?
VLAN?
网卡?
路由?
防火墙?
虚拟机 Bridge?
就可以交给 Agent 根据现场情况决定。
于是架构变成:
Workflow
负责主流程和安全边界
+
Agent
负责不确定问题的判断和深入排查
我觉得这才是比较容易理解的真实 Agent 系统。
九、那 MCP 又是什么?
接下来就是最近很火的 MCP。
MCP:
Model Context Protocol
模型上下文协议。
官方当前给出的比喻非常形象:
可以把 MCP 理解成 AI 应用世界里的 USB-C。
USB-C 的价值不是:
让电脑变聪明
而是:
统一连接方式
鼠标、硬盘、显示器、手机都能通过一套标准接口连接。
MCP 做的事情也类似。
它定义了一套开放标准,让 AI 应用能够以更统一的方式连接:
文件
数据库
搜索引擎
GitHub
Notion
浏览器
企业内部系统
各种 API
截至当前 MCP 官方文档,它可以让服务器向 AI 应用提供 tools、resources、prompts 等能力。
十、没有 MCP 以前,Agent 怎么调用工具?
当然也能调用。
比如我要让 Agent 查数据库。
可以自己写:
def query_database(sql):
...
另一个项目也需要查数据库:
def query_database_again(sql):
...
又一个 AI 应用也需要:
重新集成一次
于是就变成:
AI 应用 A ───── 自定义 ──── 数据库
AI 应用 B ───── 自定义 ──── 数据库
AI 应用 C ───── 自定义 ──── 数据库
每家都有自己的一套连接方式。
十一、有 MCP 以后发生了什么?
如果数据库能力做成:
MCP Server
支持 MCP 的 AI 应用就可以通过标准接口连接它。
大概变成:
┌──────── 文件系统 MCP Server
│
AI Application ├──────── GitHub MCP Server
│
├──────── 数据库 MCP Server
│
└──────── 搜索 MCP Server
AI 应用本身充当 MCP Host,并为不同 MCP Server 建立对应的 MCP Client。官方架构目前就是 Host—Client—Server 模型。
所以 MCP 解决的是:
AI 应用怎样标准化地发现和使用外部能力。
它没有替 Agent:
思考
规划
决定下一步
十二、一个特别重要的问题:MCP 是 Agent 吗?
不是。
MCP 更像:
接口标准
Agent 更像:
任务执行者
就像:
USB-C
不是电脑。
同样:
MCP
也不是 Agent。
十三、用了 MCP 就一定是 Agent 吗?
也不是。
比如一个普通聊天机器人连接 MCP 文件服务器:
用户:
帮我读取 README.md
↓
AI:
调用 MCP 文件工具
↓
读取 README.md
↓
回答
它完全可以只进行一次工具调用。
这并不代表系统一定拥有明显的自主 Agent Loop。
所以:
使用 MCP
≠
一定是 Agent
十四、Agent 也不一定必须使用 MCP
Agent 可以直接调用:
Python Function
REST API
Shell
SDK
数据库驱动
浏览器工具
所以:
Agent
≠
必须依赖 MCP
MCP 的主要价值是:
让这些外部能力更标准、更容易复用。
十五、那 Function Calling / Tool Calling 又是什么?
这个词也特别容易和 MCP 混。
可以用一个简单场景理解。
模型现在拥有:
get_weather(city)
用户问:
福州今天什么天气?
模型不应该编天气,而是输出一个结构化的工具调用:
调用:
get_weather
参数:
city = 福州
程序真正执行工具,再把结果返回给模型。
这个过程就是常说的:
Function Calling
Tool Calling
不同平台命名和实现会有差异,本质都是:
让模型能够结构化地选择并调用外部工具。
OpenAI 当前 Agents SDK 里就同时支持 function tools 和 MCP server tools,说明二者并不是互相替代的同一个概念。
十六、Tool Calling 和 MCP 到底是什么关系?
我现在是这样理解的。
Tool Calling 回答:
模型想调用哪个工具?参数是什么?
MCP 回答:
这些外部工具和资源如何以标准方式提供给 AI 应用?
比如:
LLM
│
│ “我要调用 query_server”
↓
Agent Runtime
│
│ MCP
↓
Server Management MCP Server
│
↓
真实服务器 API
注意,这只是其中一种架构。
你完全也可以:
LLM
↓
Function Tool
↓
Python 函数
没有 MCP 一样能工作。
十七、Agent、Workflow、MCP 放到一起
现在把它们放进同一张图:
用户目标
│
↓
┌─────────────┐
│ AI Agent │
│ │
│ LLM 决策核心 │
└──────┬──────┘
│
选择下一步行动
│
┌────────────┼─────────────┐
↓ ↓ ↓
搜索工具 文件工具 数据库工具
↑ ↑ ↑
└────── MCP / 其他接口 ────┘
与此同时:
Workflow
负责规定某些固定步骤、审批和执行边界。
于是:
LLM:
负责理解和推理
Agent:
负责围绕目标进行动态决策和执行
Tool:
负责真正执行某个动作
Workflow:
负责预先设计好的流程
MCP:
负责 AI 应用与外部系统之间的标准化连接
十八、Memory 又是什么?
Agent 如果每一步都完全失忆,很多任务就没法完成。
比如:
第一步:
发现磁盘满
第二步:
发现 /var/log 最大
第三步:
继续检查日志
第三步必须知道:
前面发生过什么。
这就是工作上下文。
更长期的系统还可能保存:
用户偏好
历史任务
项目资料
以前的执行结果
通常会把这些能力统称为:
Memory
不过 Memory 不是所有 Agent 必须使用同一种数据库实现的标准组件。
它更多是一个架构概念。
OpenAI Agents SDK 当前就提供 Session 作为持久化工作上下文的一种机制。
十九、RAG 和 Agent 又是什么关系?
RAG:
Retrieval-Augmented Generation
检索增强生成
例如:
用户:
公司报销标准是多少?
↓
系统先检索公司制度文档
↓
找到相关内容
↓
交给 LLM
↓
LLM 根据资料回答
这里的核心是:
先检索
再生成
RAG 本身不一定是 Agent。
如果程序永远固定:
问题 → 搜索知识库 → 回答
它更像一个 Workflow。
而 Agent 可以动态决定:
这个问题需要知识库
→ 调 RAG
那个问题需要互联网
→ 搜 Web
另一个问题需要数据库
→ 查 SQL
所以:
RAG 可以成为 Agent 的一种工具。
二十、普通大模型、Workflow 和 Agent 对比
| 对比 | 普通 LLM 应用 | Workflow | Agent |
|---|---|---|---|
| 核心 | 生成内容 | 按预设流程执行 | 围绕目标自主决策 |
| 下一步谁决定 | 程序/用户 | 程序员 | LLM + Agent Runtime |
| 流程是否固定 | 通常较短 | 比较固定 | 动态 |
| 是否能用工具 | 可以 | 可以 | 通常会 |
| 是否需要循环 | 不一定 | 按流程 | 经常需要 |
| 适合任务 | 问答、总结、写作 | 稳定可预测流程 | 开放式复杂任务 |
| 可控性 | 高 | 很高 | 相对低 |
| 灵活性 | 一般 | 中 | 高 |
| 成本可预测性 | 较强 | 较强 | 较弱 |
二十一、MCP 在这里处于什么位置?
MCP 和前三个其实不是同一维度。
可以这样理解:
LLM / Agent / Workflow
讨论的是:
应用怎么思考和执行任务。
而:
MCP
讨论的是:
应用怎么连接外部能力。
所以严格来说,拿:
Agent VS MCP
做比较,本身就有一点奇怪。
类似于问:
浏览器和 HTTP 有什么区别?
一个是应用。
一个是协议。
二十二、我认为 Agent 最核心的几个组成部分
学习到这里,可以把一个基础 Agent 看成:
┌───────────┐
│ LLM │
│ 大脑 │
└─────┬─────┘
│
↓
Instructions
指令
│
↓
┌─────────────────────┐
│ Agent Loop │
│ │
│ Observe │
│ Think / Decide │
│ Act │
│ Observe again │
└─────────┬───────────┘
│
┌───────┴───────┐
↓ ↓
Tools Memory
│
↓
MCP / API / Function
实际生产系统里还经常加入:
Guardrails
权限
人工确认
Tracing
Evaluation
Retry
Sandbox
Sub-Agent
Agent 就慢慢从一个 Demo 变成了真正的工程系统。
二十三、Multi-Agent 又是什么?
如果一个 Agent 什么都做:
搜索
写代码
查数据库
写报告
审核结果
Prompt 会越来越复杂。
于是出现一种思路:
一个 Agent 做总控
+
多个专业 Agent 分工
比如:
Manager Agent
│
┌────────────┼────────────┐
↓ ↓ ↓
Research Coding Review
Agent Agent Agent
OpenAI Agents SDK 当前提供 Agent-as-tool 和 Handoff 等多 Agent 协作方式;Anthropic 也公开过使用多个 Agent 构建研究系统的工程实践。
不过初学阶段不用急着上 Multi-Agent。
很多事情:
一个 Agent
+
几个好工具
+
清晰 Prompt
就已经足够。
二十四、一个网络运维 Agent 可以是什么样?
因为我本身更熟悉网络方向,所以我后来用这个例子理解 Agent 会特别直观。
用户:
公司一台服务器访问不了互联网,帮我排查。
Agent:
先获取 ip addr
↓
发现 IP 正常
↓
执行 ip route
↓
默认路由正常
↓
Ping 网关
↓
网关正常
↓
Ping 公网 IP
↓
正常
↓
解析域名
↓
失败
↓
查看 resolv.conf
↓
发现 DNS 配置异常
↓
给出修复建议
注意这里并没有提前硬编码:
第 8 步一定检查 DNS。
它是根据前面的结果逐步缩小问题范围。
这就是一个很典型的 Agent 思路。
二十五、Agent 并不是“更聪明的聊天机器人”
这是我觉得最值得纠正的一个认识。
聊天机器人的目标通常是:
给用户一个答案。
Agent 更偏向:
完成一个目标。
比如:
普通聊天:
我应该怎么部署 Nginx?
返回教程。
Agent:
帮我部署 Nginx。
它可能:
检查操作系统
↓
检查软件源
↓
安装 nginx
↓
写配置
↓
执行 nginx -t
↓
发现语法错误
↓
修改
↓
再次测试
↓
启动服务
↓
curl 验证
↓
返回部署结果
这时候 AI 已经从:
“告诉我怎么做”
变成:
“替我去做,并根据结果调整。”
二十六、那为什么最近所有人都在讲 Agent?
因为大模型能力提升以后,它的价值已经开始从:
生成内容
往:
执行任务
移动。
而要执行任务,就自然需要:
Tools
Context
Memory
Workflow
MCP
Agent Loop
权限控制
于是 AI 应用的重点慢慢从:
Prompt 怎么写?
变成:
怎么让模型可靠地完成整个任务?
Anthropic 后续关于 Agent 的工程实践也越来越关注长期运行、工具设计、上下文管理、评测和人工监督,而不是只研究一句 Prompt 怎么写。
二十七、最后用一个比喻把所有概念串起来
假设开了一家公司。
LLM
员工的大脑
会分析、判断、写东西。
Prompt / Instructions
老板给员工的工作要求
Tool
电脑、电话、Excel、数据库
员工真正干活需要的工具。
Tool Calling
员工决定:
“我现在要打开 Excel。”
MCP
公司给所有设备制定了一套统一接口标准
不同工具可以更方便接入员工的工作系统。
Workflow
公司的 SOP
第一步干什么,第二步干什么,已经规定好了。
Agent
一个能根据目标自己判断下一步怎么干的员工
老板只说:
把这个问题解决掉。
它自己决定:
查资料
↓
问数据库
↓
跑程序
↓
看结果
↓
发现不对
↓
换方法
Memory
员工的工作记录和记忆
RAG
公司内部资料库搜索系统
Multi-Agent
一个项目组
有人查资料,有人写代码,有人审核。
这样一想,其实没有那么复杂。
写在最后
刚开始看到 AI Agent 的时候,我会觉得它好像是什么特别新的神秘技术。
后来越看越发现:
Agent 本身的核心想法反而很朴素。
就是:
给大模型一个目标
↓
让它观察当前环境
↓
判断下一步做什么
↓
调用工具执行
↓
获取新的结果
↓
继续判断
↓
直到任务结束
真正困难的其实不是写出这个 Loop。
而是:
怎样给它合适的工具?
怎样避免它乱调用工具?
怎样控制权限?
怎样记录状态?
怎样判断它真的完成了任务?
怎样处理错误?
什么时候必须让人确认?
这些东西才是 Agent 从 Demo 走向真正应用以后要面对的问题。
但作为刚开始学习 AI Agent 的人,目前我觉得先把下面五个概念搞清楚就够了:
LLM:
负责理解和推理。
Tool:
负责真正执行动作。
Workflow:
人提前规定执行流程。
Agent:
模型根据结果动态决定流程。
MCP:
让 AI 应用更标准地连接外部工具和数据。
至少到这里,再看到:
Agentic Workflow
Tool Calling
MCP Server
Multi-Agent
就不会像刚开始一样完全混在一起了。
更多推荐

所有评论(0)