logo

AI 智能体系统课程

王哲峰 / 2024-05-30


目录

课程信息

课程介绍

这门课程由 crewAI 的创始人兼 CEO João Moura 打造。在这门课程中, 你将学习如何将复杂任务分解为多个AI智能体的子任务, 每个智能体都扮演一个特定的角色并执行相应的任务。

例如,生成一份研究报告时,你可能会有研究员智能体、撰写智能体和质量保证智能体进行协作。 你需要像管理团队一样,定义这些智能体的角色、期望和交互方式。

课程将涵盖关键的 AI 智能体技术,包括角色扮演、工具使用、记忆管理、保护机制以及跨智能体协作。 你还将学习如何构建自己的多智能体系统,以便解决复杂任务。 我相信你会发现设计智能体并观察它们协作完成任务既高效又有趣。

多智能体架构将在推动 AI 系统的发展方面起到重要作用。

课程概览

这门课程旨在全面介绍和深入探讨智能体的知识。课程内容丰富, 涵盖了智能体的运作原理、角色扮演、注意力集中、工具使用、边界设置、记忆利用及其合作方式等方面。 课程的目标是通过理论和实际案例,让学员掌握构建智能体系统的技能,最终能自主构建复杂的智能体团队。

在智能体的记忆和合作方式部分,课程将解释智能体如何利用记忆提高效率, 并介绍顺序、层级、异步等不同的合作方式。之后,课程将逐步构建不同类型的智能体团队, 从简单的研究和写作团队开始,逐步构建更复杂的团队,如客户支持团队、客户推广团队和财务分析团队。

课程中还包括一个简历优化的案例分析,通过分析 Noah 的简历,展示如何使用智能体优化简历, 提高求职成功率。学员将学习如何利用智能体来突出简历中的关键技能和经验,使其更符合职位需求。

此外,课程还将探讨智能体自动化的优势,特别是与传统自动化的对比。 智能体自动化不仅能处理更多的边缘情况,还能通过模糊输入和输出实现更灵活的应用。 课程将通过具体的例子展示智能体在数据收集和分析中的应用, 说明如何通过多智能体系统提高数据处理的效率和准确性。

什么是 AI 智能体

大语言模型(LLMs)是一种通过预测下一个 token 来进行对话的技术, 其主要供应商包括 OpenAI、HuggingFace 和 Ollama 等。用户可以通过与 LLMs 的交互, 不断提供反馈来优化模型的输出结果。尽管这种交互能提高模型性能,但需要用户持续参与。 然而,AI 智能体可以自主工作,减少用户手动交互的需求,从而提高工作效率。

智能体具备使用工具和与外部世界进行交互的能力,例如调用 API、发布信息或收集数据等。 这种能力使智能体能够完成更多复杂任务,形成一个功能齐全的系统。 多智能体系统通过多个智能体的分工协作,实现了比单一智能体更高的效率和专业化。 每个智能体可以专注于特定任务,并基于不同模型运行,进一步提升工作效果。

构建一个多智能系统来帮你写作

智能体是一种可以进行自我对话并完成复杂任务的大语言模型。通过协同工作,智能体能够实现更高的价值。 在实际操作中,我们通过导入 crewAI 的 AgentTaskCrew 三个核心模块,选择适当的语言模型, 如 GPT-3.5 Turbo,来搭建多智能体系统。创建多智能体系统的第一步是设定智能体的角色、目标和背景故事, 以确保其能够有效执行任务。在本案例中,我们创建了三个智能体:规划者、撰写者和编辑者。 每个智能体都有明确的角色、目标和背景故事,以增强其角色扮演效果。

接下来,我们创建了任务,包括设定任务描述、预期输出和分配相应的智能体。 通过创建 Crew 实例,将智能体与任务匹配在一起,并设定任务的执行顺序和详细模式, 以便观察任务执行过程中的日志信息。

通过调用 crew.kickoff 方法并传入输入字典,我们启动了多智能体系统。 系统中的各智能体根据设定的任务顺序,依次执行任务,并最终产出预期结果。

多智能体系统在实际应用中有广泛的场景,例如文档编写。 通过思考不同领域的应用,我们可以更好地利用多智能体系统来提高工作效率和质量。

