AI Agent 详解

AI Agent Explained

在这篇文章里,我们会学习 AI Agent:它是什么,它和普通 LLM 有什么不同,它的五个核心部分,它如何端到端工作,主要类型有哪些,以及什么时候应该使用它。

我们会讲这些内容:

  • 大图景
  • 什么是 AI Agent
  • AI Agent vs 普通 LLM vs 聊天机器人
  • 五个核心部分
  • AI Agent 如何端到端工作
  • 一个具体例子:Research Agent
  • AI Agent 的类型
  • 今天 AI Agent 能做什么
  • 什么时候使用 AI Agent
  • 常见失败模式
  • 快速总结

我是 Amit ShekharOutcome School 创始人。我教过并辅导过很多开发者,他们靠自己的努力拿到了高薪技术岗位;我也帮助过许多科技公司解决各自独特的问题,并创建过很多被顶级公司使用的开源库。我热衷于通过开源、博客和视频分享知识。

我在 Outcome School 教 AI and Machine Learning

我们开始吧。

大图景

在进入细节之前,我们先理解大图景。

AI Agent 是一种系统:它可以接收我们给出的目标,自己想清楚实现目标需要哪些步骤,在需要时使用工具,并持续工作,直到目标完成。它不只是回答一个问题的 LLM。它是一个被包在循环里的 LLM,带有工具和记忆,所以能真正把事情做完。

简单说:

AI Agent = LLM + 指令 + 工具 + 记忆 + 一个持续运行到目标达成的循环。

可以把 AI Agent 想成第一天入职的新实习生。他不会一口气做完整个任务。他会读任务,思考先做什么,使用工具(打开文件、发送消息、运行查询),检查结果,再决定下一步。这个过程会重复,直到工作完成。AI Agent 做的是同一件事,只是更快,而且不会休息。工作形态一样,速度不同。

什么是 AI Agent

现在我们有了大图景,再把这个词拆开看。

AI Agent = AI + Agent

AI 指推理引擎,几乎总是 Claude、GPT 或 Gemini 这样的 LLM。Agent 指能自主行动的东西:它可以感知世界,决定要做什么,并采取行动来达成目标。

把两者放在一起,我们得到的是一个软件系统,其中 LLM 是决策者。它不只是生成文本。它会决定要采取什么动作,选择合适的工具,读取循环反馈回来的结果,并规划下一步。普通 LLM 给出一个答案就停止。AI Agent 会继续推进:思考、行动、观察、再思考,直到目标达成。

所以,当一个任务太大,无法通过单次 LLM 调用解决时,AI Agent 就登场了。

AI Agent vs 普通 LLM vs 聊天机器人

这三者经常被混淆。我们把它讲清楚。

普通 LLM。 一次请求,一次响应。我们发送一个 prompt,得到一段文本。除此之外没有别的事发生。

聊天机器人(Chatbot)。 带有当前对话记忆的普通 LLM。我们可以来回聊天。在它的经典形态里,每次响应都只是文本。它不会自主采取现实世界里的行动。

AI Agent。 一个也能使用工具、并在循环中完成任务的聊天机器人;或者一个在后台运行、配置相同但不需要聊天界面的 LLM。定义它的关键属性是工具使用加循环,而不是聊天 UI。它不只是说话,还能搜索网页、运行代码、发送邮件、更新数据库,以及执行我们授权给它的其他任何动作。

简单说:

普通 LLM 说一次话。Chatbot 说很多次话。AI Agent 会说话,也会行动,并且会反复进行,直到任务完成。

注意: 今天,chatbot 和 agent 之间的界限正在变模糊。一旦 chatbot 拥有工具和循环,它就变成了 agent。ChatGPT 和 Claude.ai 这类产品已经越过了这条线。

正是这个差异,也就是采取行动并在循环中运行的能力,把 AI Agent 和普通 LLM 或经典 chatbot 区分开来。

五个核心部分

现在我们放大来看。每个 AI Agent,无论多复杂,都有相同的五个核心部分。我们逐个拆开。

