Agent到底是什么?不是起个名字就叫Agent

乐云一
  • 不止所云
  • 杂谈
  • AI
  • Agent
About 2416 wordsAbout 8 min

Agent到底是什么?不是起个名字就叫Agent

最近有一个很明显的感受:Agent这个词已经被用烂了

随便打开一个AI产品的介绍页,十有八九写着"AI Agent"、"智能Agent"、"自主Agent"。仿佛只要在一个聊天框后面接了个大模型,就能叫Agent了。

这就好比你在路边支个摊卖煎饼,挂个牌子叫"米其林三星",看着挺唬人,但煎饼还是那个煎饼。

所以我一直想写一篇这样的文章——说清楚Agent到底是个什么东西

不是为了学术上的定义,而是作为一个真正用Spring AI搭过Agent平台、用Claude Code写过数字分身的人,说说我对Agent的理解。

先说结论

不是所有的AI应用都叫Agent。

大部分所谓的"Agent",其实只是个ChatBot

ChatBot(聊天机器人):
  用户说一句话 → AI回一句话 → 结束

Agent(智能体):
  用户说一句话 → AI思考要做什么 → 调用工具 → 获取结果 → 继续思考 → ... → 给出最终回答

区别在哪?Agent能行动,ChatBot只能说话。

你让ChatBot帮你查天气,它会告诉你"你可以去天气网站查看"。你让Agent帮你查天气,它直接调用天气API把结果给你了。

这就是本质区别。

Agent的三板斧

一个真正的Agent,需要同时具备三个能力。缺一个都不算Agent:

┌──────────────────────────────────────────────┐
│              Agent = 感知 + 决策 + 行动        │
│                                               │
│   感知:理解用户的意图和当前环境               │
│   决策:思考下一步该做什么                     │
│   行动:调用工具、执行操作、改变状态           │
│                                               │
│   + 记忆:记住之前做过什么                     │
└──────────────────────────────────────────────┘

第一斧:工具调用(Tool Use)

这是Agent最基本的能力。

没有工具的Agent就像一个只会嘴上说说的顾问——"你可以这样做、那样做",但永远不帮你动手。

有工具的Agent才是一个真正能干活的执行者。

没有工具调用:
  用户: "帮我查一下张三的手机号"
  AI:   "抱歉,我无法访问您的通讯录数据库。
        建议您登录后台系统进行查询。"

有工具调用:
  用户: "帮我查一下张三的手机号"
  AI:   [思考: 需要调用用户查询工具]
        [调用: queryUser(name="张三")]
        [结果: { name: "张三", phone: "138xxxx" }]
        "张三的手机号是 138xxxx"

这就是我在physical-ai项目里做的@Tool注解系统。标记了@Tool的方法,AI在需要的时候会自动调用。

第二斧:ReAct循环(推理-行动)

光有工具还不够。Agent还需要知道什么时候该用什么工具

这就是ReAct模式——Reasoning(推理)+ Acting(行动):

ReAct 循环:

第1轮:
  思考: 用户要创建一个新用户,我需要调用创建用户工具
  行动: 调用 cmsAddUser(account="test001", password="xxx")
  观察: 系统返回需要用户确认(危险操作)

第2轮:
  思考: 创建用户是危险操作,需要先让用户确认
  行动: 告诉用户 "这个操作需要您确认,确认令牌是xxx"

--- 用户确认 ---

第3轮:
  思考: 用户已确认,执行创建操作
  行动: 调用 cmsConfirmAction(token="xxx")
  观察: 创建成功,用户ID为10086

第4轮:
  思考: 操作完成,给用户最终回复
  行动: 返回 "用户 test001 已创建成功"

ReAct的精髓在于:Agent不是一次性给出答案,而是一步一步地推理和行动,每一步都可以根据上一步的结果调整策略

这和人类解决复杂问题的方式一模一样——先想一步,做一步,看看结果,再想下一步。

第三斧:记忆(Memory)

没有记忆的Agent,每轮对话都是一张白纸。

你刚告诉它"帮我查一下张三的信息",下一秒你问"把他的手机号改一下",它反问"谁的手机号?"——这就是没有记忆的Agent。

无记忆:
  用户: "帮我查一下张三的信息"
  AI:   "张三,手机号138xxxx,邮箱zhangsan@xx.com"
  用户: "把他的手机号改一下"
  AI:   "请问您说的是谁?"          ← 失忆了

有记忆:
  用户: "帮我查一下张三的信息"
  AI:   [记忆: 当前上下文是张三]
        "张三,手机号138xxxx,邮箱zhangsan@xx.com"
  用户: "把他的手机号改一下"
  AI:   [从记忆中知道"他"是张三]
        "好的,请提供新的手机号"     ← 知道上下文

