一、什么是 AI Agent
AI Agent(人工智能智能体)是一个能够自主感知环境、进行推理决策并执行行动的智能系统。与传统的大语言模型问答模式不同,Agent 不只是"生成回答",而是能够主动拆解目标、调用工具、维护记忆、持续迭代直至完成任务。
用户输入 → Agent 感知 → 推理规划 → 工具调用 → 结果反馈 → 循环迭代 → 最终输出1.1 Agent 与 LLM 的区别
| 维度 | 传统 LLM | AI Agent |
|---|---|---|
| 交互模式 | 一问一答 | 多轮自主推理 |
| 工具使用 | 不支持 | 可调用 API、数据库、浏览器等 |
| 记忆能力 | 上下文窗口有限 | 短期 + 长期记忆 |
| 规划能力 | 无 | 可拆解任务、制定计划 |
| 自主性 | 被动响应 | 主动推进目标 |
1.2 Agent 的核心三要素
根据 OpenAI 的定义,一个完整的 Agent 系统由三个核心组件构成:
- 感知(Perception) — 接收并理解环境信息(用户输入、传感器数据、系统状态)
- 推理(Reasoning) — 分析信息、制定计划、做出决策(LLM 驱动)
- 行动(Action) — 执行具体操作并观察结果(工具调用、API 请求)
这三者构成一个闭环:感知 → 推理 → 行动 → 感知反馈 → 迭代调整。
二、Agent 系统架构
2.1 整体架构图
┌─────────────────────────────────────────────┐
│ Agent 运行时 │
│ │
│ ┌────────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Profile │ │ Memory │ │ Planning │ │
│ │ (角色/ │ │ (记忆) │ │ (规划) │ │
│ │ 目标) │ │ │ │ │ │
│ └────────────┘ └──────────┘ └──────────┘ │
│ │
│ ┌──────────────────────────────────────┐ │
│ │ LLM 核心推理引擎 │ │
│ │ (GPT-4 / Claude / 本地模型) │ │
│ └──────────────────────────────────────┘ │
│ │
│ ┌──────────────────────────────────────┐ │
│ │ 工具集 (Tools) │ │
│ │ ┌──────┐ ┌──────┐ ┌──────┐ ┌────┐ │ │
│ │ │ 搜索 │ │ 计算 │ │ 代码 │ │ API│ │ │
│ │ └──────┘ └──────┘ └──────┘ └────┘ │ │
│ └──────────────────────────────────────┘ │
└─────────────────────────────────────────────┘2.2 Profile(角色设定)
Profile 定义了 Agent 的"人格"和"目标",通过 System Prompt 实现:
system_prompt = """
你是一个代码审查助手。你的职责是:
1. 审查提交的代码,找出潜在问题
2. 提供优化建议
3. 确保代码符合团队规范
每次审查需要调用 analyze_code 工具。
如果发现安全问题,立即调用 report_security_issue。
"""一个好的 Profile 应该包含:
- 角色身份:你是谁
- 目标描述:你要完成什么任务
- 行为约束:什么能做、什么不能做
- 工具说明:有哪些工具可用、何时使用
2.3 Memory(记忆系统)
记忆是 Agent 区分于无状态 LLM 的关键能力,将在本系列第 2 篇详细讲解。
- 短期记忆:当前对话上下文、任务状态
- 长期记忆:向量数据库存储的关键经验
2.4 Planning(规划能力)
Agent 的规划能力将在本系列第 4 篇详细讲解,包括:
- 任务分解:CoT、ReAct、Plan-and-Solve
- 自我反思:执行结果评估与策略调整
三、Agent 的工作流程
一个典型的 Agent 运行周期如下:
① 接收用户任务
↓
② 加载 Profile 和记忆
↓
③ LLM 推理 → 决定下一步行动
↓
④ 如果需要工具 → 调用工具 → 获取结果
↓
⑤ LLM 评估结果 → 判断任务是否完成
├── 完成 → 输出最终结果
└── 未完成 → 返回步骤③3.1 完整运行示例
import time
from typing import List, Dict
class Agent:
"""通用 Agent 运行时"""
def __init__(self, llm, tools: List, profile: str):
self.llm = llm # LLM 引擎
self.tools = {t.name: t for t in tools} # 工具注册表
self.profile = profile # 角色设定
self.memory = [] # 短期记忆
self.max_iterations = 10
def run(self, task: str) -> str:
"""执行任务"""
messages = [
{"role": "system", "content": self.profile},
{"role": "user", "content": task}
]
for i in range(self.max_iterations):
# 步骤 1: LLM 推理
response = self.llm.chat(messages)
messages.append(response)
# 步骤 2: 检查是否完成
if response.finish_reason == "stop":
return response.content
# 步骤 3: 执行工具调用
if response.finish_reason == "tool_calls":
for tool_call in response.tool_calls:
tool_name = tool_call.function.name
tool_args = tool_call.function.arguments
if tool_name in self.tools:
result = self.tools[tool_name].run(**tool_args)
messages.append({
"role": "tool",
"tool_call_id": tool_call.id,
"content": str(result)
})
self.memory.append(messages[-2:])
return "任务未能在最大迭代次数内完成"四、Agent 的分类
4.1 按复杂度分类
| 类型 | 特点 | 示例 |
|---|---|---|
| 简单反射 Agent | 基于固定规则响应 | 客服机器人 |
| 基于模型的 Agent | 维护环境模型 | 游戏 AI |
| 目标驱动 Agent | 有明确目标并规划 | 任务助手 |
| 效用驱动 Agent | 在多个方案中选择最优 | 交易系统 |
4.2 按应用场景分类
- 单 Agent 工具助手:一个 Agent 使用多种工具完成任务
- 多 Agent 协作系统:多个 Agent 分工协作(系列第 6 篇详解)
- 自主研究 Agent:能进行多轮搜索、阅读、总结
五、总结
AI Agent 是 LLM 从"聊天机器人"到"自主智能体"的关键跃迁。理解 Agent 的核心三要素(感知、推理、行动)和基本架构(Profile、Memory、Planning、Tools)是开发一切 Agent 应用的基础。
本系列后续文章将逐一深入每个组件:
| 篇次 | 标题 | 内容 |
|---|---|---|
| 第 2 篇 | Agent 记忆系统深度解析 | 短期/长期记忆、向量数据库 |
| 第 3 篇 | 工具调用与 Function Calling 实战 | 工具定义、调用流程 |
| 第 4 篇 | Agent 规划与推理机制 | CoT、ReAct、Plan-and-Solve |
| 第 5 篇 | 主流 Agent 框架对比与选型 | LangChain、AutoGen、CrewAI |
| 第 6 篇 | 多 Agent 协作与生产部署 | 协作模式、安全、监控 |