ChatGPT 负责回答,AI Agent 负责干活:一文讲透区别和源码实现
AI Agent 和 ChatGPT 有什么区别|附源码
在过去两年里,几乎所有与人工智能相关的讨论都绕不开两个词:ChatGPT 和 AI Agent。很多人第一次接触大模型,是从 ChatGPT 开始的:输入一句话,模型给出一段回答;继续追问,它还能根据上下文进一步解释、总结、翻译、写代码、改文案。
但随着大模型应用不断深入,另一个概念开始频繁出现:AI Agent,中文常译为“智能体”或“智能代理”。相比 ChatGPT,AI Agent 听起来更“主动”、更“自动化”,似乎不只是聊天,而是可以帮用户完成任务。
那么问题来了:AI Agent 和 ChatGPT 到底有什么区别?ChatGPT 算不算 AI Agent?AI Agent 又是怎么实现的?
本文将从概念、能力边界、工作流程、典型应用和代码实现几个角度,系统解释二者的区别,并附上一个简单的 AI Agent 示例源码,帮助你快速理解其核心原理。
一、先说结论:ChatGPT 是“大脑”,AI Agent 是“能做事的系统”
如果用一句话概括:
ChatGPT 更像是一个强大的语言模型对话入口,而 AI Agent 是以大模型为核心,具备规划、调用工具、执行任务和反馈调整能力的智能系统。
更直观一点:
- ChatGPT:你问它,它回答你。
- AI Agent:你给它一个目标,它会尝试拆解任务、调用工具、执行步骤,并根据结果继续调整,直到完成目标。
举个简单例子。
你对 ChatGPT 说:
帮我写一份关于新能源汽车市场的分析报告。
ChatGPT 通常会直接生成一份文本报告。
但如果是一个 AI Agent,它可能会这样做:
- 理解任务目标:生成新能源汽车市场分析报告;
- 拆解任务:收集行业数据、分析政策环境、比较主要品牌、总结趋势;
- 调用搜索工具或数据库接口获取最新数据;
- 调用表格分析工具处理数据;
- 生成报告初稿;
- 检查内容是否完整;
- 根据不足继续补充资料;
- 输出最终报告,甚至保存为 Word 或 PDF。
也就是说,ChatGPT 重点在“语言生成与对话”,AI Agent 重点在“围绕目标自主完成任务”。
二、什么是 ChatGPT?
ChatGPT 是 OpenAI 推出的一类基于大语言模型的对话式 AI 产品。它的核心能力来自 GPT 系列大模型,能够理解自然语言输入,并生成符合语境的自然语言输出。
它擅长处理以下任务:
- 问答;
- 翻译;
- 总结;
- 写作;
- 改写;
- 代码生成;
- 代码解释;
- 逻辑推理;
- 头脑风暴;
- 文案创作;
- 学习辅导。
例如你可以问:
请用通俗语言解释什么是区块链。
它会生成一段解释。
你也可以说:
帮我用 Python 写一个冒泡排序。
它会生成代码。
从产品形态上看,ChatGPT 最典型的交互模式是:
用户输入问题 -> 模型生成回答 -> 用户继续追问 -> 模型继续回答
这种模式非常适合知识问答、文本生成和辅助创作。但它也有明显限制。
三、ChatGPT 的主要特点
1. 以对话为核心
ChatGPT 的默认形态是聊天界面。用户通过自然语言提出问题,模型根据上下文生成回复。
它更关注“回答是否合理”“表达是否清晰”“内容是否符合用户意图”。
2. 被动响应
大多数情况下,ChatGPT 是被动的。也就是说,用户不输入,它不会主动执行下一步。
比如你说:
帮我规划一个去杭州三天两夜的旅行。
ChatGPT 可能会直接给你一个行程安排。
但它不会默认帮你查询机票、比较酒店价格、检查天气、预订餐厅,除非它被接入了相应工具,并被设计成可以持续执行任务。
3. 不一定连接外部环境
传统意义上的 ChatGPT 主要依赖模型训练时获得的知识和当前对话上下文。虽然现在很多大模型产品已经支持联网、文件分析、代码执行等功能,但这些能力本质上已经开始向 AI Agent 形态靠近。
4. 重点是生成内容
ChatGPT 的优势在于生成:
- 生成文章;
- 生成代码;
- 生成总结;
- 生成方案;
- 生成对话;
- 生成分析。
但“生成内容”和“完成任务”之间仍有区别。
例如:
- 生成一封邮件,不等于自动发送邮件;
- 生成一段代码,不等于自动部署项目;
- 生成一个营销方案,不等于自动执行投放;
- 生成旅行计划,不等于自动完成订票和酒店预订。
四、什么是 AI Agent?
AI Agent,即人工智能智能体,可以理解为一个具备一定自主性的 AI 系统。它通常不只是简单地回答问题,而是能够围绕一个目标进行持续行动。
一个典型 AI Agent 往往包含以下能力:
- 理解目标
- 任务规划
- 记忆上下文
- 调用工具
- 执行动作
- 观察结果
- 反思与修正
- 最终完成任务
它的基本循环可以概括为:
目标 Goal
↓
思考 Thought
↓
行动 Action
↓
观察 Observation
↓
继续思考 Thought
↓
继续行动 Action
↓
直到完成 Finish
这也是很多 Agent 框架中常见的 ReAct 模式,即 Reasoning + Acting,推理与行动结合。
五、AI Agent 的核心组成
1. 大语言模型:负责理解和推理
大语言模型是 AI Agent 的核心“大脑”。它负责理解用户目标,判断下一步该做什么,以及根据工具返回结果进行下一轮决策。
例如用户说:
帮我找出当前项目中最大的 5 个文件,并生成一份 Markdown 报告。
模型需要理解:
- 目标是分析项目文件;
- 需要遍历目录;
- 需要统计文件大小;
- 需要排序;
- 需要生成 Markdown;
- 可能还需要写入文件。
2. 工具:负责连接外部世界
AI Agent 和普通聊天机器人最大的区别之一,就是它可以调用工具。
常见工具包括:
- 搜索引擎;
- 数据库;
- 文件系统;
- Python 解释器;
- 浏览器;
- 邮件系统;
- 日历;
- 企业内部 API;
- 代码仓库;
- 订单系统;
- CRM 系统;
- RPA 自动化工具。
工具让 AI Agent 不再停留在“说”,而是可以“做”。
3. 记忆:负责保存上下文和经验
AI Agent 通常需要记忆能力。记忆可以分为:
- 短期记忆:当前任务中的上下文;
- 长期记忆:用户偏好、历史任务、项目知识;
- 向量记忆:通过 Embedding 检索相关资料;
- 结构化记忆:数据库、知识图谱等。
例如一个个人助理 Agent 可以记住:
- 用户喜欢早上开会;
- 用户常用中文写邮件;
- 用户所在城市是上海;
- 用户关注新能源汽车行业;
- 用户过去生成过哪些报告。
4. 规划器:负责拆解任务
复杂任务不能一步完成,因此 Agent 需要规划能力。
例如目标是:
帮我做一个竞品分析,并输出 PPT 大纲。
Agent 可以拆解为:
- 确认分析对象;
- 搜集竞品资料;
- 提取产品功能;
- 对比价格策略;
- 分析目标用户;
- 总结优劣势;
- 生成 PPT 大纲。
5. 执行器:负责真正完成动作
执行器可以是代码,也可以是 API 调用。比如:
- 读取文件;
- 写入文件;
- 查询数据库;
- 发送 HTTP 请求;
- 执行 Shell 命令;
- 调用浏览器;
- 发送邮件。
没有执行器,Agent 就只是“会想不会做”。
六、AI Agent 和 ChatGPT 的关键区别
下面用表格做一个对比。
| 对比维度 | ChatGPT | AI Agent |
|---|---|---|
| 核心定位 | 对话式大模型应用 | 面向目标的智能执行系统 |
| 交互方式 | 用户提问,模型回答 | 用户给目标,系统自主拆解和执行 |
| 主动性 | 较弱,主要被动响应 | 较强,可多步执行 |
| 工具调用 | 可有可无 | 通常必备 |
| 任务复杂度 | 擅长单轮或多轮问答、生成 | 擅长多步骤任务、自动化流程 |
| 记忆能力 | 主要依赖上下文窗口 | 可结合短期记忆和长期记忆 |
| 输出形式 | 文本、代码、图片描述等 | 结果文件、API 操作、数据库变更、报告等 |
| 典型场景 | 写作、问答、翻译、总结 | 自动办公、数据分析、代码修复、流程自动化 |
| 是否执行动作 | 通常不直接执行外部动作 | 可以调用工具执行实际动作 |
| 复杂度 | 相对简单 | 架构更复杂 |
七、ChatGPT 算不算 AI Agent?
这个问题要分情况看。
1. 普通聊天模式下,ChatGPT 不是完整的 AI Agent
如果只是你输入一句话,它输出一段回答,那么它更像是一个聊天机器人或语言模型应用,而不是完整 Agent。
例如:
用户:什么是机器学习?
ChatGPT:机器学习是人工智能的一个分支……
这类交互没有明显的任务规划、工具调用和执行闭环,因此不能算典型 Agent。
2. 接入工具和任务循环后,ChatGPT 可以成为 Agent 的一部分
如果 ChatGPT 被接入了:
- 搜索工具;
- 文件工具;
- 代码执行环境;
- 数据库;
- 工作流系统;
- 记忆模块;
- 自动规划模块;
并且能够根据目标持续行动,那么它就可以成为 AI Agent 的核心模型。
换句话说:
ChatGPT 本身可以是 Agent 的“大脑”,但 AI Agent 还需要“手、脚、眼睛和记忆”。
八、一个简单例子:从 ChatGPT 到 AI Agent
假设用户提出一个任务:
请分析当前目录下所有 .txt 文件的字数,并生成 summary.md。
如果是普通 ChatGPT,它可能会告诉你应该怎么写脚本,或者直接生成一段 Python 代码。
但 AI Agent 应该可以:
- 扫描当前目录;
- 找到所有
.txt文件; - 读取文件内容;
- 统计字数;
- 汇总结果;
- 生成
summary.md文件。
这里最关键的区别是:AI Agent 不只是告诉你怎么做,而是实际去做。
九、AI Agent 简易源码示例:Python 版
下面我们实现一个极简 AI Agent。它并不依赖真实大模型 API,而是用规则模拟“决策”,目的是帮助你理解 Agent 的基础结构。
这个 Agent 可以完成以下任务:
- 列出当前目录下的文件;
- 读取指定文件;
- 统计文本文件字数;
- 生成 Markdown 报告。
项目结构如下:
simple-agent/
├── agent.py
├── data.txt
└── notes.txt
1. 示例文本文件
data.txt:
AI Agent 是一种能够感知环境、调用工具并执行任务的智能系统。
它通常以大语言模型为核心,结合外部工具完成复杂目标。
notes.txt:
ChatGPT 更偏向对话式问答,而 AI Agent 更强调目标驱动和自动执行。
在实际应用中,二者经常结合使用。
2. Agent 源码
agent.py:
import os
from typing import List, Dict
class Tool:
"""工具基类"""
name = "base_tool"
description = "基础工具"
def run(self, *args, **kwargs):
raise NotImplementedError
class ListFilesTool(Tool):
"""列出当前目录文件"""
name = "list_files"
description = "列出当前目录下的所有文件"
def run(self, directory: str = ".") -> List[str]:
files = []
for item in os.listdir(directory):
path = os.path.join(directory, item)
if os.path.isfile(path):
files.append(path)
return files
class ReadFileTool(Tool):
"""读取文件内容"""
name = "read_file"
description = "读取指定文本文件内容"
def run(self, file_path: str) -> str:
with open(file_path, "r", encoding="utf-8") as f:
return f.read()
class WordCountTool(Tool):
"""统计文本字数"""
name = "word_count"
description = "统计文本中的字符数和词数"
def run(self, text: str) -> Dict[str, int]:
# 中文场景下,字符数通常比英文词数更有参考意义
chars = len(text.replace("\n", "").replace(" ", ""))
words = len(text.split())
return {
"chars": chars,
"words": words
}
class WriteFileTool(Tool):
"""写入文件"""
name = "write_file"
description = "将内容写入指定文件"
def run(self, file_path: str, content: str) -> str:
with open(file_path, "w", encoding="utf-8") as f:
f.write(content)
return f"文件已生成:{file_path}"
class SimpleAgent:
"""
一个极简 AI Agent 示例。
它包含:
1. 目标理解;
2. 工具调用;
3. 多步骤执行;
4. 结果生成。
"""
def __init__(self):
self.tools = {
"list_files": ListFilesTool(),
"read_file": ReadFileTool(),
"word_count": WordCountTool(),
"write_file": WriteFileTool()
}
def run(self, goal: str):
print(f"目标:{goal}")
print("开始执行任务...\n")
# Step 1:列出文件
print("Step 1:扫描当前目录文件")
files = self.tools["list_files"].run(".")
txt_files = [f for f in files if f.endswith(".txt")]
print(f"发现文本文件:{txt_files}\n")
# Step 2:读取并统计每个 txt 文件
print("Step 2:读取文件并统计字数")
results = []
for file_path in txt_files:
content = self.tools["read_file"].run(file_path)
count_result = self.tools["word_count"].run(content)
results.append({
"file": file_path,
"chars": count_result["chars"],
"words": count_result["words"]
})
print(
f"{file_path}:"
f"{count_result['chars']} 个字符,"
f"{count_result['words']} 个词"
)
print()
# Step 3:生成 Markdown 报告
print("Step 3:生成 Markdown 报告")
report = self._build_report(goal, results)
# Step 4:写入 summary.md
output = self.tools["write_file"].run("summary.md", report)
print(output)
print("\n任务完成。")
def _build_report(self, goal: str, results: List[Dict]) -> str:
total_chars = sum(item["chars"] for item in results)
total_words = sum(item["words"] for item in results)
lines = [
"# 文本文件统计报告",
"",
f"## 任务目标",
"",
goal,
"",
"## 统计结果",
"",
"| 文件名 | 字符数 | 词数 |",
"|---|---:|---:|"
]
for item in results:
lines.append(
f"| {item['file']} | {item['chars']} | {item['words']} |"
)
lines.extend([
"",
"## 汇总",
"",
f"- 文件数量:{len(results)}",
f"- 总字符数:{total_chars}",
f"- 总词数:{total_words}",
"",
"## 说明",
"",
"本报告由 SimpleAgent 自动扫描文件、读取内容、统计字数并生成。"
])
return "\n".join(lines)
if __name__ == "__main__":
agent = SimpleAgent()
agent.run("请分析当前目录下所有 .txt 文件的字数,并生成 summary.md")
运行:
python agent.py
输出示例:
目标:请分析当前目录下所有 .txt 文件的字数,并生成 summary.md
开始执行任务...
Step 1:扫描当前目录文件
发现文本文件:['./data.txt', './notes.txt']
Step 2:读取文件并统计字数
./data.txt:54 个字符,2 个词
./notes.txt:46 个字符,2 个词
Step 3:生成 Markdown 报告
文件已生成:summary.md
任务完成。
生成的 summary.md 内容类似:
# 文本文件统计报告
## 任务目标
请分析当前目录下所有 .txt 文件的字数,并生成 summary.md
## 统计结果
| 文件名 | 字符数 | 词数 |
|---|---:|---:|
| ./data.txt | 54 | 2 |
| ./notes.txt | 46 | 2 |
## 汇总
- 文件数量:2
- 总字符数:100
- 总词数:4
## 说明
本报告由 SimpleAgent 自动扫描文件、读取内容、统计字数并生成。
十、这个源码体现了哪些 Agent 思想?
虽然上面的例子非常简单,但它已经具备了 AI Agent 的几个基本要素。
1. 有明确目标
agent.run("请分析当前目录下所有 .txt 文件的字数,并生成 summary.md")
用户不是问一个知识问题,而是给了一个任务目标。
2. 有工具系统
代码中定义了多个工具:
ListFilesTool
ReadFileTool
WordCountTool
WriteFileTool
每个工具负责一个具体动作。这与真实 Agent 调用搜索引擎、数据库、浏览器、代码解释器的思想一致。
3. 有多步骤执行流程
Agent 没有一次性输出答案,而是按步骤执行:
- 扫描文件;
- 读取文件;
- 统计字数;
- 生成报告;
- 写入文件。
这就是从“回答”到“行动”的转变。
4. 有结果产物
最终生成了 summary.md 文件,而不仅是一段聊天回复。
这也是 AI Agent 与普通 ChatGPT 使用方式的重要差异。
十一、如果接入大模型,这个 Agent 会变成什么样?
上面的源码中,执行流程是写死的。真实 AI Agent 通常会让大模型参与决策。
例如用户输入:
帮我统计所有 txt 文件字数
或者:
请找出当前目录里最大的文本文件,并总结内容
或者:
读取 notes.txt,然后帮我生成一份摘要
这些任务不同,执行步骤也不同。此时可以让大模型判断:
- 应该调用哪个工具;
- 工具参数是什么;
- 调用结果是否满足目标;
- 是否需要继续调用工具;
- 最终如何组织答案。
一个真实 Agent 的伪代码可能是:
while not done:
prompt = build_prompt(goal, history, tools)
decision = llm.generate(prompt)
if decision.action == "finish":
return decision.answer
tool = tools[decision.action]
observation = tool.run(**decision.args)
history.append({
"thought": decision.thought,
"action": decision.action,
"args": decision.args,
"observation": observation
})
这类循环就是很多 Agent 框架的核心。
十二、AI Agent 的典型应用场景
1. 个人助理
AI Agent 可以帮助用户管理日程、整理邮件、生成会议纪要、安排任务提醒。
例如:
帮我整理今天的会议记录,提取待办事项,并给相关同事发邮件。
2. 数据分析助手
它可以读取数据文件,执行统计分析,生成图表和报告。
例如:
分析这个 Excel 中过去 12 个月的销售数据,找出增长最快的产品线。
3. 编程助手
AI Agent 可以理解代码仓库,定位 Bug,修改代码,运行测试,提交 Pull Request。
例如:
帮我修复这个项目中的登录报错,并确保所有测试通过。
4. 客服 Agent
企业可以将 Agent 接入知识库、订单系统和工单系统,使其不只是回答问题,还能查询订单、修改信息、创建工单。
5. 运营自动化
例如:
每天早上 9 点抓取竞品价格,生成日报,并发送到企业微信群。
这种任务非常适合 Agent + 定时任务 + 工具调用。
十三、AI Agent 并不等于“完全自主”
需要注意的是,AI Agent 并不是魔法。它仍然有很多限制。
1. 可能理解错误
如果任务描述模糊,Agent 可能误解目标。
例如:
帮我处理一下这个文件。
“处理”是什么意思?是清洗数据、压缩文件、翻译内容,还是删除重复项?如果没有澄清机制,Agent 很容易做错。
2. 工具调用可能失败
外部 API 可能超时,文件可能不存在,网络可能断开,权限可能不足。
一个可靠 Agent 必须具备异常处理能力。
3. 大模型可能产生幻觉
模型可能编造不存在的 API、错误解释数据,或者自信地给出不准确结论。
所以在关键场景中,需要校验机制。
4. 安全风险更高
Agent 能执行动作,因此风险比普通聊天更高。
例如:
- 错误删除文件;
- 误发邮件;
- 调用高权限接口;
- 泄露敏感信息;
- 被提示词注入攻击诱导执行危险操作。
因此实际系统中通常需要加入权限控制、审计日志、人工确认和沙箱环境。
十四、如何判断一个系统是不是 AI Agent?
你可以用下面几个问题判断:
- 它是否有明确目标?
- 它是否能拆解任务?
- 它是否能调用工具?
- 它是否能根据工具返回结果继续决策?
- 它是否能执行多步骤流程?
- 它是否有记忆或状态管理?
- 它是否能产出实际结果,而不仅是文本回答?
如果一个系统只是“问一句答一句”,它更像 ChatGPT 式聊天应用。
如果一个系统可以“围绕目标持续行动”,它就更接近 AI Agent。
十五、总结
ChatGPT 和 AI Agent 的区别,不在于谁更高级,而在于定位不同。
ChatGPT 是一种强大的对话式大模型应用,擅长理解语言和生成内容。AI Agent 则是在大模型基础上,结合工具、记忆、规划和执行能力构建出来的智能任务系统。
可以这样理解:
ChatGPT = 大语言模型 + 对话界面
AI Agent = 大语言模型 + 工具 + 记忆 + 规划 + 执行 + 反馈循环
在实际应用中,二者并不是对立关系。相反,很多 AI Agent 都会使用类似 ChatGPT 的大模型作为核心推理引擎。
未来的软件形态,很可能会从“人操作软件”逐渐变成“人告诉 Agent 目标,Agent 调用软件完成任务”。这意味着,AI 不再只是一个聊天窗口,而会逐渐成为一个能够参与工作流、连接业务系统、自动完成任务的智能协作者。
对于开发者来说,理解 AI Agent 的关键,不是先去追逐复杂框架,而是抓住它的本质:
让大模型不仅能说,还能想、能调用工具、能执行动作、能根据结果不断调整。
当你理解了这一点,再看各种 Agent 框架、工作流编排、工具调用、RAG、长期记忆和多智能体协作,就会清晰很多。