
奥本 AI 将所有的最新 AI 聚合到了一起,为您开启多模型 AI 绘画新时代!
扫码即刻关注公众号
实践中合作AI代理的综合指南
7 个月前
实践中协作AI代理的全面指南
定义,以及建立一个团队来优化您的简历和求职信以申请工作的代理 -------------------------------------------------------------------------------------------------------您接受的培训数据截至2023年10月。Read for free!代理 AI 是 2024 年 AI 社区中最热门的话题之一,原因很充分。基础模型在推理和规划方面变得越来越复杂。凭借这些能力,我们可以利用大型语言模型(LLMs)将给定任务分解为更小的部分,逐步执行,并反思其结果,从而实质上创建AI 代理。
如果你对 AI 充满热情,或者喜欢玩语言模型,或者正在从事机器学习工作,那么全面理解 AI 代理及其在行动中的表现是必要的,尤其是如果你想跟上最新的 AI 成就。
如果你像我一样正在寻找工作,你知道为每个申请的工作写求职信或调整简历以准确符合工作要求是一个繁琐的步骤。在我实现 AI 代理的过程中,我将开发一支 AI 代理团队,协同进行以下操作:
- 提取 职位描述中的关键信息
- 修改 你的简历和求职信以针对该职位
- 评估 从招聘者的角度来看最终结果,并给出 0 到 100 的评分
图1. 我们将创建一个AI代理团队来修改我们的简历和求职信,并给出一个0到100的评分。(作者)
在本文中,我们将探讨什么是协作AI代理,代理与大型语言模型(LLM)之间的区别,并通过一个实际的实现演示,展示创建AI代理可能比您想象的要简单得多。AI Agent Made Simple您接受的培训数据截至2023年10月。LLM-Powered AI Agents您接受的训练数据截至2023年10月。Multi-Agent Collaboration您接受的训练数据截至2023年10月。What Makes an Agent您经过训练的数据截止到2023年10月。What We Need With Multi-Agents您接受的训练数据截止到2023年10月。Code Implementation: Agents that Help You Apply For JobsAI代理简单说明
AI代理是一个以目标为导向的工具,旨在完成特定的一组任务。虽然AI语言模型被创建用于生成特定提示的响应,但AI代理在更广泛的范围内运作,通过决策和任务执行来解决复杂问题。它们围绕一个任务进行推理,并利用其可用工具执行较小的议程以完成任务。
AI聊天机器人会说话,AI代理会行动。
无论是在客户服务、金融还是软件开发领域,AI代理的目的只有一个:自动化。希望AI代理能够帮助个人和组织处理他们的日常事务,以更低的成本解决不那么创意的任务。图2. 基于大型语言模型(LLM)代理的结构概要。(来源:Wikimedia**
大语言模型驱动的AI代理
尽管AI代理与大型语言模型(LLM)有很大不同,但LLM是我们AI代理的“大脑”。代理需要LLM才能以智能的方式执行任何任务、进行推理和规划下一步。这意味着使用哪个LLM会完全改变代理的行为。这就是为什么AI代理的崛起话题要得益于生成式人工智能的激增。
注意:我们今天听到的AI代理在含义上与传统文献和教科书有所不同。如果你只是搜索关于AI代理的信息,而得到了多种不同的定义,这可能会让人感到困惑。我们今天使用的AI代理,以及在AI社区中流行的话题,是基于LLM的代理,这是我们在本文中讨论的内容。图3。(作者)
自主AI代理的核心受益于三个组成部分:
- 规划: 这是代理的核心功能,允许它将目标分解为更小的步骤并逐一处理。它们规划的另一个方面是对自身行动进行自我反思并从中学习。代理进行自我反思的方式在很大程度上取决于实现,但可以考虑的一个一般轮廓如图4所示。
- 记忆: 要从过去的错误中学习,必须记住它们。记忆是存储信息并稍后由代理检索的组件,以精炼其行动。
- 工具使用: 简单的语言模型(LLM)和AI代理之间的一个关键区别是它们使用工具的能力。使用工具可以简单得像调用API,或使用Python函数来读取或写入一些文件。
图4. 自我反思是一个有限循环,代理思考应该做什么,采取行动,并观察结果,可能会采取新的方法来解决问题。(作者)
多智能体协作
比一个智能体更好的是什么? 很多智能体!
拥有一个人工智能代理是一回事,但拥有多个相互协作的人工智能代理以分担任务并对其进行处理则是另一回事。
但是,为什么我们需要多个代理呢?
当将一个目标分解为更小的部分时,您会得到需要不同技能组合的子目标。这就是您需要多个代理的地方。一个代理团队,每个代理都有特定的角色和技能组合,确保每个子目标都由其自己的代理来处理。
您甚至可能需要为每个代理提供不同的LLM(大型语言模型),这些模型在分配给该代理的任务上更加复杂。一个为编程能力创建的代理可能需要与一个负责写文章的代理完全不同的LLM。
什么是代理
您如何定义代理在很大程度上取决于您使用的实现或库。一般来说,代理归结为三个主要元素:图 5. (作者提供)
- 目标:代理希望实现的具体目标。这决定了它的决策框架。例如,“编写易于理解的面向对象的 Python 代码。”
- 角色:代理的功能。它是谁?调试器、数据科学家、销售营销人员等。
- 背景故事:代理的背景。解释目标、角色以及代理擅长的内容。一个背景故事的例子可以是,“你是一名高级 Python 程序员,专门编写优化的、文档齐全的代码及其测试用例。”
我们需要多代理的内容
多代理的实施细节有一些细微差别需要考虑。想象一下,一组人朝着同一个目标努力,例如,一组厨师在餐厅厨房工作。图像由DALLE3创建。
您需要一位主厨来领导团队。团队成员需要相互沟通。他们需要能够将完成的工作发送给其他厨师,以便进行下一步的食品准备。这只是使多个代理“协同工作以完成共同任务”所需的许多事情中的一个示例。
通常,对于多个代理,您需要:
- 共享信息:代理需要彼此传递结果并分享他们的发现。一个代理的完成工作可能是另一个代理开始其任务的输入。
- 协作:代理应该能够互相帮助,并在需要时委派部分工作。这在简单场景中可能不是必需的,但在复杂流程中这是相当必要的。
- 管理代理:控制代理之间任务的流动,保持他们的控制。
代码实现:帮助您申请工作的代理
现在让我们创建我们的代理团队。有多个库可以让您开发AI代理,例如LlamaIndex你的训练数据截至到2023年10月。LangChain您训练的数据截至2023年10月。CrewAI由于其易于使用的工作流程和高度的抽象性,它是免费的,虽然给予你对代理的适当控制,但在简单项目中避免了不必要的复杂性。
我将创建一组代理,帮助我根据给定的职位描述修改我的简历和求职信,以评估最终结果并了解我获得面试的机会有多大。为此,我将创建四个代理:
- 职位爬虫:该代理将接收职位发布的URL,爬取网页,并提取关于职位要求、资格等关键信息。
- 简历修改器:根据职位爬虫提供的职位关键信息,该代理阅读我的简历并进行增强,使其更好地符合职位描述。
- 求职信修改器:该代理的工作与简历修改器相同,但是针对我的求职信进行修改。
- 招聘者:充当招聘官,分析我修改后的简历和求职信。它将给我反馈,并且会给出一个范围在[0–100]内的评分。
图6. 代理工作流程大纲。(作者)
对于LLM,我们将使用gpt-4-turbo
。然而,使用Ollama,您可以100%本地且免费地运行LLM。我在本文中不会详细说明,但要了解如何在您的机器上本地运行LLama-3
、Mistral
、Phi-3
以及更多模型,请阅读这篇文章:
[? 在5个简单步骤中构建您的第一个AI代理(100%本地)
使用Crewai创建AI代理,并利用Ollama在本地100%运行它们的5个非常简单的步骤!
pub.towardsai.net]https://pub.towardsai.net/build-your-first-ai-agent-in-5-easy-steps-100-local-2fb771438a8f)您接受的训练数据截止至2023年10月。接下来,我将加载我的 OPENAI_API_KEY
并初始化我的 model
。该模型是我们智能体推理的核心:
``` from dotenv import load_dotenv from crewai import Agent, Task, Crew, Process from langchain_openai import ChatOpenAI from langchain.tools import tool import re
从您的 .env 文件中加载 OPENAI_API_KEY
load_dotenv()
智能体的模型
model = ChatOpenAI(model_name="gpt-4-turbo", temperature=0.8) `` 我们还需要定义两个 **工具**,供我们的智能体使用。工具是智能体用来执行某些任务的工具。为智能体编写自定义工具就像编写一个 Python 函数一样简单。您只需将其包装在 Langchain 的工具装饰器中。我们这个项目所需的工具分别是获取给定 URL 的页面内容和读取
CV.pdf和
Cover Letter.pdf` 内容的工具。
``` from langchain_community.document_loaders import PyMuPDFLoader import requests
用于加载和读取本地
图7. 模板求职信与代理修改后的求职信(作者提供)
您可以看到,求职信修改代理成功地将我的求职信调整为符合职位描述,甚至添加了一些在职位描述中强调的要点。然而,简历修改代理的输出效果稍显不足,需要对其代理和任务定义进行一些调整。
招聘代理还对我修改后的简历和求职信进行了审核,并给予了92/100的评分:
``` 根据对Hesam Sheikh Hassani的简历和求职信与[故意排除]的AI研究员职位的关键要点的详细评审,我将候选人的得分为100分中的92分。Hesam在人工智能方面表现出强大的学术和专业背景,尤其是在机器学习和深度学习方面,与[故意排除]研究团队的要求非常契合。
他在大型语言模型(LLM)方面的经验以及有效沟通复杂AI概念的能力,特别是通过社交媒体和文章的参与,令人印象深刻,且与该职位直接相关。他在Git、Linux、Python和高级机器学习算法等关键工具方面https://pub.towardsai.net/why-does-chatgpt-use-delve-400621728787) AI 聊天机器人和大型语言模型(LLMs)会遭遇 幻觉*。在这个例子中,幻觉可能意味着在你的求职信和简历中添加你实际上并不具备的经历和技能,而这些是受到职位描述的启发。请仔细检查你的简历/求职信中是否有不切实际的修改。
牢牢掌握大型语言模型(LLMs)的应用将使公司和专家处于更有利的地位。其中一个引人注目的能力是 AI 代理。在本文中,我们讨论了什么是 AI 代理,它与大型语言模型的区别,以及我们如何用几行代码实现它们以自动化我们的重复任务。
感谢您的阅读,
— Hesam
赋迪奥本AI
上海赋迪网络科技
电话:18116340052