返回技术博客

AI Agent 到底是什么?和 ChatBot 有什么本质区别

上周有个朋友问我:"你们天天说 AI Agent,跟我用的 ChatGPT 有啥不一样?不都是跟 AI 聊天吗?"

问得好。这个问题如果用一句话回答:ChatBot 只能说,Agent 能做。

但一句话太粗暴了,展开说说。

ChatBot 的本质:一个很会说话的回答机器

不管 ChatGPT 表现得多聪明,它的工作模式其实很简单:

你输入一段话 → 模型算一算 → 吐出一段话

你问它怎么做红烧肉,它给你一个菜谱。你让它帮你写封邮件,它写好了贴在聊天窗口里。你让它帮你查数据库里有多少用户,它会说"你可以用这个 SQL 查一下"。然后?没有然后了。

你复制 SQL,打开终端,连上数据库,粘贴执行,看结果。

这就是 ChatBot 的边界:它的输出永远是文字。它能写代码但不能跑代码,能给方案但不能执行方案,能建议你发邮件但不能替你发邮件。

它很像一个学识渊博但被关在玻璃房里的顾问。你问什么它都能答,但它伸不出手来帮你做任何事。

Agent 的核心:给 AI 装上手和脚

现在想象一下,你把这个顾问从玻璃房里放出来。给它一台电脑,告诉它数据库的地址和密码,给它钉钉的发消息权限,给它访问文件系统的能力。

然后你说:"帮我查一下上周的注册数据,做个分析报告,发到团队群里。"

它坐下来,自己连数据库执行 SQL,自己算日活和留存率,自己用 Markdown 写报告,自己调钉钉 API 把报告发出去。五分钟后回复你:"报告已发送,上周新增 1,234 人,环比增长 12%。"

这就是 Agent。

如果用一个公式表达:

Agent = 大模型 + 工具调用 + 自主规划

大模型负责理解和推理,这部分和 ChatBot 一样。区别在后面两项:工具调用让它能执行操作,自主规划让它能把复杂任务拆成步骤一步步完成。

一个对比就够了

同一个需求,ChatBot 和 Agent 的表现差异:

你说: "帮我把这个 CSV 里的销售数据整理一下,算出每个地区的总额,发到 #sales 频道"

ChatBot 的回答:

你可以用 pandas 读取 CSV 文件,然后用 groupby 按地区汇总。代码大概是这样的:

import pandas as pd
df = pd.read_csv('sales.csv')
result = df.groupby('region')['amount'].sum()

整理好之后,你可以通过 Slack API 发送消息到频道...

然后你自己打开 Python,自己写代码,自己调 Slack API。

Agent 的做法:

直接动手。读文件、跑计算、格式化结果、调 API 发送。你什么都不用干,等着收结果就行。

这就是"能说"和"能做"的区别。不是 AI 变聪明了(其实用的可能是同一个模型),而是它获得了行动的能力。

Agent 是怎么工作的

拆开来看,Agent 完成一个任务的过程分四步:

第一步,理解任务。 你的描述可能是模糊的。"整理一下销售数据"具体是什么意思?Agent 要判断:是按地区汇总?按时间排序?还是做环比分析?如果不确定,好的 Agent 会问你。

第二步,拆解计划。 任务往往不是一步能完成的。Agent 会把它拆成:读取文件 → 清洗数据 → 计算汇总 → 格式化输出 → 发送消息。每一步的结果是下一步的输入。

第三步,逐步执行。 Agent 一步步调用工具。先调文件读取工具拿到 CSV,再调代码执行工具跑计算,再调消息发送工具推到频道。每一步都会检查结果。如果文件不存在、格式不对、API 报错,它需要处理这些异常。

第四步,反馈结果。 任务完成后,告诉你做了什么、结果是什么、有没有遇到问题。

这个"拆解 → 执行 → 检查 → 调整"的循环,就是 Agent 和 ChatBot 最根本的区别。ChatBot 做一次推理就结束了,Agent 会持续循环直到任务完成。

工具调用:Agent 能力的关键

让 Agent "能做事"的关键是工具调用(Tool Use)。技术上长这样:

{
  "name": "query_database",
  "description": "执行 SQL 查询",
  "parameters": {
    "sql": "SELECT COUNT(*) FROM users WHERE created_at > '2025-01-01'"
  }
}

模型不直接操作数据库。它生成一个结构化的"调用请求",系统接到请求后去执行,把结果返回给模型。模型看到结果后决定下一步做什么。

工具可以是任何东西:数据库查询、文件读写、HTTP 请求、发消息、执行代码。你给 Agent 接了什么工具,它就具备什么能力。

这种设计也意味着 Agent 的能力是可控的。你不给它数据库权限,它就查不了数据库。你不给它发消息的工具,它就只能把结果打印出来。权限边界是清晰的。

现在都有哪些 Agent

按使用场景分几类:

编程 Agent 是目前最成熟的方向。Claude Code、Cursor、GitHub Copilot Agent Mode 可以直接帮你写代码、改文件、跑测试。它们对代码库有全局理解,能跨文件修改,还能自动修复测试失败。

通用助手型 Agent 像 ChatGPT 加了插件、Claude 加了 MCP 工具集。能查天气、搜网页、生成图片、操作日历。能力取决于接了多少工具。

企业流程 Agent 是更垂直的应用。比如客服 Agent 接了工单系统和知识库,能直接处理用户问题而不只是回答;比如数据分析 Agent 接了数据仓库,能直接跑查询出报告。

自动化 Agent 是最前沿的方向。像 Devin 这种,号称能独立完成从需求分析到部署上线的全流程。目前还在早期,稳定性和适用范围都有限,但方向很明确。

那 Agent 是万能的吗?

当然不是。几个现实的限制:

工具决定天花板。 Agent 再聪明,没接相应的工具就做不了对应的事。没给它浏览器工具,它就不能上网搜信息。这既是限制也是安全保障。

规划能力有瓶颈。 任务拆解到五六步以上,Agent 犯错的概率会明显上升。计划越长,中间每一步出偏差的可能性越大,最后的结果可能和预期差很远。

它不会说"我不行"。 这是个容易被忽略的问题。Agent 通常会尽力尝试完成任务,即使它并不真正理解你要什么。相比之下,一个靠谱的人类同事会说"这个需求我不太明白,能再说说吗"。

所以 Agent 到底有什么用?

回到开头朋友的问题。ChatBot 和 Agent 的关系,有点像百科全书和一个助手的关系。

百科全书知识渊博,你翻到哪一页都能找到答案。但它不会帮你做任何事。看完之后,活还是你自己干。

助手可能没有百科全书那么全面,但你给它交代一件事,它会自己去查资料、联系人、写报告、订会议室,最后跟你说一句"搞定了"。

这就是 Agent 的价值。不在于它"知道"多少,而在于它"能做"多少。

而我们现在正处在这个从"知道"到"能做"的转变过程中。工具在变好,模型在变强,协议在标准化。五年后回头看,2025 年大概就是 Agent 从实验品变成日常工具的转折点。


下一篇:MCP 协议实战指南:从原理到自己动手写一个 MCP Server