什么是AI代理?ChatGPT 是 AI 代理吗?


现代软件开发已经依赖于对用户输入做出反应的 AI 编码助手。尽管自主 AI 代理仍处于起步阶段,但它们有可能进一步彻底改变该领域。

什么是 AI 代理?

人工智能代理是一个自主系统,它接收数据、做出合理决策并在其环境中采取行动以实现特定目标。虽然简单的代理通过传感器感知其环境并通过执行器对其采取行动,但真正的 AI 代理包含一个“引擎”。该引擎会根据环境及其行为自主做出理性决策。

大型语言模型和多模态 LLM 是现代 AI 代理的核心,因为它们提供了这一层推理能力,并且可以轻松衡量性能。最先进的 AI 代理还可以随着时间的推移学习和调整其行为。并非所有代理都需要这样做,但有时这是必须的。

人工智能中的代理有哪些类型?

  1. 简单反射代理:这些代理相当简单 – 它们仅根据当前感知到的情况做出决策,而不考虑过去的情况。当仅通过查看当前情况即可做出正确决策时,它们就会发挥作用。
  2. 基于模型的反射代理:这些代理稍微复杂一些。即使无法直接观察,它们也会跟踪幕后发生的事情。它们使用“过渡模型”根据之前看到的内容更新对世界的理解,并使用“传感器模型”将这种理解转化为周围实际发生的事情。
  3. 基于目标的代理:这些代理都是为了实现特定目标。它们会提前思考并规划一系列行动以达到预期结果。就好像它们有一张地图,并试图找到到达目的地的最佳路线。
  4. 基于效用的代理:这些代理更加先进。它们根据效用函数为每个可能状态分配“良好度”分数。它们不仅关注单个目标,还考虑不确定性、目标冲突和每个目标的相对重要性等因素。它们选择最大化其预期效用的行动,就像超级英雄试图挽救局面同时将附带损害降至最低一样。
  5. 学习代理:这些代理是终极适应者。它们从一套基本的知识和技能开始,但会根据自己的经验不断改进。它们有一个学习元素,可以接收来自评论家的反馈,评论家会告诉它们做得有多好。然后,学习元素会调整代理的表现,以便下次做得更好。这就像拥有一个内置教练,可以帮助代理随着时间的推移越来越好地完成任务。

这些理论概念对于理解 AI 代理的基础知识非常有用,但由大型语言模型 (LLM) 驱动的现代软件代理就像所有这些类型的混合体。LLM 可以处理多项任务、规划未来,甚至可以估计不同操作的用处。

LLM可以充当AI代理吗?

尽管 LLM 还不能充当独立的 AI 代理,但它们正在成为现代自主代理的关键组成部分。让我们看看为什么以及如何。

现代人工智能研究主要围绕神经网络展开。然而,大多数网络只能执行一项任务或一组或密切相关的任务:一个很好的例子是DeepMind 的 Agent57,它可以使用一个模型玩所有 57 款 Atari 游戏,并在大多数游戏中取得了超人的表现。

尽管此类模型仍然局限于特定领域,但非常令人印象深刻。

随着现代基于Transformer的大型语言模型的出现,这一切都发生了改变。

早期的 GPT(生成式预训练 Transformer)模型只能充当具有百科全书知识的花哨聊天机器人。然而,随着模型规模的扩大,它们开始表现出有趣的行为。

随着模型参数数量的增加,几乎每个现代LLM都只是从文本数据中掌握了很多想法。换句话说:没有人专门训练模型来翻译文本甚至修复代码。

海量训练数据和大量模型参数的混合足以将现实世界中的许多想法“融入”模型中。

通过进一步的微调,这些基于 Transformer 的模型能够更好地遵循指令。

所有这些令人难以置信的进步,使得开发人员仅使用一组称为提示的复杂指令就可以创建人工智能代理。

ChatGPT 是 AI 代理吗?

虽然 ChatGPT 拥有令人印象深刻的功能和一些实用的工具,包括网页浏览和数据分析,但它仍然缺少一些代理特有的关键组件。例如,它还不是自主的,每次迭代都需要人工输入。

在 ChatGPT 和自定义 AI 代理之间进行选择取决于您的需求以及使用环境。ChatGPT 非常适合一般对话式 AI、内容创建和广泛的应用。对于专门的任务、实时数据处理和集成系统解决方案,自定义 AI 代理可能更合适。

人工智能代理的关键组成部分是什么?

本质上,AI 代理通过传感器收集数据,通过推理引擎、控制系统得出合理的解决方案,通过执行器执行动作,并通过其学习系统从错误中学习。但这个过程具体是什么样的呢?

让我们分解一下 LLM 驱动的软件代理的步骤。

传感器

有关环境的信息通常以文本信息的形式出现。这可以是:

  • 某些自然语言的纯文本,如用户请求或问题;
  • 半结构化信息,比如简单的Markdown或者JSON;
  • 文本格式的各种图表或图形,例如美人鱼流程图;
  • 表格形式的更多结构化文本、日志流、时间序列数据;
  • 多种编程语言的代码片段甚至完整程序;

多模态 LLM 可以接收图像甚至音频数据作为输入。

执行器

