好的,这是对您提供的文章的分析和总结:
语言: 中文
关键字: 多智能体系统, 智能体模式, CrewAI, 智能体依赖, 拓扑排序
概述: 本文是“智能体模式从零开始”系列的第四课,主要介绍了多智能体系统的概念,并通过从头构建一个极简的多智能体框架来深入理解其工作原理。文章借鉴了 CrewAI 的 Crew 和 Agent 概念,以及 Apache Airflow 的任务依赖思想,构建了一个可以定义智能体、智能体依赖关系,并使用拓扑排序来编排智能体执行顺序的框架。这个框架的核心是 Agent 类和 Crew 类,Agent 类负责执行具体任务,而 Crew 类负责管理和调度 Agent。通过一个诗歌创作的例子,展示了如何使用该框架构建一个多智能体应用。文章旨在帮助读者理解多智能体系统的基本原理,并鼓励读者动手实践。
分节阅读:
-
A Minimalistic Multiagent Framework
- 该框架的灵感来源于 CrewAI 的 Crew 和 Agent 概念,Crew 代表协同工作的智能体组,Agent 代表执行特定任务的自主单元。
- 文章还借鉴了 Apache Airflow 的设计理念,使用 >> 和 << 运算符来建立智能体之间的依赖关系。
- 在这个微型 CrewAI 框架中,智能体类似于 Airflow 任务,而 Crew 对应于 Airflow DAG。
-
The Agent Class
- Agent 类代表一个智能体,内部集成了 ReAct 技术。
- 文章提供了一个示例,展示了如何创建一个简单的智能体,并为其配备工具,例如将文本写入 CSV 文件的工具。
- 运行该工具智能体将在当前目录中创建一个名为 tool_agent_example.txt 的新文件,其中包含文本“This is a Tool Agent”。
-
Defining Agent Dependencies
- 文章使用 >> 运算符来定义智能体之间的依赖关系,例如 agent_2 >> agent_1 表示 agent_2 依赖于 agent_1。
- 当运行 agent_1 时,其结果将添加到 agent_2 的上下文中。
- 当运行 agent_2 时,它将使用从 agent_1 收到的上下文来生成其输出。
-
The Crew
- Crew 类负责编排智能体的执行顺序,使用拓扑排序算法。
- Crew 类还提供了一种可视化依赖关系图的方法,可以使用 crew.plot() 命令生成依赖关系图。
- 文章通过一个诗歌创作的例子,展示了如何使用 Crew 类来运行多个智能体,并最终将翻译后的诗歌写入文件。
相关工具:
参考文献:
- Lesson Zero: What is an Agent?
- Lesson One: The Reflection Pattern
- Lesson Two: The Tool Pattern
- Lesson Three: The Planning Pattern
- Topological Sorting
原文链接: https://theneuralmaze.substack.com/p/what-is-a-multiagent-system
一致性检查: 以上总结与原文内容一致,没有出现前后矛盾或与原文不符的地方,段落顺序也与原文保持一致。
source: https://theneuralmaze.substack.com/p/what-is-a-multiagent-system