AI Agent 入门:定义、组成与典型应用场景详解

AI Agent 与直接调用大模型 API 的本质区别只有一句话:一次 API 调用是”输入提示词、返回文本”的单次无状态问答,而 Agent 是”目标 → 规划 → 行动 → 观察 → 再规划”的循环执行系统,能自主调用工具、携带记忆、根据中间结果调整策略,直到任务完成才停。把 Agent 拆成公式就是 Agent = 大模型 + 循环 + 工具(LLM + Loop + Tools),大模型负责推理,循环让它持续行动,工具让它真正触达外部世界。

一、一次 API 调用到底做了什么

直接调用大模型 API 是线性的、无状态的:客户端发一条 Prompt,模型生成一段文本,返回即结束。整个过程只有输入和输出,模型不记得上次聊了什么,除非应用层把历史消息重新拼进下一次请求;模型也不能主动查库、发邮件、执行代码,它的全部”动作”就是输出文本。

一个精辟的比喻:API 调用就像给一位博学的顾问打个电话,问一个问题,得到答案,挂断电话。顾问不会替你把答案落地执行。

二、Agent 多出来的三样东西

2.1 循环:把”一问一答”变成”闭环任务执行”

Agent 的核心是一个 while 循环,通常叫 ReAct(Reason + Act)循环:先推理当前该做什么,再执行一个动作(调用工具),然后观察结果,把结果喂回模型进入下一轮,直到模型判定”任务完成”或”卡住了”才终止。

2.2 工具:模型只”说”,代码负责”做”

Agent 向模型额外暴露一份工具清单(JSON Schema 描述的函数),模型回复时不再只给文本,还可以返回”调用 get_weather,参数是 {location: ‘Paris’}”这样的结构化请求,由你的代码去执行,再把执行结果追加进消息历史,继续下一轮。模型本身不执行任何函数,它只发出调用请求。

2.3 记忆:跨轮次与跨会话的上下文

Agent 的短期记忆是对话历史与工具结果的累积,长期记忆则把用户偏好、任务结果落到外部存储,下次会话再检索回来。普通 API 调用每次从零开始,Agent 则基于历史信息做后续决策。

三、一张表看懂核心差异

维度 大模型 API 调用 AI Agent
交互模式 一次输入、一次输出 多轮循环,直到任务完成
状态 无状态,每次调用独立 会话内短期记忆 + 跨会话长期记忆
外部操作 只能输出文本,无法主动触达外部系统 可调用 API、数据库、浏览器等工具
决策方式 严格按当前 Prompt 生成 自主规划、推理、选择行动
任务类型 翻译、摘要、代码生成等单步任务 订票、数据分析、自动化修复等多步任务
故障处理 结果不对就重新提问 观察反馈、重试或切换策略

四、从 API 到 Agent 的四步演进路径

  1. 第一层是纯 API 调用:拼 Prompt,让模型单次生成答案,解决”会说话”的问题;
  2. 加记忆层:把多轮对话历史保存并回传,解决”记得住”的问题;
  3. 加检索增强(RAG):从向量库检索相关资料塞进上下文再回答,解决”知道更多”的问题;
  4. 加循环与工具:让模型能查库、执行代码、操作外部系统,解决”做得到”的问题。

到了第四层,系统才称得上 Agent。它从”被动响应工具”变成了”目标驱动的执行系统”。

五、用一段伪代码看区别

# 方式一:直接调用大模型 API——单次、无状态
response = openai.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": "上海今天天气如何?"}]
)
print(response.choices[0].message.content)

# 方式二:Agent 循环——多轮、带工具、直到任务完成
tools = [{"type": "function", "name": "get_weather", ...}]
messages = [{"role": "user", "content": "上海今天天气如何?"}]

for _ in range(MAX_TURNS):                    # 循环是 Agent 的心脏
    reply = model.chat(messages, tools=tools)
    calls = reply.tool_calls
    if not calls:                             # 没有工具请求,说明可以收尾
        break
    for call in calls:
        result = execute_tool(call)           # 你的代码执行,模型不执行
        messages.append(tool_result(call, result))   # 结果回传

两种写法跑的是同一个模型,区别全在外部包装:多了一层循环、一份工具清单、一个结果回传机制。

六、什么时候该用 Agent,什么时候别用

Anthropic 的建议很直白:从最简单可靠的方案起步,只有单次调用确实做不好时才引入 Agent。翻译、摘要、文案生成、代码补全这类自包含任务,一次 API 调用就够,套 Agent 是过度设计。反过来,跨系统、多步骤、需要实时数据或实际操作的场景,比如”分析销售数据并生成报告”、”修 bug 并跑测试提 PR”,才值得上循环与工具。

要警惕的是 Agent 的副作用:模型决定下一步调用什么,而它恰恰是系统里最不可靠的部分——同样的输入可能走出不同的调用序列,参数可能生成错,失败时往往”看起来很合理”。所以工程上必须做参数校验、循环次数上限、工具结果一律当数据不当指令。

七、Agent 与工作流的界限在哪里

Anthropic 在 “Building Effective Agents” 里给了一条清晰的分界线:控制流写死在代码里、由代码逐步骤编排 LLM 调用,那是工作流(workflow);控制流交给 LLM 自行决定、自主规划下一步并调用工具,才是 Agent。选型时按任务特征判断——步骤数可预先确定的固定任务(如”提取→转换→分析→出报告”)用工作流,成本低、好调试;开放式、步骤数不可预测的任务(如”排查这个系统问题”)才值得让 LLM 掌握控制流。很多看似需要 Agent 的场景,拆成两三个步骤的工作流反而更稳。

常见问题(FAQ)

Q1:Agent 会取代大模型 API 调用吗?

不会。Agent 建立在 API 之上,单步任务用 API 更省成本、更好调试。

Q2:RAG 算 Agent 吗?

不算。RAG 只增强”读取知识”,没有循环与工具,不做实际操作。

Q3:怎么判断该不该用 Agent?

任务步骤数可预测就用工作流,不可预测、需要自主决策才上 Agent。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 qiqicto@qq.com 举报,一经查实,本站将立刻删除。
赞 (0)
其AI的头像其AI普通用户

相关推荐

返回顶部