大多数语言模型只能生成文本输出。但是,此输出可以采用结构化格式,例如 XML、JSON、简短的代码片段,甚至是包含所有查询和正文参数的完整 API 调用。

现在,开发人员的工作是将 LLM 的输出提供给其他系统(即进行实际的 API 调用)。

行动结果可以返回到模型中以提供反馈并更新有关环境的信息。

推理引擎(又称“大脑”)

LLM 驱动的 AI 代理的“大脑”本身就是一个大型语言模型。其主要目标是根据目标做出理性决策,以最大化特定性能。如有必要,推理引擎会从环境中接收反馈,进行自我控制并调整其行为。

但它究竟是如何工作的呢?

GPT-4、Claude 3、Llama 3 等大型预训练模型对它们在训练期间从大量文本中获得的世界有着“根深蒂固”的理解。GPT-4o 等多模态大型语言模型更进一步,除了文本外,还接收图像和音频数据进行训练。进一步的微调使这些模型能够在特定任务上有所改进。

这些具体任务在很大程度上是一个正在进行的研究领域,但我们已经知道,大型 LLM 能够:

  • 按照指示,
  • 模仿人类的推理,
  • 仅从用户命令(称为提示)中理解隐含的意图。

剩下的就是最后一步:如何构建一系列(或链)提示,以便 LLM 可以模拟自主行为。

这正是 LangChain 发挥作用的地方!

为什么要使用 LangChain 作为 AI 代理?

在 AI 代理的背景下,LangChain 是一个框架,可让您利用大型语言模型 (LLM) 来设计和构建这些代理。

传统上,您会用代码编写代理所采取的整个操作序列。

LangChain 通过提供代理可以访问的提示模板和工具来简化此过程。LLM 充当代理背后的推理引擎,并决定采取哪些操作以及按什么顺序执行。LangChain 将此决策的复杂性隐藏在其自己的 API 后面。请注意,这不是 REST API,而是专门为与这些模型交互而设计的内部 API,以简化代理开发。

这个简单的对话代理使用窗口缓冲内存和一个用于发出 Google 搜索请求的工具。

有几篇文章介绍了如何激活 LLM 的推理、自我控制、选择可用工具执行操作和观察结果的能力。LangChain 开发人员已经实现了这些技术,因此无需额外配置即可使用它们:

  1. ReAct (推理、行动)代理旨在推理给定的任务,确定必要的操作,然后执行这些操作。它遵循推理和行动的循环,直到任务完成。ReAct 代理可以将复杂任务分解为较小的子任务,对它们进行优先排序,然后一个接一个地执行它们。
  2. 计划和执行代理与 ReAct 代理类似,但侧重于规划。它首先创建一个高级计划来解决给定的任务,然后逐步执行该计划。此代理对于需要结构化方法和仔细规划的任务特别有用。

此外,LangChain 还提供各种其他代理:

  • 对话代理旨在进行类似人类的对话。它可以保留上下文,理解用户意图并提供相关答案。此代理通常用于构建聊天机器人、虚拟助手和客户支持系统。
  • Tools 代理使用外部工具和 API 来执行操作和检索信息。它可以了解不同工具的功能,并根据任务确定使用哪种工具。此代理有助于将 LLM 与各种外部服务和数据库集成。
  • SQL代理专门设计用于使用 SQL 查询与数据库交互。它可以理解自然语言问题,将其转换为 SQL 查询,执行查询并以用户友好的格式呈现结果。此代理对于构建数据库的自然语言接口非常有用。

可以看出,LangChain 对软件代理的定义与理论框架不同。你可能需要组合多个 LangChain 节点才能形成真正自主的代理。

面向开发人员的 AI 代理示例

在查看现实世界的示例之前,让我们先考虑一下 AI 代理开发人员可以为自己创建什么。以下仅举几个例子:

  • GitHub AI 代理。除了自动化开发过程的传统 GitHub 操作之外,代理还可以监控存储库中的用户活动。它可以针对简单的错误报告建议代码修复并发出拉取请求。它可以跟踪用户通信并防止垃圾邮件活动。
  • 用于依赖性检查的 AI 代理。现代项目通常具有复杂的库依赖性。密切关注新库版本的代理可以在开发团队转向新版本之前评估潜在影响,甚至识别重大更改。
  • DevSecOps AI 代理。在大型组织中,AI 代理增强了传统的安全实践。例如,它们可以监控日志并检测简单警报规则无法捕获的异常模式。AI 代理可以检查常见漏洞和暴露 (CVE) 并评估新漏洞的影响。最后但并非最不重要的是,代理可以跟踪容器构建命令以查找潜在漏洞。

如果你知道如何编码,你可以用 AI 代理做更多的事情。以下是一些梦开始的地方:

  • BabyAGI(论文,GitHub)
  • LangChain ( BabyAGI 的包装器)
  • Pinecone(矢量数据库)
  • AgentGPT(用于在浏览器中部署代理)
  • AutoGPT

总而言之,AI 代理扩展了传统算法和自动化,并且在通常无法提前知道下一步的情况下大放异彩。这种能力使得 AI 代理对于希望提高效率、安全性和卓越运营的大型企业中的安全/IT/DevOps 专业人士来说非常有价值。