+------------------------------------------------+
|                      Loop                      |
|                                                |
|   Instructions --->  +-------+                 |
|                      |       |                 |
|   Memory       --->  |  LLM  | <-----+         |
|                      +-------+       |         |
|                          |           |         |
|                          | pick      | result  |
|                          v           |         |
|                      +-------+       |         |
|                      | Tools | ------+         |
|                      +-------+                 |
+------------------------------------------------+

1. LLM(大脑)。 这是推理引擎。它读取当前状况,并决定下一步动作:要么选择一个工具让循环去调用,要么返回最终答案。agent 中每个有意义的决策都会经过 LLM。LLM 不会自己调用工具,它只会建议使用哪个工具、传入什么输入。真正调用工具的是循环。

2. 指令(system prompt)。 它告诉 LLM 工作是什么、有哪些工具、要遵守哪些规则。没有好的指令,agent 会迷糊。有了好的指令,agent 才知道自己到底该做什么。

3. 工具(手)。 这些是 agent 可以采取的行动:搜索、计算、读取文件、调用 API、发送邮件、运行代码。每个工具都有一个 name、一个 description 和一个 input schema

下面是一个实际工具定义的样子:

{
  "name": "web_search",
  "description": "Search the web for pages matching the query. Use this tool when the user asks for current information, news, or anything not available in the model's training data.",
  "input_schema": {
    "type": "object",
    "properties": {
      "query": {
        "type": "string",
        "description": "The search query to run."
      },
      "max_results": {
        "type": "integer",
        "description": "Maximum number of results to return. Default is 5."
      }
    },
    "required": ["query"]
  }
}

这里,LLM 会读取 name 来识别工具,读取 description 来判断什么时候使用它,读取 input_schema 来知道要传入什么参数、用什么格式。description 是最重要的字段,每个词都很关键,因为 LLM 正是靠它在工具之间做选择。模糊的 description 会导致选错工具。精确的 description 会引导它选对工具。

4. 记忆 它让 agent 能跟踪进度,并避免重复劳动。记忆有两种。短期记忆是当前运行中的对话历史:到目前为止的每个 prompt、tool call 和 observation。它存在运行时里,并且完整历史会在每次调用时反馈给 LLM,因为 LLM 本身是无状态的。长期记忆是我们希望 agent 跨运行记住的任何东西:用户偏好、过去的决定、学到的事实。它存在外部存储中,比如向量数据库或用户画像,agent 会在需要时从中检索。

5. 循环(runtime)。 这是让 agent 持续运行的代码。把 prompt 发送给 LLM。读取 LLM 的响应。如果 LLM 选择了工具,就运行那个工具。把结果反馈回去。重复,直到 LLM 说“完成”。循环让它成为 agent,而不只是聊天机器人。工具调用实际发生的地方也在循环里:LLM 只决定使用哪个工具。

回到实习生类比:LLM 是实习生的大脑,Instructions 是经理交给他的工作说明,Tools 是他能使用的电脑、邮件和办公系统,Memory 是他用来跟踪进度的笔记本,Loop 则是让他从一个任务推进到下一个任务的整个工作日。

这五个部分共同工作。去掉任何一个,它就不再是 AI Agent。因此,每个真实的 AI Agent,从带工具的简单 chatbot 到自主编码助手,都有这五个部分。

如果想深入掌握 AI Agents、工具使用、agent memory 和 agent architecture,可以看看 Outcome School 的 AI and Machine Learning Program

AI Agent 如何端到端工作

现在,我们把所有部分放在一起,看看 AI Agent 实际如何运行。

循环的形态如下:

   +----------------+
   |  User's Goal   |
   +----------------+
            |
            v
   +----------------+        +-------------+
   |      LLM       |------->|    Tool     |
   |  (decides:     |        +-------------+
   |   pick a tool  |              |
   |   or return    |              v
   |   final answer)|        +-------------+
   |                |<-------| Observation |
   +----------------+        +-------------+
            |
            | when goal is achieved
            v
   +----------------+
   |  Final Answer  |
   +----------------+

目标从顶部进入。LLM 看着目标,决定两件事之一:下一步应该让循环调用哪个工具,或者直接给出最终答案。当 LLM 选择工具时,循环会运行工具并产生一个观察结果(observation),再把它反馈给 LLM。然后 LLM 再次决策。LLM、Tool 和 Observation 之间的这个小循环会持续运行,直到 LLM 判断目标已经达成并返回最终答案。

