智能体课程文档
什么是 Agent?
并获得增强的文档体验
开始使用
什么是 Agent?

学完本节后,你将对 Agent 及其在人工智能中的各种应用有充分的理解。
为了解释什么是 Agent,让我们先从一个类比开始。
大局:Agent Alfred
认识一下 Alfred。Alfred 是一个 Agent。

想象一下 Alfred 收到一个指令,例如:“Alfred,请给我一杯咖啡。”

因为 Alfred 理解自然语言,他很快就明白了我们的请求。
在执行订单之前,Alfred 会进行 推理和规划,找出他需要执行的步骤和工具:
- 去厨房
- 使用咖啡机
- 冲泡咖啡
- 把咖啡带回来

一旦他有了计划,他 就必须行动。为了执行他的计划,他可以使用他所知道的工具列表中的工具。
在这种情况下,为了制作咖啡,他使用咖啡机。他启动咖啡机来冲泡咖啡。

最后,Alfred 把刚冲好的咖啡端给我们。

这就是 Agent:一个 能够推理、规划并与其环境交互的 AI 模型。
我们称之为 Agent,因为它具有“能动性”(agency),即它具有与环境交互的能力。

我们来更正式地定义
现在你已经有了大局观,下面是一个更精确的定义
Agent 是一个利用 AI 模型与环境交互以实现用户定义目标的系统。它结合了推理、规划和行动的执行(通常通过外部工具)来完成任务。
将 Agent 视为包含两个主要部分:
- 大脑(AI 模型)
这里是所有思考发生的地方。AI 模型 处理推理和规划。它根据情况 决定采取哪些行动。
- 身体(能力和工具)
这部分代表 Agent 能够执行的一切。
可能行动的范围 取决于 Agent 配备了什么。例如,因为人类没有翅膀,他们不能执行“飞”这个 行动,但他们可以执行“走”、“跑”、“跳”、“抓”等 行动。
“能动性”的范围
根据这个定义,Agent 存在于一个能动性不断增加的连续光谱上
代理能力等级 | 描述 | 名称 | 示例模式 |
---|---|---|---|
☆☆☆ | Agent 输出对程序流程没有影响 | 简单处理器 | process_llm_output(llm_response) |
★☆☆ | Agent 输出决定基本控制流 | 路由器 | if llm_decision(): path_a() else: path_b() |
★★☆ | Agent 输出决定函数执行 | 工具调用者 | run_function(llm_chosen_tool, llm_chosen_args) |
★★★ | Agent 输出控制迭代和程序继续 | 多步智能体 | while llm_should_continue(): execute_next_step() |
★★★ | 一个代理工作流可以启动另一个代理工作流 | 多智能体 | if llm_trigger(): execute_agent() |
表格来自 smolagents 概念指南。
我们使用哪种类型的 AI 模型来构建 Agent?
Agent 中最常见的 AI 模型是 LLM(大型语言模型),它以 文本 作为输入并输出 文本。
著名的例子有 OpenAI 的 GPT4、Meta 的 Llama、Google 的 Gemini 等。这些模型在大量的文本上进行训练,并且能够很好地泛化。我们将在下一节中了解更多关于 LLM 的信息。
AI 如何对其环境采取行动?
LLM 是很棒的模型,但 它们只能生成文本。
然而,如果你要求 HuggingChat 或 ChatGPT 等知名聊天应用程序生成图像,它们可以做到!这怎么可能呢?
答案是,HuggingChat、ChatGPT 和类似应用程序的开发者实现了额外的功能(称为 工具),LLM 可以使用这些工具来创建图像。

我们将在 工具 部分了解更多关于工具的信息。
Agent 可以执行哪些类型的任务?
Agent 可以通过 工具 执行我们实现的任何任务来完成 行动。
例如,如果我编写一个 Agent 作为我在电脑上的个人助理(像 Siri),我要求它“给我的经理发送一封邮件,要求推迟今天的会议”,我可以给它一些发送邮件的代码。这将是一个 Agent 可以在需要发送邮件时使用的新工具。我们可以用 Python 编写它
def send_message_to(recipient, message):
"""Useful to send an e-mail message to a recipient"""
...
正如我们将看到的,LLM 将在需要时生成代码来运行该工具,从而完成所需的任务。
send_message_to("Manager", "Can we postpone today's meeting?")
工具的设计非常重要,对 Agent 的质量有很大影响。有些任务需要非常特定的工具来制作,而另一些任务可能使用“网络搜索”等通用工具来解决。
请注意,行动与工具不同。例如,一个行动可能涉及使用多个工具才能完成。
允许 Agent 与其环境交互 实现了公司和个人的实际应用。
示例 1:个人虚拟助理
Siri、Alexa 或 Google Assistant 等虚拟助理在代表用户与数字环境交互时,就充当 Agent 的角色。
它们接收用户查询,分析上下文,从数据库中检索信息,并提供响应或启动操作(如设置提醒、发送消息或控制智能设备)。
示例 2:客户服务聊天机器人
许多公司部署聊天机器人作为 Agent,以自然语言与客户互动。
这些 Agent 可以回答问题,引导用户完成故障排除步骤,在内部数据库中打开问题,甚至完成交易。
它们的预定义目标可能包括提高用户满意度、缩短等待时间或提高销售转化率。通过直接与客户互动、从对话中学习并随着时间的推移调整其响应,它们展示了 Agent 在行动中的核心原则。
示例 3:视频游戏中的 AI 非玩家角色
由 LLM 提供支持的 AI Agent 可以使非玩家角色(NPC)更具动态性和不可预测性。
它们不再遵循僵化的行为树,而是可以 根据上下文做出响应,适应玩家互动,并生成更细致的对话。这种灵活性有助于创建更逼真、更引人入胜的角色,这些角色随着玩家的行动而演变。
总而言之,Agent 是一个使用 AI 模型(通常是 LLM)作为其核心推理引擎的系统,用于:
理解自然语言: 以有意义的方式解释和响应人类指令。
推理和规划: 分析信息,做出决策,并制定策略来解决问题。
与环境互动: 收集信息,采取行动,并观察这些行动的结果。
现在你对 Agent 有了扎实的理解,让我们通过一个简短的、不计分的测验来巩固你的理解。之后,我们将深入探讨“Agent 的大脑”:LLM。
< > 在 GitHub 上更新