Skip to content

Agent、聊天机器人、工作流与 RAG ​

整体关系图 ​

Chatbot、Workflow、RAG、Agent 经常会同时出现在 一个 AI 产品里,但其实它们解决的是不同问题。

我们先用四句话建立一个整体印象:

text
Chatbot   → 交互
Workflow  → 流程
RAG       → 知识
Agent     → 决策和行动

再展开一点:

text
┌─────────────────────────────────────┐
│              AI 应用                │
│                                     │
│  Chatbot     Workflow      RAG      │
│    对话         流程        知识     │
│                                     │
│              Agent                  │
│           决策 + 行动                │
└─────────────────────────────────────┘

这里并不是说它们之间存在严格的上下级关系或者包含关系。

准确地来说,它们描述的是 AI 系统里的不同能力。

一个产品可以只有其中一种,也可以同时使用多种。

例如一个企业客服产品:

text
用户通过 Chatbot 提问
        ↓
RAG 查询企业知识库
        ↓
Agent 判断下一步怎么处理
        ↓
Workflow 执行固定售后流程

所以真实系统一般不是:

Chatbot、Workflow、RAG、Agent 四选一。

而是:

根据不同问题,把不同能力组合起来。


四个概念分别解决什么问题 ​

Chatbot:负责对话 ​

Chatbot,也就是聊天机器人,首先描述的是一种对话式交互方式。

最简单的结构就是:

text
用户输入
   ↓
模型
   ↓
生成回答

例如:

什么是 RAG?

模型理解问题,然后生成回答。

整个交互过程围绕:

text
用户说什么
↓
系统怎么回答

展开。

所以 Chatbot 最核心的问题是:

怎么通过自然语言和用户交互?

常见场景包括:

  • 智能客服
  • AI 助手
  • 知识问答
  • 陪伴式聊天
  • 产品内的对话入口

Chatbot 更多描述的是产品交互形态。

一个产品虽然看起来是聊天机器人,并不能直接说明它内部使用了什么架构。

它可能只是:

text
Chatbot
 ↓
LLM
 ↓
回答

也可能是:

text
Chatbot
 ↓
RAG
 ↓
LLM
 ↓
回答

还可能是:

text
Chatbot
 ↓
Agent
 ↓
工具
 ↓
执行任务

所以:

聊天框只是交互的一个入口,不能用来判断一个系统是不是 Agent。


Workflow:负责流程 ​

Workflow 关注的是:

一项任务应该按照什么流程来执行。

比如用户上传文章以后:

text
上传文章
   ↓
提取正文
   ↓
生成摘要
   ↓
翻译英文
   ↓
保存结果

这些步骤基本上都可以在任务真正运行之前设计出来。

系统需要做的,就是按照已经定义好的路径执行。

所以 Workflow 更关注:

  • 有哪些步骤
  • 先执行什么
  • 后执行什么
  • 什么条件进入哪个分支
  • 失败以后怎么处理

也就是:

怎么把一套已知流程稳定地跑起来。


RAG:负责知识 ​

RAG 关注的不是流程怎么执行,而是:

模型回答当前问题之前,需要补充哪些外部知识。

例如用户询问:

公司一年有多少天年假?

模型本身可能并不知道公司的内部制度。

于是系统先去知识库查资料:

text
用户问题
   ↓
检索知识库
   ↓
找到年假制度
   ↓
把相关内容交给模型
   ↓
生成回答

RAG 解决的是模型的知识获取问题。

它可以让模型在回答之前获得:

  • 企业内部文档
  • 产品资料
  • FAQ
  • 技术文档
  • 项目知识
  • 持续更新的信息

所以 RAG 最核心的问题是:

回答这个问题需要哪些外部知识?


Agent:负责决策和行动 ​

Agent 关注的是另外一个问题:

为了完成目标,下一步应该做什么?

例如用户提出:

帮我修复项目里的登录异常。

Agent 一开始可能并不知道应该修改哪个文件。

它需要:

text
读取错误
   ↓
判断下一步
   ↓
搜索代码
   ↓
读取结果
   ↓
继续判断
   ↓
修改代码
   ↓
执行测试
   ↓
根据测试结果继续处理

所以 Agent 的重点不是某一条固定流程,而是:

根据当前状态和执行结果,动态决定下一步行动。

它通常会形成一个持续循环:

text
目标
 ↓
判断
 ↓
行动
 ↓
观察
 ↓
再判断
 ↓
……
 ↓
完成任务

分清边界 ​

真正容易让我们混淆的,并不是四个概念的定义,而是现实中的系统经常同时具备它们的一部分特征。


Chatbot 不等于 Agent ​

这是非常容易出现的误解。

很多 Agent 产品同样使用聊天界面,于是很容易形成一种印象:

只要有聊天框,就是 Agent。

实际上并不是。

