AI Agent 学习笔记(零):从 0 认识 AI Agent

AI Agent 学习笔记(零):从 0 认识 AI Agent

本文是《AI Agent 学习笔记》系列的第 0 篇,完全面向初学者。即使你只会一点点 Python,也能跟着读完并跑通第一个 Agent。

一. 什么是 AI Agent

AI Agent(人工智能智能体 / AI 智能体)可以简单理解成:一个能自己思考、自己调用工具、自己完成任务的 AI 程序

它不再是你问一句它答一句的“聊天框”,而是一个像“员工”一样的程序:你给它一个目标,它能:

  1. 拆解目标,制定计划;
  2. 调用计算器、搜索引擎、数据库等“工具”获取信息;
  3. 记住过程中的关键信息;
  4. 一步步执行,直到完成任务。

1.1 Agent 和聊天机器人的区别

对比项 普通聊天机器人(Chatbot) AI Agent(智能体)
工作方式 一问一答 自主规划 + 多步执行
能否调用工具 一般不能 可以(计算器、搜索、API 等)
记忆能力 只有当前对话 短期 + 长期记忆
目标 回答用户问题 完成用户给的任务
典型例子 客服机器人 AutoGPT、Manus、各种 Agent 框架

一句话:Chatbot 是“嘴”,Agent 是“嘴 + 手 + 脚 + 大脑”。

二. 为什么要先学 LLM

Agent 的“大脑”是 LLM(Large Language Model,大语言模型),比如 GPT、DeepSeek、Claude、Qwen 等。

LLM 本质上是一个“超级文本接龙器”:给它一段文字,它预测下一个最可能的词,不断重复,就生成了一段完整的回复。它能:

  • 理解和生成自然语言;
  • 做推理(比如数学题、逻辑题);
  • 按你的要求输出特定格式(JSON、Markdown、代码);
  • 扮演角色、遵循规则(这就是后面要学的 Prompt)。

但 LLM 有两大天生缺陷:

  1. 知识截止:训练数据有截止时间,不知道最新新闻;
  2. 不会“动手”:只能输出文字,不能真的查天气、发邮件、操作数据库。

Agent 存在的意义,就是用 代码 + 工具 + 记忆 把这两个缺陷补上。

三. Agent 的核心四要素

几乎所有 Agent 都可以拆成下面几部分(记住这张图,整个系列都在讲它):

1
2
3
4
5
6
7
8
9
10
11
12
13
        ┌──────────────────────────────┐
│ 用户任务 │
└──────────────┬───────────────┘

┌──────────────────────────────────────────┐
│ LLM(大脑) │
│ 读 Prompt → 思考 → 决定下一步 │
└──────┬──────────────┬──────────────┬─────┘
│ │ │
┌──────▼─────┐ ┌──────▼─────┐ ┌──────▼──────┐
│ 记忆 Memory │ │ 工具 Tool │ │ 规划 Planning│
│ 历史/知识库 │ │ 计算/搜索/API│ │ 拆解子任务 │
└────────────┘ └────────────┘ └─────────────┘
要素 英文 作用 类比 对应本系列文章
提示词 Prompt 告诉 Agent 怎么思考、什么身份、什么规则 员工手册 第一篇
记忆 Memory 记住上下文、用户偏好、历史知识 笔记本 / 数据库 第二篇
工具 Tool 让 Agent 真正“做事” 手和脚 第三篇
检索 RAG 给 Agent 注入外部知识 图书馆 第四篇
技能 Skill 把常用能力打包复用 岗位 SOP 第五篇
协议 MCP 统一 Agent 与外部系统的连接标准 通用插座 第六篇

四. 第一个最小 Agent(能跑!)

4.1 准备工作

  1. 安装 Python 3.10+;
  2. 安装依赖:pip install openai requests
  3. 准备一个大模型 API Key(OpenAI / DeepSeek / 通义等任何兼容 OpenAI 格式的都可以),并设置环境变量:
1
export OPENAI_API_KEY="sk-你的密钥"

4.2 先跑通一次普通对话

1
2
3
4
5
6
7
8
9
10
11
12
13
from openai import OpenAI

client = OpenAI() # 会自动读取 OPENAI_API_KEY 环境变量

resp = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "你是一个乐于助人的助手。"},
{"role": "user", "content": "你好,请用一句话介绍你自己。"},
],
)

