最近开始认真看 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 应用WorkflowAgent
核心生成内容按预设流程执行围绕目标自主决策
下一步谁决定程序/用户程序员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

就不会像刚开始一样完全混在一起了。

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