例如:

text
用户:帮我解释一下什么是 MCP
            ↓
          LLM
            ↓
         生成回答

这完全可以只是一个普通 Chatbot。

它没有因为使用聊天界面就自动变成 Agent。

反过来,一个 Agent 也完全可以通过聊天框接收任务。

例如:

text
用户:
帮我检查这个项目为什么启动失败
          ↓
       Chatbot
       交互入口
          ↓
        Agent
          ↓
读取项目 / 执行命令 / 查看日志
          ↓
持续解决问题

所以更准确的理解是:

Chatbot 更偏向交互形态,Agent 更偏向任务执行能力。

两者并不处在同一个维度。

另外,现在越来越多原本以 Chatbot 为主要形态的 AI 产品,也正在逐渐加入更多任务执行能力。

例如开始支持:

  • 搜索资料
  • 读取文件
  • 调用外部工具
  • 执行代码
  • 操作网页
  • 处理多步骤任务

于是产品表面上仍然是一个聊天界面,但内部能力已经不再只是:

text
输入 → 回答

而可能变成:

text
用户提出目标
     ↓
判断下一步
     ↓
调用工具
     ↓
获得结果
     ↓
继续处理

所以以后分析一个AI 聊天产品时,与其问:

它到底是 Chatbot 还是 Agent?

不如进一步看:

这个聊天界面后面到底只有模型回答,还是已经存在持续执行任务的 Agent 能力?


用了 LLM 不等于 Agent ​

另一个常见误区是:

只要系统用了大语言模型,就属于 Agent。

这也不对。

例如一个内容处理 Workflow:

text
输入文章
   ↓
LLM 生成摘要
   ↓
LLM 提取关键词
   ↓
LLM 翻译英文
   ↓
保存结果

这里甚至连续调用了三次 LLM。

但整个流程仍然可以完全提前确定:

text
摘要以后一定提取关键词

关键词以后一定翻译

翻译以后一定保存

系统并不需要在运行过程中动态决定:

下一步应该干什么?

所以它依然可以只是一个使用了 LLM 的 Workflow。

同样,一些普通 Chatbot 也会直接调用 LLM:

text
用户问题
 ↓
LLM
 ↓
回答

这同样不代表它是 Agent。

所以:

LLM 是 Agent 可以使用的核心能力之一,但“用了 LLM”并不能作为判断 Agent 的标准。


用了 RAG 不等于 Agent ​

RAG 同样经常被误认为 Agent。

例如一个企业知识库:

text
用户提问
   ↓
检索知识库
   ↓
找到相关文档
   ↓
把资料交给 LLM
   ↓
生成回答

这里系统确实:

  • 获取了外部信息
  • 使用了检索工具
  • 最后生成了答案

但整个过程仍然可以是一条非常固定的链路:

text
问题
→ 检索
→ 生成
→ 回答

并没有出现:

text
根据结果判断
→ 决定下一步
→ 再行动

所以:

会检索资料,不等于具备 Agent 能力。

RAG 的重点在于:

给模型补充当前需要的知识。

Agent 的重点则在于:

根据当前状态动态决定下一步行动。

当然,Agent 完全可以使用 RAG。

比如:

text
Agent
 ↓
判断当前缺少产品知识
 ↓
调用 RAG
 ↓
获得相关资料
 ↓
继续处理任务

这时候 RAG 就变成了 Agent 可以使用的一种能力。


多步骤执行也不一定是 Agent ​

这个我认为是最容易混淆的问题:

多步骤执行不等于 Agent。

例如下面这个流程:

text
上传 PDF
   ↓
解析文本
   ↓
生成摘要
   ↓
翻译英文
   ↓
生成关键词
   ↓
写入数据库
   ↓
发送通知

它已经执行了很多步。

但如果这些步骤全部提前设计好了,那么本质上依然是 Workflow。

所以判断 Agent 时,真正重要的不是:

执行了多少步?

而是:

执行过程中,谁在决定下一步?

如果下一步主要由开发者提前写好:

text
A → B → C → D

更偏向 Workflow。

如果系统会根据当前状态动态决定:

text
当前发生了什么?
      ↓
下一步应该做什么?
      ↓
执行
      ↓
再次观察

才更接近 Agent。

因此:

Agent 的关键不是“多步骤”,而是“动态决策”。


它们不是互斥的 ​

把前面的这些概念分清以后,我们要明白:

Chatbot、Workflow、RAG、Agent 并不是互斥关系。

例如一个系统完全可能同时拥有:

text
Chatbot
+
Workflow
+
RAG
+
Agent

因为它们分别解决了不同的问题。

Chatbot 解决:

text
用户怎么和系统交互

Workflow 解决:

text
固定业务流程怎么运行

RAG 解决:

text
外部知识从哪里来

Agent 解决:

