什么是 AI Agent?它和直接调用大模型 API 有什么区别?

魏远标 Lv7

参考答案

AI Agent 就是一个能自己感知环境、拆解任务、调工具、拿结果、再决定下一步怎么干的自主系统。你给它一个目标,它自己想办法搞定,不用你一步步盯着。

直接调大模型 API 本质上就是”一问一答”,你发一段 Prompt 过去,模型吐一段文本回来,完事了。模型不会主动去干活,也不会根据中间结果调整策略。就像问一个很聪明的朋友问题,他给你答案但不帮你动手。

Agent 不一样,更像雇了个助理,你说”帮我订明天去上海的机票”,他自己查航班、比价、下单,中间卡住了还会自己想别的办法。

两者的核心差异有三点:

1)Agent 有循环执行能力,反复走”思考 → 行动 → 观察”这个环,直到任务做完。API 调用是单次的,走一遍就没了。

2)Agent 能调外部工具,搜索引擎、数据库、代码执行器都行。大模型 API 只能输出文本,对外部世界没有任何操作能力。

3)Agent 有记忆,能记住之前做了什么、拿到什么结果,后面的决策会基于这些历史信息。纯 API 调用每次都是从零开始。

扩展知识

Agent 的本质是 LLM + 循环 + 工具

理解 Agent 最快的方式就是一个公式:Agent = LLM + Loop + Tools。大模型负责”想”,循环机制让它能持续”做”,工具让它能真正影响外部世界。

这个循环通常叫 ReAct 循环,每一轮包含三步:先 Reasoning 想清楚当前该做什么,再 Acting 去执行一个动作,最后 Observation 把执行结果拿回来喂给大模型,进入下一轮。这个环会一直转,直到模型判断”任务完成了”或者”搞不定了”才会停。

普通 API 调用走一遍就结束了,Agent 会一直跑这个环直到目标达成。这一个循环就是 Agent 和简单 API 调用最根本的分水岭。

从 Prompt 到 Agent 的演进路径

最早大家就是拼 Prompt Engineering,靠写提示词让大模型给出好答案。很快发现光靠 Prompt 不够,模型的知识有截止日期,私有数据也不知道,于是加了 RAG 检索增强,先去向量库里搜一把相关文档塞进上下文,再让模型回答。

但 RAG 只能查资料,没法帮你执行操作。比如你想让 AI 帮你建个 Jira 工单、跑一段 SQL,RAG 做不到。于是 OpenAI 在 2023 年 6 月推出了 Function Calling,让模型自己判断”我现在需要调哪个函数、传什么参数”,调完之后把结果拼回对话继续推理。

再往前一步,把 Function Calling 塞进一个 while 循环里,让模型自己决定下一步做什么、什么时候停,这就是最基础的 Agent 了。2023 年 AutoGPT 火了一把就是干的这个事,虽然实际效果还比较粗糙,但把”LLM 自主循环调工具”这个范式打出来了。

到 2024-2025 年,Agent 框架开始成熟,LangGraph、CrewAI、AutoGen 这些工具让搭建 Agent 变得越来越工程化。2024 年底 Anthropic 发布了 MCP 协议统一工具接入标准,Agent 生态进一步标准化。所以 Agent 不是凭空出来的新概念,就是在大模型能力基础上,通过工程手段一步步赋予它”自主行动”能力的产物。

Agent 和 Workflow 的区别

很多人会把 Agent 和 Workflow 搞混。Workflow 是你提前把流程定死了,第一步干什么、第二步干什么、遇到什么条件走哪个分支,全都是人写好的逻辑。Agent 不一样,每一步做什么是大模型实时决定的,它有自主规划的能力。

打个最简单的比方:Workflow 像工厂流水线,每个工位干什么定死在那了;Agent 像一个有经验的员工,你给他一个目标,他自己安排工作步骤,中间遇到意外还能临时调整。

实际项目中两种模式经常混着用。可靠性要求高的环节用 Workflow 兜底,灵活性要求高的环节让 Agent 自主决策。Anthropic 在 2024 年底发布的 Agent 设计指南里就明确提了这个思路:能用 Workflow 搞定的别上 Agent,Agent 留给那些确实需要动态决策的场景。

面试官追问

提问:ReAct 这个循环具体是怎么实现的?模型怎么知道什么时候该停下来?

回答:实现上就是一个 while 循环,每一轮把当前任务描述、历史操作记录、上一步的工具返回结果拼成 Prompt 喂给大模型。模型的输出会按照约定格式给出 Thought、Action、Action Input 三个字段,框架解析出来之后去调对应的工具,把结果作为 Observation 拼回去进入下一轮。停止条件一般有两种:模型输出一个特殊的 Final Answer 标记,表示任务完成了;或者循环次数到了预设上限,强制终止防止无限跑下去。LangChain 默认上限是 15 轮。

提问:Agent 现在最大的问题是什么?实际落地效果怎么样?

回答:最大的问题就是不可控。模型的推理能力还不够稳定,复杂任务拆解经常出错,工具调用的参数也可能瞎填。一旦中间某一步走偏了,后面就全跟着跑偏。实际落地中,纯靠 Agent 自主决策的场景还比较少,大部分都是人工设定好关键节点的检查逻辑,在自主性和可控性之间做平衡。2025 年 Devin、OpenAI Codex 这些编程 Agent 算是落地效果比较好的方向,因为代码任务有明确的验证手段,跑测试就知道对不对。

提问:Function Calling 和 Tool Calling 有什么区别?

回答:严格来说没太大区别,就是叫法不同。OpenAI 最早叫 Function Calling,后来在 2023 年 11 月改名叫 Tool Calling,主要是想表达模型能调用的不只是函数,还可以是任意工具。Anthropic 从一开始就叫 Tool Use。底层机制都一样:模型输出一个结构化的 JSON 指明要调哪个工具、传什么参数,应用层解析之后去执行,再把结果喂回来。