AI Agent是什么意思

文章导读
问「AI Agent 是什么意思」的人,通常不是想要一个定义,而是想弄清楚:我手上这套「调模型接口 + 拼提示词」的东西算不算 Agent,要不要改。判断点只有一个——下一步做什么,是代码写死的,还是模型在运行中选择的。一次请求一次回答、路径全靠 if-else 决定,那是普通模型调用;模型能挑工具、拿到工具结果再决定下一步、并且在合适的时候停下,才谈得上 Agent。
📋 目录
  1. Ⅰ AI Agent到底指什么
  2. Ⅱ AI Agent和哪几个说法容易混
  3. Ⅲ 什么情况其实用不上AI Agent
  4. Ⅳ AI Agent:三个动作确认你真的搞懂了
A A

问「AI Agent 是什么意思」的人,通常不是想要一个定义,而是想弄清楚:我手上这套「调模型接口 + 拼提示词」的东西算不算 Agent,要不要改。判断点只有一个——下一步做什么,是代码写死的,还是模型在运行中选择的。一次请求一次回答、路径全靠 if-else 决定,那是普通模型调用;模型能挑工具、拿到工具结果再决定下一步、并且在合适的时候停下,才谈得上 Agent。

判断是不是 AI Agent,看两件事:下一步动作是否由模型选择,以及是否存在「调工具—拿结果—再决策」的循环。请求体里只有 tools 声明、没把工具结果回填再请求,那只是带工具声明的单次调用;步骤在代码或画布里写死的是工作流。可以先用一次带 tools 的请求看返回体里有没有 tool_calls,再数一次真实任务的模型请求次数,两项都对上,再谈 Agent。

AI Agent到底指什么

AI Agent 指的是一段由模型驱动决策的程序循环:模型看当前状态,选一个工具(查数据库、调内部接口、跑脚本),拿到执行结果后决定继续、换工具还是收尾。它解决的是「步骤没法事先枚举、必须看中间结果再决定」的任务。

它在三个条件同时成立时才有意义:有真正能执行的工具入口;有能判断成功的标准;有能停下来的条件。缺一条,做出来的东西往往是个会转圈的问号。

想核实自己的系统在哪一层,不用看宣传页,看这几个位置就够:请求体里有没有 tools 数组;响应体里有没有 tool_calls,或 finish_reason 是否变成工具调用状态;服务端日志里同一次任务出现了几条模型请求;账号控制台用量页的调用次数和 token 消耗是否随任务复杂度增长。字段名、是否带 /v1 前缀各家不同,以你所用服务商 API 文档里「Tool use / Function calling」一节为准。

AI Agent是什么意思

下面这段可以直接复制执行,用来确认接口层到底支不支持工具调用。把 $API_BASE、$API_KEY、model 换成你控制台里的实际值,接口路径按文档改。

curl -s "$API_BASE/chat/completions" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "控制台里的模型名",
    "messages": [{"role":"user","content":"帮我查一下杭州现在的天气"}],
    "tools": [{
      "type": "function",
      "function": {
        "name": "get_weather",
        "description": "按城市查询天气",
        "parameters": {"type":"object","properties":{"city":{"type":"string"}},"required":["city"]}
      }
    }],
    "tool_choice": "auto"
  }'

重点看返回体:出现 tool_calls(带 name 和 arguments)说明模型侧会主动要工具;只返回一段普通文本,说明这个模型或这个接口没走工具调用,先去文档确认模型是否支持、字段名对不对,再排查参数。

AI Agent和哪几个说法容易混

名字相近的东西放在一起,各给一个能一眼分辨的判断条件:

AI Agent是什么意思
  • 普通模型调用:一次请求一次回答。一眼分辨:把 tools 参数删掉,功能基本不变。
  • 工作流 / 编排:步骤在代码或画布里写死,模型只负责其中某一步生成文本。一眼分辨:换成一个更弱的模型,流程仍然能走完,只是输出质量下降。
  • RAG 检索增强:先取知识库内容再回答,检索与否由代码决定。一眼分辨:关掉检索,回答还在,只是内容开始没有依据。
  • 带人工确认的助手 / Copilot:模型提议动作,人点了确认才执行。一眼分辨:代码里存在等待人工审批的中断点。
  • AI Agent:调哪个工具、调几次、什么时候停,由模型在运行时决定。一眼分辨:日志里同一类任务的模型请求条数不固定,且请求体里带着上一轮工具返回的结果。

最容易踩的坑是「只声明工具、不写回填循环」:请求里加了 tools,模型返回 tool_calls,但代码没去执行这个工具,也没把结果按工具消息的格式塞回 messages 再请求一次。表现是界面一直转圈或回一句空话,服务端日志里只有一条请求。修法是补齐循环:拿到 tool_calls 后执行工具、追加结果、带上 max_steps 发下一轮。

什么情况其实用不上AI Agent

先用顺序判断,再决定要不要上 Agent,不要反过来。

  1. 步骤能不能事前枚举?能枚举的(表单校验、定时报表、固定审批流)用脚本或工作流,模型只负责其中需要自然语言的那一步。
  2. 需要的工具是否超过两个、且调用顺序随输入变化?只有一两个固定调用,直接写函数调用,不要套循环。
  3. 失败时能不能让模型自己重试?涉及删除、付款、对外发消息这类写操作,建议在工具执行前留人工确认断点,不要给模型无限制的执行权。
  4. 单次任务能接受多少轮模型调用?单价、速率限制、免费额度会变,去账号控制台的计费/用量页和 API 文档的速率限制章节确认,不要按记忆里的数字估算。
  5. 有没有明确的停止条件(步数上限、超时、成功判据)?没有就先别上线。

典型的用不上场景:步骤固定且需要逐步追溯的流程、延迟要求稳定的同步接口、权限过大的运维操作。这些用规则引擎、工作流或带人工确认的半自动方案更省事,每一步为什么这么走也更容易解释清楚。

AI Agent是什么意思

AI Agent:三个动作确认你真的搞懂了

动作一:把上面那段 curl 换成你的模型跑一次。预期结果是返回体里有 tool_calls,且 arguments 是合法 JSON。只返回纯文本,说明这条链路不支持工具调用,或字段名、模型名写错;返回 400,先看错误信息里点名的参数,多半是 tools 的 schema 不合法。

动作二:在循环里给每次模型请求打一行日志(step 序号、选了哪个工具、耗时),跑一个真实任务。预期结果是同一次任务出现两条以上请求,且第二条的 messages 里带着上一条工具返回的内容。若永远只有一条请求,你手上的是单次调用,不是 Agent。

动作三:把工具实现换成 mock,故意返回空结果或报错。预期结果是模型拿到失败信息后换策略,或明确说明失败并停下。如果它反复调同一个工具不停,说明缺 max_steps 和重试上限,要先把硬性终止条件加进循环,再谈任务完成情况。