每个请求里发生的是下面这些事:

第 1 步: 用户给 agent 一个目标,比如“帮我找明天去德里的 3 个最便宜直飞航班,价格低于 8000 卢比。”

第 2 步: Loop 把目标、指令和所有记忆发送给 LLM。

第 3 步: LLM 思考并决定下一步动作。比如:“我首先需要搜索航班。”

第 4 步: Loop 运行 LLM 要求的工具(航班搜索工具)。

第 5 步: 工具返回结果。Loop 把它作为观察结果反馈给 LLM。

第 6 步: LLM 读取观察结果,并决定下一步动作。也许按价格过滤,也许选出最便宜的前 3 个。

第 7 步: Loop 运行下一个工具。循环重复。

第 8 步: 当 LLM 判断目标已经达成,它会向用户返回最终答案:“完成。这里是 3 个最便宜的直飞航班:AI-123,6500 卢比;IX-201,7200 卢比;SG-312,7800 卢比。”

注意: Claude 和 GPT 这类现代 LLM 可以在单一步骤中输出多个工具调用,真实 runtime 也可以并行运行它们来节省时间。循环的形态保持不变:LLM 决策,工具运行,observation 反馈回来。只是当 LLM 选择时,每一轮可以有多个动作。

整件事就是一个循环。LLM 是决策者。工具是手。记忆保存进度。循环让它们持续运转。

这就是 AI Agent 的妙处。每个决策都来自 LLM。每个动作都由工具执行。循环让它们协同推进,直到工作完成。这个流程不是硬编码的,agent 会边走边想清楚。

给你一个小提示

无论你在哪个技术领域工作,都应该熟悉这些主题:

  • LLM
  • RAG
  • MCP
  • Agent
  • Fine-tuning
  • Quantization

我们把它们整理进了一个视频:

AI Engineering Explained: LLM, RAG, MCP, Agent, Fine-Tuning, and Quantization

不用现在停下来去看——先收藏,等有时间再看。未来的你会感谢现在的你。

现在,我们回到主题。

一个具体例子:Research Agent

学习这件事最好的方式,是看一个例子。

假设我们告诉一个 agent:“研究一下 1500 美元以下最适合视频剪辑的笔记本电脑。”

这是一个 Research Agent。我们看看它在幕后做什么。

这个 agent 使用这些工具:

  • 网页搜索工具:查找关于笔记本电脑和软件的页面
  • 网页读取器:读取评测、规格和价格
  • 计算器:比较 RAM、存储、价格等数字

agent 会做决策:

  • 要研究哪些笔记本电脑
  • 哪些因素最重要:RAM、GPU、存储
  • 哪些来源可信

agent 会采取多个动作:

  • 搜索 “best video editing laptops 2026”(LLM 决定从宽泛搜索开始)
  • 读取靠前的结果(LLM 选择哪些页面值得打开)
  • 比较 5 台笔记本的规格(LLM 提取重要因素)
  • 在 Amazon 上检查价格(LLM 验证预算约束)
  • 阅读用户评价(LLM 衡量真实世界的质量信号)
  • 创建包含优缺点的总结(LLM 起草候选清单)
  • 返回前 3 个推荐及理由(LLM 生成最终答案)

这里,LLM 是决策者。工具是手。循环让它持续运行,直到最终报告准备好。还是前面拆过的五个部分,只是连接到了一个真实任务上。

现在,重要的认识来了:

如果我们写了一段代码,它接收输入,把输入发送给 LLM,执行动作,并重复这个循环直到任务完成,那么这段代码就是一个 AI Agent。

AI Agent 就是这么回事。没有魔法,没有黑盒。只是一个循环、一个 LLM、一些工具和记忆,把它们用代码连在一起。

我们看看真实 Python 代码里它长什么样。这里,call_llm 可以是任意函数:它把 messages 和工具列表发送给我们选择的 LLM,比如 Claude、GPT、Gemini 或其他模型,并返回响应。call_tool 则是任意函数:它按名称和给定参数运行工具,并返回结果。下面这段代码不依赖任何特定提供商。