记忆分两种:

  • 短期记忆:当前会话的上下文,会话结束就消失
  • 长期记忆:跨会话的知识积累,就像经验库一样

在我的physical-ai项目里,短期记忆用MySQL + Redis二级缓存实现,长期记忆通过知识库文件维护。

现在市面上的"Agent"们

说完了真正的Agent应该长什么样,再来看看现在市面上那些自称Agent的产品,到底是什么水平:

等级一:套壳ChatBot

特征:
  - 一个聊天界面 + 调用大模型API
  - 没有工具调用能力
  - 没有记忆
  - 每次对话都是独立的

典型产品:
  各种"AI助手"、"智能客服"

这就是个ChatBot,不是Agent。就像外卖员只能帮你传话,不能帮你做饭。

等级二:带插件的ChatBot

特征:
  - 有工具调用能力(比如搜索、天气查询)
  - 但工具是固定的,不可扩展
  - 没有推理循环,调用一次工具就结束

典型产品:
  ChatGPT早期版本(带插件)

比等级一强了一点,但还是"问一次答一次"的模式,没有多轮推理。

等级三:真正的Agent

特征:
  - 工具调用 + ReAct循环
  - 多轮推理,根据中间结果调整策略
  - 有记忆(短期+长期)
  - 可以自主决定下一步做什么

典型产品:
  Claude Code(能自己读代码、写代码、跑测试、提交PR)
  Manus(能自己浏览网页、填写表单、完成任务)

这才是Agent。它能自主地、连续地完成一个复杂任务,而不是回答一个问题就结束。

等级四:Multi-Agent系统

特征:
  - 多个Agent分工协作
  - 每个Agent有自己的专长和工具
  - Agent之间可以传递上下文和产物
  - 有统一的调度和编排

典型产品:
  我的Eucalyptus(41个Skill + 22个Agent协作)
  AutoGPT(多Agent任务分解)

这是Agent的最高形态。不是一个Agent在干活,而是一支Agent团队在干活。

能力等级:
──────────────────────────────────────────────────
等级一  套壳ChatBot       只能说话
等级二  带插件ChatBot      能调用工具
等级三  真正Agent          能推理+行动+记忆
等级四  Multi-Agent       能协作+分工+编排
──────────────────────────────────────────────────

为什么Agent突然火了

2025年被称为"Agent元年",不是没有道理的。

关键原因是:大模型的能力跨过了一个门槛

在2024年之前,大模型的工具调用能力还不稳定。经常出现"明明有工具却不用"、"工具参数传错"、"循环调用同一个工具停不下来"这些问题。

但到了2025年,Claude、GPT-4o这些模型在工具调用方面已经非常可靠了。稳定的工具调用,加上ReAct模式的成熟,让Agent真正从"实验室概念"变成了"可用的产品"。

用我自己的经验来说:在physical-ai项目中,Spring AI的ReAct循环在大多数场景下都能稳定工作。AI能正确地判断什么时候该调用工具、传什么参数、怎么处理工具返回的结果。

这在一年前是不可想象的。

Spring AI做Agent够不够

这个问题我被问过好几次了。说说我的真实感受。

够,但有限制。

Spring AI 1.0提供的Agent基础设施:

能力Spring AI支持备注
工具调用完善@Tool注解 + 自动注册
ReAct循环自动ChatClient内置
对话记忆有接口ChatMemory,需自己实现持久化
流式响应支持Flux
多模型切换支持OpenAI/Anthropic/Ollama
MCP协议支持内置MCP Server/Client

Spring AI做得好的: ReAct循环、工具注册、模型适配这些脏活累活全包了。

Spring AI不管的: Agent路由、对话持久化、危险操作确认、多租户隔离、上下文管理——这些业务层面的东西得自己设计。

所以用Spring AI搭Agent,基础设施零成本,业务架构才是重头戏

最后

回到开头那个问题:Agent到底是什么?

我的定义是:能感知、能思考、能行动、能记忆的AI系统,才是Agent。

少一个都不行。

  • 只能感知和思考不能行动的,叫ChatBot
  • 能行动但不能思考的,叫自动化脚本
  • 能行动能思考但没有记忆的,叫一次性工具

只有四样全齐了,才配叫Agent。

当然,名字叫什么其实不重要。产品叫Agent也好叫助手也好,用户只关心一件事:你能不能帮我搞定问题?

能搞定,叫什么都行。搞不定,叫"超级无敌Agent Pro Max"也没用。

说到底,名字是给人看的,能力才是给用户用的。

Last update:
Contributors: LeYunone
Comments
  • Latest
  • Oldest
  • Hottest
Powered by Waline v2.14.7