text
遇到不确定情况时下一步怎么做

所以一个比较完整的系统可能是:

text
用户
 ↓
Chatbot
 ↓
Agent
 ↓
 ├─ 查询 RAG
 ├─ 调用工具
 └─ 执行操作
 ↓
Workflow
 ↓
完成固定业务流程

一个系统可能同时包含四者 ​

接下来,我们用一个企业客服系统把前面的概念串起来理解。

假设用户提出:

我的订单五天没有发货了,帮我处理一下。

首先,用户是通过一个聊天界面提出问题的。

这部分是:

Chatbot

text
用户
 ↓
聊天界面
 ↓
提交问题

接下来,系统需要判断:

这是普通咨询,还是需要查询订单?

于是 Agent 决定调用订单工具。

这部分是:

Agent

text
理解用户目标
   ↓
判断需要查询订单
   ↓
调用订单系统

订单系统返回:

商品目前缺货,还没有出库。

Agent 接下来需要知道:

缺货订单应该怎么处理?

于是查询企业售后知识库。

这部分可以使用:

RAG

text
查询售后知识库
   ↓
找到缺货订单处理规则
   ↓
返回相关政策

政策规定:

缺货超过 3 天,可以申请补偿,并允许用户选择继续等待或退款。

Agent 根据:

text
订单状态
+
售后政策
+
用户需求

判断下一步怎么处理。

如果用户选择退款,企业内部可能已经有一套固定流程:

text
提交退款申请
   ↓
检查订单状态
   ↓
审批
   ↓
调用退款接口
   ↓
发送通知

这部分就是:

Workflow

最后系统再通过聊天界面告诉用户:

已经提交退款申请,处理结果会通过消息通知。

完整过程就是:

text
用户
 ↓
Chatbot
负责交互
 ↓
Agent
判断下一步
 ↓
订单工具
查询订单
 ↓
RAG
查询售后政策
 ↓
Agent
决定处理方案
 ↓
Workflow
执行固定退款流程
 ↓
Chatbot
返回处理结果

这个系统到底是什么?

很难只说:

它是 Chatbot。

或者:

它是 RAG。

或者:

它是 Workflow。

准确的来说:

它是一个完整的 AI 应用,其中同时组合了 Chatbot、Agent、RAG 和 Workflow。

这也是理解真实 AI 系统时非常重要的一层认知。


怎么判断一个系统主要属于哪一类 ​

面对一个 AI 产品或者业务需求时,不一定要急着给它贴标签。

可以先看它主要解决什么问题。

主要问题更应该想到
怎么和用户进行自然语言交互?Chatbot
怎么把固定步骤稳定执行?Workflow
怎么让模型获得外部知识?RAG
怎么根据当前状态动态决定下一步并执行?Agent

例如:

用户上传 PDF,然后自动生成摘要。

重点是固定流程:

text
上传
→ 解析
→ 摘要

更接近 Workflow。

如果需求变成:

用户询问公司制度,要求答案基于内部文档。

重点是知识获取。

更接近 RAG。

如果需求变成:

帮我检查项目为什么启动失败,并尝试修复。

系统需要根据不同执行结果不断决定下一步。

更接近 Agent。

如果只是:

给我解释一下什么是 LangGraph。

主要是一次对话。

更接近 Chatbot。

但这里的“更接近”非常重要。

因为真实产品完全可能是:

以 Chatbot 作为交互入口,以 Agent 负责复杂任务执行,通过 RAG 获取知识,再通过 Workflow 完成固定业务流程。

所以判断一个系统时,不要只看产品叫什么。

更应该看:

  • 谁负责和用户交互
  • 谁负责提供知识
  • 谁负责固定流程
  • 谁负责动态决策和行动

这样很多看起来混乱的 AI 产品,就会清楚很多。


总结 ​

Chatbot、Workflow、RAG 和 Agent 可以先分别记成:

text
Chatbot
→ 交互

Workflow
→ 流程

RAG
→ 知识

Agent
→ 决策和行动

其中:

Chatbot 更关注怎么和用户对话。

Workflow 更关注怎么把预定义流程稳定执行。

RAG 更关注怎么给模型补充外部知识。

Agent 更关注怎么根据当前状态动态判断下一步,并持续推进任务。

它们并不是互相排斥的四种系统。

真实 AI 应用往往会根据不同问题,把这些能力组合起来。

尤其要避免几个常见误区:

text
有聊天框 ≠ Agent

用了 LLM ≠ Agent

用了 RAG ≠ Agent

执行很多步 ≠ Agent

判断一个系统是不是 Agent,真正值得关注的是:

任务执行过程中,系统是否会根据当前状态和反馈动态决定下一步行动。

把这几个边界分清以后,再去看各种 AI 产品、Agent 框架和应用架构,很多概念就不会那么容易混在一起。