AI Agent 详解

---
title: "AI Agent 详解"
author: "Amit Shekhar"
source_url: "https://outcomeschool.com/blog/ai-agent"
published_at: "2026-04-27T00:00:00.000Z"
fetched_at: "2026-07-01T23:32:05Z"
updated_at: "2026-07-02T01:10:37Z"
language: "zh"
review_status: "draft"
---

# AI Agent 详解

![AI Agent Explained](https://outcomeschool.com/static/images/blog/ai-agent.png)

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

我们会讲这些内容:

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

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

我在 Outcome School 教 [AI and Machine Learning](https://outcomeschool.com/program/ai-and-machine-learning)。

我们开始吧。

## 大图景

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

**AI Agent** 是一种系统:它可以接收我们给出的目标,自己想清楚实现目标需要哪些步骤,在需要时使用工具,并持续工作,直到目标完成。它不只是回答一个问题的 LLM。它是一个被包在[循环](https://outcomeschool.com/blog/ai-agent-loop)里的 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,无论多复杂,都有相同的五个核心部分。我们逐个拆开。

```text
+------------------------------------------------+
|                      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**。

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

```json
{
  "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. [记忆](https://outcomeschool.com/blog/ai-agent-memory)。** 它让 agent 能跟踪进度,并避免重复劳动。记忆有两种。**短期记忆**是当前运行中的对话历史:到目前为止的每个 prompt、[tool call](https://outcomeschool.com/blog/how-does-function-calling-work-in-llms) 和 observation。它存在运行时里,并且完整历史会在每次调用时反馈给 LLM,因为 LLM 本身是无状态的。**长期记忆**是我们希望 agent 跨运行记住的任何东西:用户偏好、过去的决定、学到的事实。它存在外部存储中,比如[向量数据库](https://outcomeschool.com/blog/how-does-a-vector-database-work)或用户画像,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](https://outcomeschool.com/program/ai-and-machine-learning)。

## AI Agent 如何端到端工作

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

循环的形态如下:

```text
   +----------------+
   |  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](https://www.youtube.com/watch?v=lnfWvX66FUk)

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

现在,我们回到主题。

## 一个具体例子: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` 则是任意函数:它按名称和给定参数运行工具,并返回结果。下面这段代码不依赖任何特定提供商。

```python
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_done` 是 `True`,说明 LLM 在告诉我们:**“我完成了,这是最终答案。”** 我们返回这个答案,并退出循环。
- **工具调用分支。** 如果 LLM 选择了一个或多个工具,我们就用 `call_tool` 按 LLM 给出的参数运行每个工具,并在下一轮把结果反馈给 LLM。

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

如果想从零构建一个 AI Coding Agent,我们有一套完整课程——可以看看 Outcome School 的 [AI and Machine Learning Program](https://outcomeschool.com/program/ai-and-machine-learning)。

## AI Agent 的类型

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

**[ReAct Agent](https://outcomeschool.com/blog/react-agent)。** agent 在每一步都在 Thought、Action 和 Observation 之间交替。这是最常见的模式。

**[Plan-and-Execute Agent](https://outcomeschool.com/blog/plan-and-execute-agent)。** agent 先创建完整计划,再一步步执行每个步骤。适合长任务。

**[Reflection Agent](https://outcomeschool.com/blog/reflection-agent)。** agent 先写草稿,再批判自己的工作,然后修订。适合质量比速度更重要的任务。

**[Agentic RAG](https://outcomeschool.com/blog/agentic-rag)。** agent 决定何时以及如何检索文档,然后用这些文档回答问题。适合知识密集型任务。

**[Multi-Agent System](https://outcomeschool.com/blog/multi-agent-systems)。** 多个拥有不同角色的 agent 一起工作。一个负责研究,一个负责写作,另一个负责审查。

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

如果想学习 ReAct、Agentic RAG、Multi-Agent Systems 和完整 agent 架构,可以看看 Outcome School 的 [AI and Machine Learning Program](https://outcomeschool.com/program/ai-and-machine-learning)。

## 今天 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](https://outcomeschool.com/blog/how-do-computer-use-agents-work) 现在已在 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](https://outcomeschool.com/blog/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](https://github.com/amitshekhariitbhu/ai-engineering-interview-questions)

这次就到这里。

谢谢

**Amit Shekhar**
[Outcome School](https://outcomeschool.com) 创始人

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

- [X](https://x.com/amitiitbhu)
- [LinkedIn](https://www.linkedin.com/in/amit-shekhar-iitbhu)
- [GitHub](https://github.com/amitshekhariitbhu)

关注 Outcome School:

- [X](https://x.com/outcome_school)
- [YouTube](https://youtube.com/@OutcomeSchool)
- [LinkedIn](https://www.linkedin.com/company/outcomeschool)
- [GitHub](http://github.com/OutcomeSchool)

[**在这里阅读我们所有高质量博客。**](https://outcomeschool.com/blog)

订阅我们的 [newsletter](https://outcomeschool.substack.com/subscribe),把最新的 AI 和机器学习博客直接发送到你的邮箱。