上一篇 下一篇 分享链接 返回 返回顶部

ChatGPT 负责回答,AI Agent 负责干活:一文讲透区别和源码实现

发布人:慈云数据-客服中心 发布时间:2小时前 阅读量:0

AI Agent 和 ChatGPT 有什么区别|附源码

在过去两年里,几乎所有与人工智能相关的讨论都绕不开两个词:ChatGPTAI 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,它可能会这样做:

  1. 理解任务目标:生成新能源汽车市场分析报告;
  2. 拆解任务:收集行业数据、分析政策环境、比较主要品牌、总结趋势;
  3. 调用搜索工具或数据库接口获取最新数据;
  4. 调用表格分析工具处理数据;
  5. 生成报告初稿;
  6. 检查内容是否完整;
  7. 根据不足继续补充资料;
  8. 输出最终报告,甚至保存为 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 往往包含以下能力:

  1. 理解目标
  2. 任务规划
  3. 记忆上下文
  4. 调用工具
  5. 执行动作
  6. 观察结果
  7. 反思与修正
  8. 最终完成任务

它的基本循环可以概括为:

目标 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 可以拆解为:

  1. 确认分析对象;
  2. 搜集竞品资料;
  3. 提取产品功能;
  4. 对比价格策略;
  5. 分析目标用户;
  6. 总结优劣势;
  7. 生成 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 应该可以:

  1. 扫描当前目录;
  2. 找到所有 .txt 文件;
  3. 读取文件内容;
  4. 统计字数;
  5. 汇总结果;
  6. 生成 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 没有一次性输出答案,而是按步骤执行:

  1. 扫描文件;
  2. 读取文件;
  3. 统计字数;
  4. 生成报告;
  5. 写入文件。

这就是从“回答”到“行动”的转变。

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?

你可以用下面几个问题判断:

  1. 它是否有明确目标?
  2. 它是否能拆解任务?
  3. 它是否能调用工具?
  4. 它是否能根据工具返回结果继续决策?
  5. 它是否能执行多步骤流程?
  6. 它是否有记忆或状态管理?
  7. 它是否能产出实际结果,而不仅是文本回答?

如果一个系统只是“问一句答一句”,它更像 ChatGPT 式聊天应用。

如果一个系统可以“围绕目标持续行动”,它就更接近 AI Agent。


十五、总结

ChatGPT 和 AI Agent 的区别,不在于谁更高级,而在于定位不同。

ChatGPT 是一种强大的对话式大模型应用,擅长理解语言和生成内容。AI Agent 则是在大模型基础上,结合工具、记忆、规划和执行能力构建出来的智能任务系统。

可以这样理解:

ChatGPT = 大语言模型 + 对话界面

AI Agent = 大语言模型 + 工具 + 记忆 + 规划 + 执行 + 反馈循环

在实际应用中,二者并不是对立关系。相反,很多 AI Agent 都会使用类似 ChatGPT 的大模型作为核心推理引擎。

未来的软件形态,很可能会从“人操作软件”逐渐变成“人告诉 Agent 目标,Agent 调用软件完成任务”。这意味着,AI 不再只是一个聊天窗口,而会逐渐成为一个能够参与工作流、连接业务系统、自动完成任务的智能协作者。

对于开发者来说,理解 AI Agent 的关键,不是先去追逐复杂框架,而是抓住它的本质:

让大模型不仅能说,还能想、能调用工具、能执行动作、能根据结果不断调整。

当你理解了这一点,再看各种 Agent 框架、工作流编排、工具调用、RAG、长期记忆和多智能体协作,就会清晰很多。

目录结构
全文