print(resp.choices[0].message.content)

如果用 DeepSeek 等模型,把上面改成 client = OpenAI(base_url="https://api.deepseek.com/v1") 并把 model 换成 deepseek-chat 即可,接口完全兼容。

4.3 让它“动手”:最小 Agent 循环

下面这个例子演示 Agent 的核心循环(ReAct:思考 → 行动 → 观察 → 再思考):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import json
from openai import OpenAI

client = OpenAI()

def calculator(expr: str) -> str:
"""一个最简单的工具:计算数学表达式"""
return str(eval(expr)) # 演示用,生产环境不要用 eval!

TOOLS = [
{
"type": "function",
"function": {
"name": "calculator",
"description": "计算数学表达式,例如 1+2*3",
"parameters": {
"type": "object",
"properties": {
"expr": {"type": "string", "description": "要计算的数学表达式"},
},
"required": ["expr"],
},
},
},
]

messages = [
{"role": "system", "content": "你是一个会使用工具的助手。需要计算时调用 calculator。"},
{"role": "user", "content": "请帮我计算 (12 + 8) * 5 等于多少?"},
]

# 最多循环 5 轮,防止死循环
for _ in range(5):
resp = client.chat.completions.create(
model="gpt-4o-mini",
messages=messages,
tools=TOOLS,
)
msg = resp.choices[0].message

# 1. 模型没有要求调用工具:直接输出最终答案,结束
if not msg.tool_calls:
print("最终回答:", msg.content)
break

# 2. 模型要求调用工具:把请求追加进对话
messages.append(msg)

# 3. 逐个执行工具,并把结果返回给模型
for call in msg.tool_calls:
if call.function.name == "calculator":
args = json.loads(call.function.arguments)
result = calculator(args["expr"])
else:
result = "未知工具"

messages.append({
"role": "tool",
"tool_call_id": call.id,
"content": result,
})
print(f"[工具] calculator({args['expr']}) = {result}")

运行后你会看到类似输出:

1
2
[工具] calculator((12 + 8) * 5) = 100
最终回答: (12 + 8) * 5 = 100

这个 30 行的程序就是一个“微型 Agent”:它已经具备了思考(LLM)+ 工具(calculator)+ 循环(for),只差记忆和更多工具——后面几篇文章会一步步加上。

五. Agent 的典型工作流程

一个成熟的 Agent 通常长这样:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
用户任务


规划器:把大任务拆成小步骤(可以用 LLM 做)


┌─────────────────────────────────┐
│ 执行循环(可以跑很多轮) │
│ LLM 思考 → 决定行动 │
│ → 调用工具 / 查记忆 / 检索知识 │
│ → 把结果喂回 LLM → 继续 │
└─────────────────────────────────┘


输出最终结果

六. 本系列学习路线图

给初学者一条清晰的路线,按顺序学效果最好:

主题 你要学会什么
入门(本文) Agent 是什么,跑通最小 Agent
Prompt 工程 让 LLM 听话:角色、示例、思维链、JSON 输出
Memory 记忆 上下文窗口、短期/长期记忆、向量记忆
Tool 工具 Function Calling:给 Agent 装上手和脚
RAG 检索增强 让 Agent 拥有“图书馆”:知识检索
Skill 技能 把提示词+流程+资源打包成可复用技能
MCP 协议 用统一标准连接一切外部系统
综合实战 把前六篇整合成一个完整 Agent 项目

七. 小结与作业

小结

  1. Agent = LLM(大脑)+ 规划 + 记忆 + 工具 + 行动循环;
  2. 普通聊天只会“说”,Agent 会“做”;
  3. LLM 知识会过时、不会调用外部系统,Agent 用工具和记忆补齐;
  4. 最小 Agent 只需要“消息列表 + tools 参数 + 执行循环”三件事。

作业(建议动手)

  1. 把 4.2 的代码跑通,换成你手头有的任意大模型 API;
  2. 给 calculator 工具增加一个 get_time 工具(返回当前时间),让 Agent 回答“现在几点”;
  3. 想一想:如果 Agent 一直调用同一个工具停不下来,应该怎么防止?(提示:循环次数上限)

下一篇我们学习最基础也最重要的 Prompt 工程,让 LLM 真正“听话”。