← 懂一点

什么是 AI Agent——从“会聊天”到“会做事”

2026-07-21

本文是专栏《从零看懂 AI Agent》第 1 篇。回到目录与导读

先从一个场景说起

假设你想订一张下周去上海的高铁票。

聊天机器人是这样的:

你:"帮我查下周去上海的高铁。" 它:"好的,你可以打开 12306,搜索……"

它给你的是一段建议。真正的查询、比价、下单,还得你自己动手。

而用一个Agent,理想情况是这样的:

你:"帮我订下周三上午去上海、二等座、靠窗的高铁票。" 它:(自己去查车次 → 筛选上午的 → 挑有靠窗余票的 → 下单 → 回来告诉你)"已订好 G1024,周三 9:00 出发,二等座 07F 靠窗,订单号 xxx。"

差别在哪?聊天机器人只会输出文字;Agent 会自己去做事,中间不用你一步步盯着。

这就是最朴素的区分:

聊天机器人回答问题,Agent 完成任务。

一个能落地的定义

学术和工程界对 Agent 有很多定义,但剥掉外壳,一个 AI Agent 通常具备三个特征:

  1. 有目标:你给它一个任务,而不只是一个问题。
  2. 能自主循环:它会自己"想一步、做一步、看结果、再想下一步",直到任务完成,而不是一次输出就结束。
  3. 能调用工具:它可以搜索、读写文件、调 API、运行代码——伸手去"够"到真实世界。

用一句话概括:

AI Agent = 大模型(会思考) + 循环(能持续推进) + 工具(能动手)。

这三样缺一不可。少了工具,它只能空想;少了循环,它只能回一句就停;少了模型,它就没有"判断该做什么"的大脑。

为什么"循环"是关键

很多人以为 Agent 的魔法在于模型多聪明,其实循环才是它区别于普通问答的分水岭。

普通问答是"一问一答":

输入 → 模型 → 输出(结束)

Agent 是"一个不断转的圈":

目标 →┌─────────────────────────┐
      │ 想:现在该做什么?        │
      │ 做:调用某个工具          │
      │ 看:工具返回了什么结果?   │
      └───────────┬─────────────┘
                  │ 还没完成?回到"想"
                  │ 完成了?输出最终结果

正因为有这个圈,Agent 才能应付"计划赶不上变化"的真实任务。比如订票时发现上午没票了,它能自己改成中午——而不是像静态脚本那样直接报错停下。这一点我们会在第 3 篇讲 ReAct时展开。

Agent、工作流、聊天机器人,怎么分?

这三个词经常被混着用,简单对照一下:

谁来决定下一步? 举例
聊天机器人 用户(每一步都要你发话) 客服问答、翻译
工作流(Workflow) 程序员(提前写死的流程) "收到邮件 → 提取附件 → 存数据库"
Agent 模型自己(运行时临场决定) "帮我调研这三家公司并出一份对比"

关键分界在于**"下一步由谁决定"。工作流的路线是人提前画好的,遇到没预料的情况就断了;Agent 的路线是模型临场判断**出来的,所以更灵活,但也更难预测、更难保证稳定——这正是工程上最头疼的地方(第 8 篇会专门讲)。

一条实用经验:能用固定工作流解决的,就别上 Agent。 Agent 的灵活性是有代价的——更慢、更贵、更难调试。只有当任务步骤没法提前写死时,Agent 才真正有价值。

一个"最小 Agent"长什么样

不用任何框架,一个 Agent 的骨架其实就几行伪代码:

目标 = "帮我查北京今天的天气并判断要不要带伞"
历史 = [目标]

while True:
    # 1. 想:把历史丢给模型,让它决定下一步
    决定 = 模型.思考(历史)

    if 决定.是最终答案:
        print(决定.内容)          # 3-a. 完成,输出
        break

    # 2. 做:模型想调用某个工具
    结果 = 执行工具(决定.工具名, 决定.参数)

    # 3-b. 看:把结果塞回历史,进入下一轮循环
    历史.append(决定)
    历史.append(结果)

是不是比想象中简单?真正复杂的不是这个骨架,而是:

这些正是后面几篇要一块块拆开讲的。

小结

下一篇,我们把这个"系统"拆开,看看一个 Agent 内部到底由哪几个零件组成。

继续阅读:Agent 的大脑与四肢——拆解核心组成