Agents Course documentation
什么是智能体?
什么是智能体?

在本节结束时,你将对智能体的概念及其在人工智能中的各种应用感到熟悉。
为了解释什么是智能体,我们先从一个类比开始。
整体概览:智能体 Alfred
来见见 Alfred。Alfred 是一个智能体。

想象 Alfred 收到一个指令,比如:“Alfred,我想来杯咖啡。”

因为 Alfred 理解自然语言,他很快就明白了我们的请求。
在完成任务之前,Alfred 会进行推理和规划,弄清楚他需要的步骤和工具:
- 去厨房
- 使用咖啡机
- 煮咖啡
- 把咖啡拿回来

一旦有了计划,他就必须行动。为了执行计划,他可以使用他所知道的工具列表中的工具。
在这个例子中,为了煮咖啡,他使用了咖啡机。他启动咖啡机来煮咖啡。

最后,Alfred 把刚煮好的咖啡拿给我们。

这就是智能体:一个能够进行推理、规划和与环境交互的人工智能模型。
我们称之为智能体,因为它具有能动性,即与环境交互的能力。

更正式的定义
现在你已经了解了整体情况,以下是一个更精确的定义:
智能体是一个系统,它利用人工智能模型与环境交互,以实现用户定义的目标。它结合推理、规划和动作执行(通常通过外部工具)来完成任务。
可以把智能体想象成有两个主要部分:
- 大脑(AI 模型)
这是所有思考发生的地方。AI 模型负责推理和规划。它根据情况决定采取哪些行动。
- 身体(能力和工具)
这部分代表了智能体所能做的一切。
可能行动的范围取决于智能体被配备了什么。例如,因为人类没有翅膀,所以他们不能执行“飞”这个行动,但他们可以执行“走”、“跑”、“跳”、“抓”等行动。
我们为智能体使用什么类型的 AI 模型?
智能体中最常见的 AI 模型是 LLM(大型语言模型),它接受文本作为输入,并输出文本。
知名的例子包括OpenAI 的 GPT4、Meta 的 LLama、Google 的 Gemini 等。这些模型已经经过大量文本的训练,并且具有很好的泛化能力。我们将在下一节中更深入地了解 LLM。
AI 如何在环境中采取行动?
LLM 是令人惊叹的模型,但它们只能生成文本。
然而,如果你让像 HuggingChat 或 ChatGPT 这样的知名聊天应用程序生成图像,它们却可以做到!这是怎么可能的?
答案是,HuggingChat、ChatGPT 和类似应用程序的开发者实现了额外的功能(称为工具),LLM 可以利用这些工具来创建图像。

我们将在工具一节中更深入地了解工具。
智能体可以执行什么类型的任务?
智能体可以通过工具执行我们实现的任何任务来完成行动。
例如,如果我编写一个智能体作为我电脑上的个人助理(像 Siri 一样),并且我让它“给我的经理发一封邮件,要求推迟今天的会议”,我可以给它一些发送邮件的代码。这将是一个新的工具,智能体在需要发送邮件时可以随时使用。我们可以用 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?")
工具的设计至关重要,对智能体的质量有着深远的影响。某些任务可能需要定制特定的工具,而其他任务则可以通过通用工具(如“网络搜索”)来解决。
请注意,动作(Actions)与工具(Tools)是不同的概念。例如,一个动作可能涉及使用多个工具来完成任务。
允许智能体与其环境进行交互为企业和个人提供了实际应用场景。
示例 1:个人虚拟助手
像 Siri、Alexa 或 Google Assistant 这样的虚拟助手,在代表用户与其数字环境交互时,充当着智能体的角色。
它们接收用户查询,分析上下文,从数据库中检索信息,并提供响应或启动动作(如设置提醒、发送消息或控制智能设备)。
示例 2:客户服务聊天机器人
许多公司部署聊天机器人作为智能体,使其能够以自然语言与客户互动。
这些智能体可以回答问题、引导用户完成故障排除步骤、在内部数据库中创建问题,甚至完成交易。
它们的预定义目标可能包括提高用户满意度、减少等待时间或提高销售转化率。通过直接与客户互动、从对话中学习并随着时间的推移调整其响应,它们展示了智能体的核心原理。
示例 3:视频游戏中的 AI 非玩家角色(NPC)
基于大语言模型(LLMs)的智能体可以使非玩家角色(NPC)更具动态性和不可预测性。
它们不再局限于僵化的行为树,而是能够根据上下文做出响应、适应玩家交互,并生成更细致入微的对话。这种灵活性有助于创造更生动、更具吸引力的角色,这些角色会随着玩家的操作而发展。
总结而言,智能体是一个系统,它使用人工智能模型(通常是大语言模型)作为其核心推理引擎,以实现以下功能:
理解自然语言:以有意义的方式解释和回应人类指令。
推理与规划:分析信息、做出决策并制定解决问题的策略。
与环境交互:收集信息、执行操作并观察这些操作的结果。
现在你已经对智能体有了扎实的理解,让我们通过一个简短的、不计分的测验来巩固你的知识。之后,我们将深入探讨智能体的“大脑”:大型语言模型(LLM)。
< > Update on GitHub