Appearance
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 框架和应用架构,很多概念就不会那么容易混在一起。