01 什么是 Agent

什么是 Agent

从一句 80 年代的强化学习定义,到今天能完成复杂任务的自然语言助手——祛魅,从看清它的内核开始。

本章聚焦  →  Agent 到底是什么 · 从强化学习定义收敛到一道可操作的公式

1.1 Agent 的定义

Agent 的概念在这两年从模糊,到泛滥,到收束的整个过程中逐渐清晰,它继承并拓展了其在上世纪 80 年代强化学习浪潮伊始中被确定的基础定义:

Agent 是一个在未知环境中,通过试错来实现最大化累计奖励的决策者和学习者. from Richard Sutton & Andrew Barto
定义对照

这个定义放到今天的 Agent 上,只需做一层对应:

“未知环境”用户的问题、工具返回的结果、以及文件系统当前的状态
“累计奖励”把用户交代的任务完成好
“试错”一轮一轮地思考、行动,再根据反馈决定下一步(也就是后面要讲的 ReAct)

强化学习里“在环境中通过试错来最大化回报的学习者”,在今天并没有改变,只是环境换成了对话与工具,决策者换成了 LLM,试错换成了多轮循环。

在前序课程学习中我们应当已经了解了后面这一句话的含义,我们今天将中间阐述 Agent 在“环境”中的行为模式与行为准则。

在今天,Agent 特指能够完成复杂任务的自然语言助手,而下面这两行 python 伪代码源自 Anthropic 的内部技术分享,它揭示了 Agent 的核心原理:

env = Environment()
tools = Tools(env)
system_prompt = "Goals, constrains, and how to act"

while True:
    action = llm.run(system_prompt + env.state)
    env.state = tools.run(action)
图 1 · Agent 的基本循环
观察 决策·行动 改变环境 环境env.state LLM 决策system_prompt 工具执行tools.run() 任务完成 → 回复用户
四个要件各归其位:环境=流动的 state目标与约束=喂给 LLM 的 system_prompt工具=那条改变环境的边;循环=整个环形本身。

短短几行伪代码,包含了一个 Agent 的全部要件:

环境

env

agent 能观察到的外部状态

工具

tools

agent 能改变环境的手段

目标与约束

system_prompt

告诉它要去哪里、不能做什么

循环

while True

观察、决策、行动,然后再观察

同时,它也直观地揭示了 Agent 的几个基本行为特征:

1.2 Agent 与其它概念的比较

以上述的三个基本特征作为参考维度,我们将 Agent 与在大语言模型领域常见的几种易混淆的概念进行对比,做成了一张表格:

类型是否多步是否调用工具自主动机一句话定义
chatbot按预设策略回答问题
RAG单步 / 固定若干步仅检索通过检索驱动的 LLM 问答
Workflow多步多种工具否(路径写死)预设流程图编排的 LLM 流程
RPA多步UI 操作否(坐标写死)机械的自动化脚本
Agent多步多种工具是(LLM 自裁)LLM 在循环里自主决策、自主用工具

1.3 Agent 的技术定义

最后我们直接抛出当前业内对 Agent 的理解共识:

Agent=LLM+ReAct+Harness
会话能力 · 连续干活的范式 · 工程脚手架

我们将通过以下章节来完整的解读并演示以上“公式”的含义