AI 智能体的 6 个关键要素

一个优秀的智能体具备六个要素:

  1. 角色扮演

给 LLM 设定一个角色,可以让 LLM 生成的结果和这个角色的能力更相关。 比如你告诉 LLM 现在是一个资深金融分析师,那么得到的结果会金融分析更相关。 越是能力强的模型,这个影响可能会越小,但是对于能力没那么强的模型,这个影响相对比较大。

  1. 专注

这其实和人执行任务有些类似,越是专注某个特定领域,需要选择的工具越少, 需要处理的数据集也越少,上下文内容也越少,不容易偏离目标和出现幻觉,结果会更好。

所以对于复杂的任务尽可能拆分成多个小的任务,形成一个工作流,多个智能体协作完成任务, 甚至于可以让 LLM 帮你规划和拆分任务。

比如翻译任务,如果一个智能体一次翻译可能结果一般,但是如果分成多个智能体, 先直译然后反思最后意译结果就好很多。

  1. 使用工具

智能体有能力调用工具,并且能选择最适合当前任务的工具。

但是并不是说给它越多工具越好,因为工具越多,越难以选择,尤其是模型能力弱的 LLM, 更可能出错,所以一方面要让智能体专注减少任务的范围进而减少工具的数量, 另一方面要提供有能力解决任务的工具。

  1. 协作

通常对于复杂的任务,不是一个智能体在完成任务,而是多个智能体一起完成任务, 那么在整个过程中,需要确保智能体之间能相互通信, 比如一个智能体的输出可以作为下一个智能体的输入, 比如有一个智能体专门负责调度根据中间结果调用不同的智能体。

所以对于多智能体系统,还需要设计好工作流,确保智能体之间整体协作的通畅。

这种协作不仅是指智能体和智能体之间,也包含人和智能体之间的协作。

现在的智能体还不足以智能到自始至终能做出正确的决策,有时候还需要人工的干预, 在中间及时给出反馈,有错误给予纠正,缺少信息补充上下文。

比如 Devin 这种复杂的 AI 软件工程师,在遇到一些解决不了的错误时,也需要人工干预。

  1. 设定防护栏和边界

通常智能体的任务,输入和输出都是自然语言,并不是结构化的数据, 这就导致如果边界条件不清晰的会卡在某个地方反复执行,比如早年的 AutoGPT, 就可能会陷入死循环,导致白白浪费很多 GPT-4 Tokens,价格不菲。

所以设定好防护栏,就能确保智能体能在正确的轨道上, 如果出现故障可以及时干预,而不至于卡在某个任务上白白浪费 Tokens。

  1. 记忆能力

记忆能力指的是智能体要有能力记得自己做过的事情, 得到和生成的数据,用这些数据来进行后面的决策和完成任务。

实战: 搭建一个多智能体客户支持系统

多智能体系统结合了 agenttaskcrew 类,通过 GPT-3.5 Turbo 实现, 主要关注智能体的角色、焦点、工具、防护栏和记忆等方面。 在客户支持自动化的使用案例中,多智能体系统能够帮助提高服务质量。 设计客户支持智能体时,设定其为高级客户支持代表,提供友好和乐于助人的服务, 并在 crewAI 工作。为了确保回复质量,引入了质量保证智能体, 其任务是检查支持智能体的回复,利用任务委派机制进行优化。

AI 工程与常规工程存在差异,主要体现在 AI 应用中的输入、处理和输出具有模糊性, 智能体根据实际情况做出反应,进行任务委派和问题处理。工具的集成与使用是系统的重要组成部分, crewAI 工具包中包括 Serper 开发工具、网页抓取工具和网站搜索工具, 这些工具在智能体任务执行中起到关键作用。

在任务模块的创建与执行方面,首先创建解决问题和质量保证评审的任务模块,并将其与智能体功能集成。 此外,记忆功能的应用使得智能体能够记住和处理正在进行的任务, crewAI 的记忆功能包括短期记忆、长期记忆和实体记忆。通过实例代码演示, 展示了创建智能体和任务模块的具体过程,以及智能体协作解决客户问题的过程, 体现了智能体的角色扮演、专注和合作的优势。