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

在本节结束时,您将对 Agent 的概念及其在 AI 中的各种应用感到得心应手。
为了解释什么是 Agent,让我们从一个类比开始。
宏观视角:Agent 阿尔弗雷德
认识一下阿尔弗雷德。阿尔弗雷德是一个 Agent。

想象一下阿尔弗雷德 收到一个命令,例如:“阿尔弗雷德,请给我一杯咖啡。”

因为阿尔弗雷德 理解自然语言,他很快就理解了我们的请求。
在完成订单之前,阿尔弗雷德进行 推理和计划,弄清楚他需要的步骤和工具,以便
- 去厨房
- 使用咖啡机
- 煮咖啡
- 把咖啡带回来

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

最后,阿尔弗雷德把新鲜煮好的咖啡带给我们。

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

让我们更正式一点
既然您已经了解了大概情况,这里有一个更精确的定义
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 输出控制迭代和程序继续 | 多步骤 Agent | while llm_should_continue(): execute_next_step() |
★★★ | 一个 Agentic 工作流程可以启动另一个 Agentic 工作流程 | 多 Agent | if llm_trigger(): execute_agent() |
表格来自 smolagents 概念指南。
我们为 Agent 使用哪种类型的 AI 模型?
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 的质量有很大的影响。有些任务需要制作非常特定的工具才能解决,而另一些任务可以使用像“web_search”这样的通用工具来解决。
请注意,行动与工具不同。例如,一个行动可能涉及使用多个工具才能完成。
允许 Agent 与其环境互动 使公司和个人能够进行实际生活的应用。
示例 1:个人虚拟助理
像 Siri、Alexa 或 Google Assistant 这样的虚拟助理,当他们代表用户使用其数字环境进行互动时,可以作为 Agent 工作。
他们接受用户查询,分析上下文,从数据库中检索信息,并提供响应或发起操作(如设置提醒、发送消息或控制智能设备)。
示例 2:客户服务聊天机器人
许多公司部署聊天机器人作为 Agent,以自然语言与客户互动。
这些 Agent 可以回答问题、引导用户完成故障排除步骤、在内部数据库中打开问题,甚至完成交易。
他们预定义的目标可能包括提高用户满意度、减少等待时间或提高销售转化率。通过直接与客户互动、从对话中学习以及随着时间的推移调整他们的响应,他们展示了 Agent 在行动中的核心原则。
示例 3:视频游戏中的 AI 非玩家角色
由 LLM 驱动的 AI Agent 可以使非玩家角色 (NPC) 更加动态和不可预测。
他们可以 根据上下文做出响应,适应玩家互动,并生成更细致的对话,而不是遵循僵化的行为树。这种灵活性有助于创建更生动、更具吸引力的角色,这些角色可以随着玩家的行为而发展。
总而言之,Agent 是一个使用 AI 模型(通常是 LLM)作为其核心推理引擎的系统,用于
理解自然语言: 以有意义的方式解释和响应人类指令。
推理和计划: 分析信息、做出决策并制定解决问题的策略。
与其环境互动: 收集信息、采取行动并观察这些行动的结果。
现在您已经对 Agent 有了扎实的理解,让我们通过一个简短的、不计分的测验来巩固您的理解。之后,我们将深入探讨“Agent 的大脑”:LLM。
< > 在 GitHub 上更新