async def run_agent(user_goal, tools, max_steps=10):
    messages = [{"role": "user", "content": user_goal}]
    step = 0

    while True:
        # Safety stop: bail out if we hit the step limit
        if step >= max_steps:
            return "Reached step limit without completing the task."
        step += 1

        # Ask the LLM what to do next
        response = await call_llm(messages, tools)

        # If the LLM says "I am done", stop the loop and return the final answer
        if response.is_done:
            return response.final_answer

        # Otherwise, run each tool the LLM picked and feed the result back
        for tool_call in response.tool_calls:
            result = await call_tool(tool_call.name, tool_call.arguments)
            messages.append({
                "role": "tool",
                "name": tool_call.name,
                "content": str(result),
            })

这里,我们用大约 20 行 Python 就写出了完整的 AI Agent。我们走一下重要部分:

  • while True 循环。 这是 agent 的 runtime。它会持续运行,直到 LLM 说已经完成,或者达到步骤上限。
  • 步骤上限。 达到 max_steps 次迭代后就退出。这可以防止无限循环——最常见的失败模式之一。
  • LLM 调用。 我们把完整对话历史和工具列表一起发送过去。await 让它变成异步:当 LLM 思考时,我们的程序可以做其他工作。
  • 停止检查。 如果 response.is_doneTrue,说明 LLM 在告诉我们:“我完成了,这是最终答案。” 我们返回这个答案,并退出循环。
  • 工具调用分支。 如果 LLM 选择了一个或多个工具,我们就用 call_tool 按 LLM 给出的参数运行每个工具,并在下一轮把结果反馈给 LLM。

这就是 AI Agent 的完整骨架:一个 while 循环,循环里一次 LLM 调用,一个停止信号检查,以及一个把结果反馈回去的工具调用分支。我们后面添加的一切,比如记忆、并行工具调用、重试、日志,都是围绕这个核心循环做的打磨。

如果想从零构建一个 AI Coding Agent,我们有一套完整课程——可以看看 Outcome School 的 AI and Machine Learning Program

AI Agent 的类型

并不是所有 AI Agent 都长得一样。下面是实践中会见到的主要类型。它们都有相同的五个核心部分,只是连接方式略有不同。

ReAct Agent agent 在每一步都在 Thought、Action 和 Observation 之间交替。这是最常见的模式。

Plan-and-Execute Agent agent 先创建完整计划,再一步步执行每个步骤。适合长任务。

Reflection Agent agent 先写草稿,再批判自己的工作,然后修订。适合质量比速度更重要的任务。

Agentic RAG agent 决定何时以及如何检索文档,然后用这些文档回答问题。适合知识密集型任务。

Multi-Agent System 多个拥有不同角色的 agent 一起工作。一个负责研究,一个负责写作,另一个负责审查。

注意: 这些类型并不互斥。真实系统经常组合多种模式,比如一个 ReAct agent 使用 Agentic RAG 做知识检索,并在最后加一个 Reflection 步骤来提高质量。

如果想学习 ReAct、Agentic RAG、Multi-Agent Systems 和完整 agent 架构,可以看看 Outcome School 的 AI and Machine Learning Program

今天 AI Agent 能做什么

我们看看 AI Agent 现在已经在做的一些真实事情。这不是理论,它们已经在生产中。

Coding agents。 读取代码仓库,理解代码,做修改,运行测试,并提交 pull request。例子包括 Claude Code、Cursor、GitHub Copilot agent mode。

Research agents。 搜索网页,阅读论文,综合发现,并生成结构化报告。例子包括 OpenAI Deep Research、Perplexity、Gemini Deep Research。

Customer support agents。 读取工单,查询用户账户,检查订单状态,并给出修复回复;需要时转交给人工。

Browser agents。 打开浏览器,浏览网站,填写表单,并完成订票或购买这类任务。例子包括 Claude Code(Computer Use 现在已在 Claude Code 中)、ChatGPT Agent。

Data analysis agents。 查询数据库,运行计算,创建图表,并总结发现。例子包括 ChatGPT data analysis、Claude 的代码执行。

Personal assistants。 管理日历,读取并起草邮件,搜索文件,并代表用户完成多步骤任务。例子包括 Apple Intelligence、Google Gemini assistant。

所有这些都是同样的五部分结构。变化的只是工具和指令。只要理解这五个部分,我们就理解了所有 AI Agent。

