AI 智能体系统课程
王哲峰 / 2024-05-30
课程信息
- 课程名称:《多 AI 智能体系统》(Multi AI Agent Systems)
- 课程地址:
- 框架:
- crewAI
- LangChain
- LlamaIndex
课程介绍
这门课程由 crewAI 的创始人兼 CEO João Moura 打造。在这门课程中, 你将学习如何将复杂任务分解为多个AI智能体的子任务, 每个智能体都扮演一个特定的角色并执行相应的任务。
例如,生成一份研究报告时,你可能会有研究员智能体、撰写智能体和质量保证智能体进行协作。 你需要像管理团队一样,定义这些智能体的角色、期望和交互方式。
课程将涵盖关键的 AI 智能体技术,包括角色扮演、工具使用、记忆管理、保护机制以及跨智能体协作。 你还将学习如何构建自己的多智能体系统,以便解决复杂任务。 我相信你会发现设计智能体并观察它们协作完成任务既高效又有趣。
多智能体架构将在推动 AI 系统的发展方面起到重要作用。
课程概览
这门课程旨在全面介绍和深入探讨智能体的知识。课程内容丰富, 涵盖了智能体的运作原理、角色扮演、注意力集中、工具使用、边界设置、记忆利用及其合作方式等方面。 课程的目标是通过理论和实际案例,让学员掌握构建智能体系统的技能,最终能自主构建复杂的智能体团队。
- 首先,课程会介绍智能体的基本定义和运作机制,帮助学员理解智能体的基础知识。
- 接着,课程将讨论智能体在角色扮演中的应用,介绍不同智能体的角色和功能, 以及它们如何通过合作实现目标。
- 课程还将深入探讨智能体如何集中注意力、使用工具,以及如何设置边界以确保智能体的正常运作和有效性。
在智能体的记忆和合作方式部分,课程将解释智能体如何利用记忆提高效率, 并介绍顺序、层级、异步等不同的合作方式。之后,课程将逐步构建不同类型的智能体团队, 从简单的研究和写作团队开始,逐步构建更复杂的团队,如客户支持团队、客户推广团队和财务分析团队。
课程中还包括一个简历优化的案例分析,通过分析 Noah 的简历,展示如何使用智能体优化简历, 提高求职成功率。学员将学习如何利用智能体来突出简历中的关键技能和经验,使其更符合职位需求。
此外,课程还将探讨智能体自动化的优势,特别是与传统自动化的对比。 智能体自动化不仅能处理更多的边缘情况,还能通过模糊输入和输出实现更灵活的应用。 课程将通过具体的例子展示智能体在数据收集和分析中的应用, 说明如何通过多智能体系统提高数据处理的效率和准确性。
什么是 AI 智能体
大语言模型(LLMs)是一种通过预测下一个 token 来进行对话的技术, 其主要供应商包括 OpenAI、HuggingFace 和 Ollama 等。用户可以通过与 LLMs 的交互, 不断提供反馈来优化模型的输出结果。尽管这种交互能提高模型性能,但需要用户持续参与。 然而,AI 智能体可以自主工作,减少用户手动交互的需求,从而提高工作效率。
智能体具备使用工具和与外部世界进行交互的能力,例如调用 API、发布信息或收集数据等。 这种能力使智能体能够完成更多复杂任务,形成一个功能齐全的系统。 多智能体系统通过多个智能体的分工协作,实现了比单一智能体更高的效率和专业化。 每个智能体可以专注于特定任务,并基于不同模型运行,进一步提升工作效果。
构建一个多智能系统来帮你写作
智能体是一种可以进行自我对话并完成复杂任务的大语言模型。通过协同工作,智能体能够实现更高的价值。
在实际操作中,我们通过导入 crewAI 的 Agent
、Task
和 Crew
三个核心模块,选择适当的语言模型,
如 GPT-3.5 Turbo,来搭建多智能体系统。创建多智能体系统的第一步是设定智能体的角色、目标和背景故事,
以确保其能够有效执行任务。在本案例中,我们创建了三个智能体:规划者、撰写者和编辑者。
每个智能体都有明确的角色、目标和背景故事,以增强其角色扮演效果。
接下来,我们创建了任务,包括设定任务描述、预期输出和分配相应的智能体。
通过创建 Crew
实例,将智能体与任务匹配在一起,并设定任务的执行顺序和详细模式,
以便观察任务执行过程中的日志信息。
通过调用 crew.kickoff
方法并传入输入字典,我们启动了多智能体系统。
系统中的各智能体根据设定的任务顺序,依次执行任务,并最终产出预期结果。
多智能体系统在实际应用中有广泛的场景,例如文档编写。 通过思考不同领域的应用,我们可以更好地利用多智能体系统来提高工作效率和质量。
AI 智能体的 6 个关键要素
一个优秀的智能体具备六个要素:
- 角色扮演
给 LLM 设定一个角色,可以让 LLM 生成的结果和这个角色的能力更相关。 比如你告诉 LLM 现在是一个资深金融分析师,那么得到的结果会金融分析更相关。 越是能力强的模型,这个影响可能会越小,但是对于能力没那么强的模型,这个影响相对比较大。
- 专注
这其实和人执行任务有些类似,越是专注某个特定领域,需要选择的工具越少, 需要处理的数据集也越少,上下文内容也越少,不容易偏离目标和出现幻觉,结果会更好。
所以对于复杂的任务尽可能拆分成多个小的任务,形成一个工作流,多个智能体协作完成任务, 甚至于可以让 LLM 帮你规划和拆分任务。
比如翻译任务,如果一个智能体一次翻译可能结果一般,但是如果分成多个智能体, 先直译然后反思最后意译结果就好很多。
- 使用工具
智能体有能力调用工具,并且能选择最适合当前任务的工具。
但是并不是说给它越多工具越好,因为工具越多,越难以选择,尤其是模型能力弱的 LLM, 更可能出错,所以一方面要让智能体专注减少任务的范围进而减少工具的数量, 另一方面要提供有能力解决任务的工具。
- 协作
通常对于复杂的任务,不是一个智能体在完成任务,而是多个智能体一起完成任务, 那么在整个过程中,需要确保智能体之间能相互通信, 比如一个智能体的输出可以作为下一个智能体的输入, 比如有一个智能体专门负责调度根据中间结果调用不同的智能体。
所以对于多智能体系统,还需要设计好工作流,确保智能体之间整体协作的通畅。
这种协作不仅是指智能体和智能体之间,也包含人和智能体之间的协作。
现在的智能体还不足以智能到自始至终能做出正确的决策,有时候还需要人工的干预, 在中间及时给出反馈,有错误给予纠正,缺少信息补充上下文。
比如 Devin 这种复杂的 AI 软件工程师,在遇到一些解决不了的错误时,也需要人工干预。
- 设定防护栏和边界
通常智能体的任务,输入和输出都是自然语言,并不是结构化的数据, 这就导致如果边界条件不清晰的会卡在某个地方反复执行,比如早年的 AutoGPT, 就可能会陷入死循环,导致白白浪费很多 GPT-4 Tokens,价格不菲。
所以设定好防护栏,就能确保智能体能在正确的轨道上, 如果出现故障可以及时干预,而不至于卡在某个任务上白白浪费 Tokens。
- 记忆能力
记忆能力指的是智能体要有能力记得自己做过的事情, 得到和生成的数据,用这些数据来进行后面的决策和完成任务。
实战: 搭建一个多智能体客户支持系统
多智能体系统结合了 agent
、task
和 crew
类,通过 GPT-3.5 Turbo 实现,
主要关注智能体的角色、焦点、工具、防护栏和记忆等方面。
在客户支持自动化的使用案例中,多智能体系统能够帮助提高服务质量。
设计客户支持智能体时,设定其为高级客户支持代表,提供友好和乐于助人的服务,
并在 crewAI 工作。为了确保回复质量,引入了质量保证智能体,
其任务是检查支持智能体的回复,利用任务委派机制进行优化。
AI 工程与常规工程存在差异,主要体现在 AI 应用中的输入、处理和输出具有模糊性, 智能体根据实际情况做出反应,进行任务委派和问题处理。工具的集成与使用是系统的重要组成部分, crewAI 工具包中包括 Serper 开发工具、网页抓取工具和网站搜索工具, 这些工具在智能体任务执行中起到关键作用。
在任务模块的创建与执行方面,首先创建解决问题和质量保证评审的任务模块,并将其与智能体功能集成。 此外,记忆功能的应用使得智能体能够记住和处理正在进行的任务, crewAI 的记忆功能包括短期记忆、长期记忆和实体记忆。通过实例代码演示, 展示了创建智能体和任务模块的具体过程,以及智能体协作解决客户问题的过程, 体现了智能体的角色扮演、专注和合作的优势。