同样调大模型API,Agent和普通调用的本质差别在哪?

2 阅读5分钟

‍前阵子和一个朋友聊到 Agent,他说了一句很有代表性的困惑:我调的就是同一个大模型接口,外面包了一层工具调用,怎么它就变成"Agent"了?模型和 Agent 到底差在哪?

这个问题值得多问问多想想。现在很多产品自称 Agent,实际只是一个带 Function Calling 的聊天框;也有很多团队把模型当 Agent 用,结果发现它"只会说不会做"。搞清楚两者的差别,比纠结名词定义更有用。

读完你可以搞清楚三件事:你的系统到底算模型调用还是 Agent、从模型到 Agent 要多解决哪些工程问题、如果要动手改该从哪入手。

先明确两个概念

一般 AI 模型(这里指纯生成式模型调用):

单次推理:prompt 进,文本出

无副作用:不调用外部系统,不产生真实动作

无状态:每次调用彼此独立

API 调用 Agent:

模型 + 工具注册 + 循环执行

模型输出的不是最终答案,而是一段"行动计划"(function call)

程序执行计划,把结果喂回模型,再继续推理,直到任务完成

底层可能是同一个模型,差别在于外面包的那层运行时。

普通模型调用就一步:你问,它答,结束。

Agent 是另一回事:你问,它决定调用哪个工具,程序去执行,把结果拿回来给它看,它再决定下一步干什么,就这么反复跑,直到把事情办完才停。

一个是一锤子买卖,一个是闭环跑圈,这是最根本的不同。

一句话:模型负责"想",Agent 负责"想 + 做 + 复盘",并且循环往复。

六个维度的硬差别

第一个,输出给谁看。 模型的输出是自然语言,给人读的。Agent 输出的是结构化指令,给程序执行的。这个差别带来的后果是——模型答错只是话不对,Agent 输出错了就是动作错,可能真的去调了一个不该调的接口。

第二个,有没有真实动作。 查天气、订机票、改数据库、发消息——这些是 Agent 的日常。副作用是 Agent 的价值,也是风险来源,所以权限边界、人工审批这些在纯模型调用里根本不存在的组件全被引入。

第三个,是不是循环。 这是最本质的差别。纯模型一次性推理就结束了。Agent 走的是思考→行动→观察结果→再思考的循环,直到任务完成或者达到步数上限。循环带来了三个新问题:步数上限设多少、怎么判断该停了、循环状态存在哪。

第四个,上下文怎么管。 Agent 每一轮都得把工具执行结果塞回上下文,token 涨得飞快。一个稍微复杂的任务,几轮下来就是几千上万 token。所以上下文压缩、记忆管理、长任务分段成了 Agent 工程的核心难点,纯模型调用里根本不用操心这些。

第五个,错了怎么办。 纯模型调用输出不满意就再问一次。Agent 不行,JSON 解析失败、参数非法、外部 API 超时、返回结构不对,全得校验和重试。更要命的是幂等性,Agent 重试一个下单动作,不能让用户被扣两次款。这就要求外部 API 本身支持幂等键,或者 Agent 在编排层做去重。

第六个,成本和延迟。 一个 Agent 任务常见要调模型五到二十次,token 成本和延迟是纯模型调用的几倍到几十倍。这直接影响产品定价、超时设计和用户体验——用户等一个会办事的 Agent,往往比等一段文本慢得多。

上下文工程是那座桥

前面说 Agent 要选对工具、填对参数,模型怎么知道该怎么做?靠上下文工程:把每个 API 的说明、参数格式、返回结构作为上下文喂给模型。

说个以前曾经干过的。我们早期做的时候,偷懒把 API 文档直接贴进去当工具描述,结果模型老是把"查航班"和"订航班"搞混。后来改成只写三句话——什么时候用这个工具、参数到底指什么、返回长什么样——准确率从不到七成提到了九成多。这件事让我意识到,工具描述怎么写,有时候比选哪个模型还关键。

上下文描述得差,模型就会选错工具、填错参数。这是 Agent 任务失败的第一大来源,比模型本身的能力更常见。

行业还在往前走一步

Agent 之间通过标准协议互相调用对方的"能力 API",这就是 A2A(Agent-to-Agent)。在这个阶段,API 的概念从"软件接口"扩展成"能力接口"——你的 Agent 不再只是消费别人 API 的执行者,也可能成为被别的 Agent 调用的服务方。

对做平台的人来说,这意味着 API 的设计要考虑"被 Agent 消费"的场景:机器可读的文档、严格的输入输出契约、稳定的幂等语义。

如果你要从模型调用改成 Agent,至少做三件事

第一,结构化约束。 用 Function Calling 加 JSON Schema 把模型输出锁死,保证可解析可校验,别靠 prompt 祈祷它输出合法 JSON。

第二,循环编排。 用状态机或者现成框架管理步数、终止条件、中间状态,别把循环逻辑散落在业务代码里。

第三,验证闭环。 结果校验、重试、回滚、调用审计。这一步是 Agent 从 demo 到生产环境的真正门槛,也是最容易被跳过的一步。

总结

模型是"会说话的大脑",Agent 是"大脑 + 手脚 + 循环"的完整执行体。判断一个系统是不是真 Agent,不用看宣传怎么写,看三点:有没有多轮推理循环、有没有产生真实副作用、有没有工具边界约束。三者缺一,就还只是"带点智能的 API 封装"。

你在做的 Agent 踩过最大的坑是什么? 工具选错、上下文爆炸还是重复扣款?欢迎评论区聊聊,帮大家省点弯路。