什么时候使用 AI Agent

现在自然会出现一个问题:什么时候我们真的应该构建 AI Agent?什么时候更简单的工具才是更好的选择?

适合使用 AI Agent 的情况:

  • 任务需要多个步骤才能完成。
  • 下一步取决于当前步骤的结果。
  • 任务需要外部信息或现实世界动作,而不只是模型已有知识。
  • 路径不是固定的,agent 必须边做边决定下一步。

不适合使用 AI Agent 的情况:

  • 单次 LLM 调用就能解决任务,比如总结一段话。
  • 任务是没有分支的固定流水线,普通脚本更简单。
  • 延迟和成本比灵活性更重要,而且任务很简单。
  • 我们无法容忍 LLM 决策带来的非确定性。

经验法则很简单:如果任务需要相互依赖的决策和动作,AI Agent 就是合适工具。否则,坚持使用普通 LLM 调用或脚本。明明脚本能做,却用 agent,就是过度工程化。

常见失败模式

AI Agent 很强大,但它们会以特定方式失败。了解这些失败模式,有助于我们构建更可靠的 agent。我们逐个拆开。

1. 无限循环。 agent 一直调用同一个工具,却永远不给出最终答案。

修复方法: 设置硬性的步骤数量上限。

2. 选错工具。 agent 为任务选择了错误工具。

修复方法: 写非常清晰的工具描述。description 里的每个词都很重要。

3. 幻觉动作。 LLM 选择了不存在的工具,或者传入无效参数。

修复方法: 使用 LLM 原生的工具使用支持,并在循环中运行工具前验证输入。如果输入无效,就把清晰错误作为观察结果返回,让 agent 可以自我修正。

4. 上下文溢出。 对话历史变得太大,放不进模型的上下文窗口(context window)。

修复方法: 总结较早步骤,或者丢弃过时观察结果。

5. 过早停止。 agent 在任务完成前就放弃。

修复方法: 在指令中清楚说明什么时候任务才算真正完成。

非常重要: 生产级 AI Agent 的重点,大多在于妥善处理这些失败模式。快乐路径很容易,边界情况才是真正的工程所在。我们有一篇详细介绍 AI Agent Evaluation 的文章,解释如何系统衡量 AI Agent 的 outcome、trajectory 和 tool use。

现在,我们已经理解了什么是 AI Agent、它如何工作,以及什么时候使用它。最后快速回顾一下。

快速总结

我们回顾一下刚才拆解的内容:

  • AI Agent = LLM + Instructions + Tools + Memory + Loop。 LLM 是决策者,工具是手,循环让它持续运行,直到目标完成。
  • 不只是 chatbot。 AI Agent 会说话,也会行动。它会采取真实动作,而不只是生成文本。
  • 五个核心部分。 LLM、Instructions、Tools、Memory、Loop。去掉任何一个,它就不再是 AI Agent。
  • 端到端流程。 循环把 prompt 发送给 LLM -> 如果 LLM 选择工具,循环就运行工具并反馈结果 -> 如果 LLM 返回最终答案,循环就停止。重复,直到完成。
  • 类型。 ReAct、Plan-and-Execute、Reflection、Agentic RAG 和 Multi-Agent Systems。真实系统经常组合它们。
  • 今天的用例。 编码、研究、客户支持、浏览器操作、数据分析、个人助理。所有场景里都是同样的五部分结构。
  • 什么时候用。 任务需要多个步骤、工具使用和自适应决策。否则,使用普通 LLM 调用或脚本。
  • 失败模式。 无限循环、选错工具、幻觉动作、上下文溢出、过早停止。处理这些才是真正的工作。

AI Agent 把动态、目标驱动的控制流带进了主流软件:程序不再只是按照固定脚本执行,而是自己决定下一步。这正是它们强大的地方,也是它们困难的地方。未来每个严肃的 AI 应用都会朝这个方向发展。

准备 AI 工程面试可以看这里:AI Engineering Interview Questions

这次就到这里。

谢谢

Amit Shekhar Outcome School 创始人

你可以通过以下方式联系我:

关注 Outcome School:

在这里阅读我们所有高质量博客。

订阅我们的 newsletter,把最新的 AI 和机器学习博客直接发送到你的邮箱。