
什么是 Agent?从概念到应用全面解读
摘要:Agent(智能代理/智能体)是人工智能领域最核心的概念之一。本文将系统性地解读 Agent 的定义、核心特征、分类体系、技术架构以及实际应用场景,帮助读者建立对 Agent 的全面认知。
一、Agent 的定义
"Agent"一词源自拉丁语 agere,意为"去做"或"行动"。在人工智能领域,Agent 指的是能够通过感知器(sensors)感知环境,并通过执行器(actuators)对环境施加影响的实体。
这是由人工智能经典教材 Artificial Intelligence: A Modern Approach(Russell & Norvig)给出的标准定义。用更通俗的话说:Agent 是一个能够自主感知环境、做出决策并采取行动的系统。
1.1 Agent 的数学定义
一个 Agent 可以用函数来描述:
f: P* → A其中 P* 表示所有可能感知序列的集合,A 表示所有可能行动的集合。Agent 根据其历史感知序列,选择下一个要执行的动作。这个函数 f 就是 Agent 的"行为策略"。
1.2 Agent 与程序的区别
| 维度 | 传统程序 | Agent |
|---|---|---|
| 自主性 | 被动等待指令 | 主动发起行动 |
| 环境感知 | 有限的输入参数 | 持续感知环境变化 |
| 决策能力 | 固定规则分支 | 基于目标和上下文推理 |
| 适应性 | 硬编码逻辑 | 可学习和调整 |
| 目标导向 | 执行特定功能 | 围绕目标自主规划 |
二、Agent 的核心特征
学术界对 Agent 的核心特征有着较为一致的共识,通常总结为以下四个方面:
2.1 自主性(Autonomy)
Agent 能够在没有人类或其他系统直接干预的情况下运行,并对自身的行为和内部状态拥有控制权。自主性是 Agent 区别于普通程序的最根本特征。
一个Agent应当在没有人类直接介入的情况下,能够控制自身的行为和内部状态。——Wooldridge & Jennings, 1995
2.2 反应性(Reactivity)
Agent 能够感知其所处环境的变化,并及时做出响应。这意味着 Agent 不是简单地执行一个预先规划好的动作序列,而是能够根据环境的实时反馈调整自己的行为。
2.3 主动性(Pro-activeness)
Agent 不仅对环境变化做出反应,还能够主动采取行动以实现其目标。这种主动行为使 Agent 能够展示出目标导向的、有意图的行为模式。
2.4 社交能力(Social Ability)
Agent 能够通过某种通信语言与其他 Agent(包括人类)进行交互和协作。多 Agent 系统(MAS)正是基于这一特征构建的。
2.5 其他重要特征
- 移动性(Mobility):能够在不同系统或网络节点之间迁移
- 理性(Rationality):Agent 总是选择能够最有效地达成目标的行动
- 学习能力(Learning):能够从经验中改进自身性能
- 持续性(Temporal Continuity):Agent 是持续运行的进程,而非一次性任务
三、Agent 的五种类型
Russell & Norvig 根据 Agent 的内部智能程度,将 Agent 分为五种类型,形成了一个从简单到复杂的谱系:
3.1 简单反射型 Agent(Simple Reflex Agent)
这种 Agent 仅根据当前的感知输入做出决策,不考虑历史感知信息。它的行为由一组"条件-动作"规则驱动。
┌─────────────┐
│ 环境感知 │
└──────┬──────┘
↓
┌─────────────┐
│ 条件-动作规则 │
└──────┬──────┘
↓
┌─────────────┐
│ 执行动作 │
└─────────────┘示例:恒温器——当温度低于阈值时开启加热器。
局限性:需要环境完全可观测才能正常工作,无法处理部分可观测环境。
3.2 基于模型的反射型 Agent(Model-based Reflex Agent)
在简单反射型 Agent 的基础上,增加了对环境的内部模型,能够跟踪环境中不可直接观测的部分。
┌─────────────┐
│ 环境感知 │
└──────┬──────┘
↓
┌─────────────┐
│ 内部模型 │ ← 维护环境状态
└──────┬──────┘
↓
┌─────────────┐
│ 条件-动作规则 │
└──────┬──────┘
↓
┌─────────────┐
│ 执行动作 │
└─────────────┘示例:自动驾驶汽车中的障碍物追踪——即使障碍物暂时被遮挡,也能根据模型推断其位置。
3.3 目标驱动的 Agent(Goal-based Agent)
这类 Agent 不仅依赖当前感知和内部模型,还拥有明确的目标信息。它会选择能够达成目标的行动路线,具有规划和搜索能力。
def goal_based_agent(percept, goal, world_model):
state = world_model.update_state(percept)
actions = world_model.possible_actions(state)
best_action = plan_to_achieve_goal(actions, goal, world_model)
return best_action示例:导航机器人——目标是从 A 点到达 B 点,它会规划路径并沿途调整。
3.4 效用驱动的 Agent(Utility-based Agent)
当存在多个可行方案都能达成目标时,效用驱动的 Agent 会使用"效用函数"来衡量每个方案的好坏,选择效用最大化的行动。
效用 = 衡量行动结果"有多好"的量化指标
Agent 的目标:最大化期望效用示例:出租车调度系统——多个空闲车辆可以服务多个乘客请求,系统会计算每种调度方案的总体效用(等待时间最短、行驶距离最优),选择最佳方案。
3.5 学习型 Agent(Learning Agent)
这是最复杂的 Agent 类型,它能够在运行过程中学习和改进。学习型 Agent 通常包含四个组件:
| 组件 | 功能 |
|---|---|
| 学习元素 | 从经验中改进知识 |
| 知识元素 | 存储 Agent 对世界的认知 |
| 执行元素 | 基于知识做出决策和行动 |
| 反馈元素 | 评估行动效果并提供反馈信号 |
示例:推荐系统——根据用户的点击、购买等行为反馈,不断优化推荐策略。
四、现代 AI Agent 的技术架构
随着大语言模型(LLM)的崛起,Agent 的概念被赋予了全新的内涵。现代 AI Agent(常称为 LLM Agent 或 AI Agent)以 LLM 为核心推理引擎,构建了更加强大的智能系统。
4.1 LLM Agent 架构
┌─────────────────────────┐
│ 用户 / 环境 │
└───────────┬─────────────┘
│ 感知输入
↓
┌─────────────────────────────────────┐
│ 感知模块 │
│ (多模态输入:文本、图像、代码等) │
└──────────────────┬──────────────────┘
↓
┌─────────────────────────────────────┐
│ LLM 推理引擎(大脑) │
│ ┌───────┐ ┌──────┐ ┌────────┐ │
│ │ 规划 │ │ 推理 │ │ 决策 │ │
│ └───────┘ └──────┘ └────────┘ │
└──────────────────┬──────────────────┘
↓
┌─────────────────────────────────────┐
│ 工具系统 │
│ ┌──────┐ ┌──────┐ ┌──────┐ ┌────┐ │
│ │ API │ │ 代码 │ │ 搜索 │ │文件│ │
│ └──────┘ └──────┘ └──────┘ └────┘ │
└──────────────────┬──────────────────┘
↓
┌─────────────────────────┐
│ 行动输出 │
└─────────────────────────┘4.2 记忆系统
现代 AI Agent 拥有复杂的记忆架构,通常分为三层:
- 短期记忆(上下文窗口):当前对话或任务中的临时信息
- 长期记忆(外部存储):持久化的知识库、向量数据库
- 工作记忆:当前处理的任务状态和中间结果
class AgentMemory:
def __init__(self):
self.short_term = []
self.long_term = VectorDB()
self.working = {}
def add_short_term(self, item):
self.short_term.append(item)
if len(self.short_term) > 100:
self.consolidate()4.3 规划与推理
Agent 的规划能力是实现复杂任务的关键。常用的规划策略包括:
- ReAct(推理+行动):交替进行推理和行动,让每一步推理指导下一步行动
- Chain-of-Thought(思维链):将复杂问题分解为一系列推理步骤
- Plan-and-Execute(规划并执行):先规划完整任务序列,再逐步执行
- Tree-of-Thoughts(思维树):同时探索多条推理路径,选择最优解
4.4 工具使用
Agent 通过调用外部工具扩展自身能力:
class Tool:
def __init__(self, name: str, description: str):
self.name = name
self.description = description
def execute(self, **kwargs) -> Any:
raise NotImplementedError
class CodeExecutor(Tool): ...
class WebSearch(Tool): ...
class FileOperator(Tool): ...五、Agent 的主流框架
以下是在 AI Agent 开发中广泛使用的几个主流框架:
| 框架 | 特点 | 适用场景 |
|---|---|---|
| LangChain/LangGraph | 模块化设计,丰富的工具生态 | 通用 Agent 开发 |
| AutoGPT | 自主规划与执行,长期目标驱动 | 自动化任务 |
| CrewAI | 多 Agent 协作,角色分工 | 团队协作场景 |
| AutoGen (Microsoft) | 多 Agent 对话,灵活角色定义 | 研究原型开发 |
| Semantic Kernel | Microsoft 生态,.NET/ Python | 企业级应用 |
| Dify | 可视化编排,低代码 | 快速原型搭建 |
5.1 一个简单的 Agent 示例
from openai import OpenAI
import json
client = OpenAI()
def get_weather(city: str) -> str:
return f"{city}:晴,25°C"
def calculate(expr: str) -> str:
try:
return str(eval(expr))
except:
return "计算失败"
tools = [
{"type": "function", "function": {
"name": "get_weather",
"parameters": {"type": "object", "properties": {
"city": {"type": "string"}
}}
}},
{"type": "function", "function": {
"name": "calculate",
"parameters": {"type": "object", "properties": {
"expr": {"type": "string"}
}}
}}
]
def agent_loop(user_input: str, max_steps: int = 5):
messages = [{"role": "user", "content": user_input}]
available_functions = {
"get_weather": get_weather,
"calculate": calculate
}
for step in range(max_steps):
response = client.chat.completions.create(
model="gpt-4",
messages=messages,
tools=tools,
tool_choice="auto"
)
message = response.choices[0].message
messages.append(message)
if not message.tool_calls:
return message.content
for tool_call in message.tool_calls:
func = available_functions[tool_call.function.name]
args = json.loads(tool_call.function.arguments)
result = func(**args)
messages.append({
"role": "tool",
"tool_call_id": tool_call.id,
"content": result
})
return "达到最大步数"
result = agent_loop("北京今天天气怎么样?顺便算一下 256*512")
print(result)六、Agent 的应用场景
6.1 个人智能助手
Agent 可以作为个人助手,帮助用户完成日程管理、信息检索、邮件处理、文档撰写等日常任务。与传统聊天机器人不同,Agent 助手具备主动提醒和任务规划能力。
6.2 软件工程
在软件开发领域,Agent 正在改变编程方式:
- 代码生成与审查:基于需求生成完整代码并提出改进建议
- 自动化测试:自主编写和执行测试用例
- Bug 修复:定位问题根因并生成修复方案
- 文档编写:根据代码自动生成文档
6.3 数据分析
Agent 可以像一位数据分析师那样工作:理解数据、提出分析问题、编写 SQL/Python 代码、生成可视化报告,并根据结果调整分析方向。
6.4 自动化工作流
企业可以将复杂业务流程封装为 Agent 工作流:
客户请求 → 信息提取 Agent → 分类 Agent → 处理 Agent → 审核 Agent → 反馈 Agent6.5 多 Agent 协作
多个 Agent 可以组成团队,各司其职:
research_agent = Agent(role="研究员", skill="搜索和整理信息")
writer_agent = Agent(role="写作者", skill="撰写和润色内容")
reviewer_agent = Agent(role="审核员", skill="检查质量和一致性")
result = crew.kickoff(
inputs={"topic": "AI Agent 的发展历程"},
process="sequential"
)七、Agent 的挑战与未来发展
7.1 当前挑战
| 挑战 | 说明 | 应对方向 |
|---|---|---|
| 可靠性 | Agent 可能产生错误决策或幻觉 | 验证机制、人类反馈 |
| 安全性 | 自主行动带来不可控风险 | 沙箱隔离、权限控制 |
| 成本 | 多次 LLM 调用导致较高消耗 | 缓存策略、模型蒸馏 |
| 延迟 | 多步推理带来响应延迟 | 流式处理、并行执行 |
| 评估 | Agent 行为的自动评估困难 | 基准测试、模拟环境 |
7.2 未来趋势
- 多模态 Agent:融合视觉、听觉、触觉等多种感知通道
- 自进化 Agent:能够自主改进自身算法和知识结构
- Agent 生态:Agent 之间的标准化通信协议和经济系统
- 具身智能 Agent:与物理世界交互的机器人 Agent
- 通用 Agent:向 Artificial General Intelligence(AGI)迈进
八、总结
Agent 是人工智能从"被动工具"走向"主动伙伴"的核心概念。它的本质是一个能够感知环境、自主决策、采取行动并持续学习的系统。
从经典的 Russell & Norvig 五类 Agent,到以 LLM 为核心的现代 AI Agent,这一概念在不断演进,但其核心——自主性、反应性、主动性、社交能力——始终未变。
理解 Agent 的概念,不仅是理解 AI 的技术基础,更是理解 AI 未来发展方向的关键。
关键要点回顾
- Agent = 感知 + 决策 + 行动:这是 Agent 最本质的三要素
- 从简单到复杂:反射型 → 模型型 → 目标型 → 效用型 → 学习型
- LLM Agent 架构:LLM(大脑)+ 记忆 + 规划 + 工具 + 感知
- 多 Agent 协作:多个专用 Agent 比一个通用 Agent 更有效
- 挑战与机遇并存:可靠性、安全性、成本是当前的主要瓶颈
参考资料
- Russell, S., & Norvig, P. (2020). Artificial Intelligence: A Modern Approach (4th ed.). Pearson.
- Wooldridge, M., & Jennings, N. R. (1995). Intelligent agents: Theory and practice. The Knowledge Engineering Review.
- Yao, S., et al. (2023). ReAct: Synergizing Reasoning and Acting in Language Models. ICLR 2023.
- Wei, J., et al. (2022). Chain-of-Thought Prompting Elicits Reasoning in Large Language Models. NeurIPS 2022.
- LangChain 官方文档: https://python.langchain.com
- OpenAI Function Calling: https://platform.openai.com/docs/guides/function-calling
本文旨在帮助读者全面理解 Agent 这一人工智能核心概念。



