企业级生产的多代理编排框架
? Twitter • ?不和谐•群平台• ?文档
类别 | 特征 | 好处 |
---|---|---|
?企业体系结构 | •准备生产的基础设施 •高可靠性系统 •模块化设计 •全面的记录 | •减少停机时间 •更容易维护 •更好的调试 •增强的监视 |
?代理编排 | •分层群 •并行处理 •顺序工作流程 •基于图的工作流程 •动态代理重排 | •复杂的任务处理 •提高性能 •灵活的工作流程 •优化执行 |
集成功能 | •多模型支持 •定制代理创建 •广泛的工具库 •多个内存系统 | •提供商的灵活性 •自定义解决方案 •扩展功能 •增强的内存管理 |
?可伸缩性 | •并发处理 •资源管理 •负载平衡 •水平缩放 | •更高的吞吐量 •有效的资源使用 •表现更好 •易于缩放 |
开发人员工具 | •简单的API •广泛的文档 •活跃的社区 •CLI工具 | •更快的发展 •易于学习曲线 •社区支持 •快速部署 |
?安全功能 | •错误处理 •费率限制 •监视集成 •审核记录 | •提高可靠性 •API保护 •更好的监视 •增强的跟踪 |
高级功能 | •电子表格工程 •小组聊天 •代理注册表 •代理的混合物 | •群众代理管理 •协作AI •集中控制 •复杂的解决方案 |
?提供者支持 | •Openai •人类 •Chromadb •自定义提供商 | •提供商的灵活性 •存储选项 •自定义集成 •供应商独立性 |
?生产功能 | •自动检索 •异步支持 •环境管理 •键入安全性 | •更好的可靠性 •提高性能 •简单配置 •更安全的代码 |
用例支持 | •特定于任务的代理 •自定义工作流程 •行业解决方案 •可扩展的框架 | •快速部署 •灵活的解决方案 •行业准备就绪 •简单自定义 |
python3.10
或更高!$ pip install -U swarms
,别忘了安装群!.env
OPENAI_API_KEY
ANTHROPIC_API_KEY
.env
变量: WORKSPACE_DIR="agent_workspace"
或使用export WORKSPACE_DIR="agent_workspace"
在终端中进行操作swarms onboarding
让您入门。 有关生产等级实施详细信息,请参阅我们的文档。
部分 | 链接 |
---|---|
安装 | 安装 |
Quickstart | 开始 |
代理内部机制 | 代理体系结构 |
代理API | 代理API |
整合外部代理,grippape,autogen等 | 集成外部API |
用yaml创建代理商 | 用yaml创建代理商 |
为什么需要群 | 为什么需要多种合作 |
群体系结构分析 | 群结构 |
为您的业务问题选择合适的群 | 点击这里 |
AgentRearrange文档 | 点击这里 |
$ pip3 install -U swarms
现在,您已经下载了使用pip3 install -U swarms
群,我们可以访问CLI
。现在就加入CLI:
swarms onboarding
您还可以运行此命令寻求帮助:
swarms help
有关CLI的更多文档,请单击此处
以下是一些示例脚本可以让您入门。有关更全面的文档,请访问我们的文档。
示例名称 | 描述 | 示例类型 | 关联 |
---|---|---|---|
群例 | 简单示例的集合来证明群体能力。 | 基本用法 | https://github.com/the-swarm-corporation/swarms-examples?tab = ReadMe-ov-file |
食谱 | 综合指南,其中包含各种用例和场景的食谱。 | 高级用法 | https://github.com/the-swarm-corporation/cookbook |
Agent
类Agent
类是Swarms框架的基本组成部分,旨在自主执行任务。它融合了LLM,工具和长期内存功能,以创建完整的堆栈代理。 Agent
类是高度可定制的,可以对其行为和相互作用进行细粒度的控制。
run
方法run
方法是使用Agent
实例执行任务的主要入口点。它接受任务字符串作为主要输入任务,并根据代理的配置对其进行处理。并且,它也可以接受img
参数,例如img="image_filepath.png
如果您有VLM,请处理图像
Agent
类提供了一系列设置,以根据特定需求量身定制其行为。一些关键设置包括:
环境 | 描述 | 默认值 |
---|---|---|
agent_name | 代理的名称。 | “违约” |
system_prompt | 系统提示用于代理。 | “默认系统提示。” |
llm | 用于处理任务的语言模型。 | OpenAIChat 实例 |
max_loops | 任务执行的最大循环数。 | 1 |
autosave | 启用或禁用代理状态的自动保存。 | 错误的 |
dashboard | 启用或禁用代理的仪表板。 | 错误的 |
verbose | 控制代理输出的详细性。 | 错误的 |
dynamic_temperature_enabled | 启用或禁用语言模型的动态温度调整。 | 错误的 |
saved_state_path | 保存代理状态的途径。 | “ agent_state.json” |
user_name | 与代理相关的用户名。 | “ default_user” |
retry_attempts | 试图失败任务的重试尝试。 | 1 |
context_length | 要考虑任务的上下文的最大长度。 | 200000 |
return_step_meta | 控制是否要在输出中返回步骤元数据。 | 错误的 |
output_type | 要返回的输出类型(例如“ JSON”,“ String”)。 | “细绳” |
import os
from swarms import Agent
from swarm_models import OpenAIChat
from swarms . prompts . finance_agent_sys_prompt import (
FINANCIAL_AGENT_SYS_PROMPT ,
)
from dotenv import load_dotenv
load_dotenv ()
# Get the OpenAI API key from the environment variable
api_key = os . getenv ( "OPENAI_API_KEY" )
# Create an instance of the OpenAIChat class
model = OpenAIChat (
openai_api_key = api_key , model_name = "gpt-4o-mini" , temperature = 0.1
)
# Initialize the agent
agent = Agent (
agent_name = "Financial-Analysis-Agent" ,
system_prompt = FINANCIAL_AGENT_SYS_PROMPT ,
llm = model ,
max_loops = 1 ,
autosave = True ,
dashboard = False ,
verbose = True ,
dynamic_temperature_enabled = True ,
saved_state_path = "finance_agent.json" ,
user_name = "swarms_corp" ,
retry_attempts = 1 ,
context_length = 200000 ,
return_step_meta = False ,
output_type = "string" ,
streaming_on = False ,
)
agent . run (
"How can I establish a ROTH IRA to buy stocks and get a tax break? What are the criteria"
)
使用抹布(关系代理图)配备了准仪式长期内存的Agent
,以理解,分析和检索功能。
抹布整合的美人鱼图
图TD
a [用抹布初始化代理] - > b [接收任务]
b-> c [查询长期记忆]
c-> d [使用上下文的过程任务]
d-> e [生成响应]
e-> f [更新长期内存]
f-> g [返回输出]
步骤1:初始化Chromadb客户端
import os
from swarms_memory import ChromaDB
# Initialize the ChromaDB client for long-term memory management
chromadb = ChromaDB (
metric = "cosine" , # Metric for similarity measurement
output_dir = "finance_agent_rag" , # Directory for storing RAG data
# docs_folder="artifacts", # Uncomment and specify the folder containing your documents
)
步骤2:定义模型
from swarm_models import Anthropic
from swarms . prompts . finance_agent_sys_prompt import (
FINANCIAL_AGENT_SYS_PROMPT ,
)
# Define the Anthropic model for language processing
model = Anthropic ( anthropic_api_key = os . getenv ( "ANTHROPIC_API_KEY" ))
步骤3:用抹布初始化代理
from swarms import Agent
# Initialize the agent with RAG capabilities
agent = Agent (
agent_name = "Financial-Analysis-Agent" ,
system_prompt = FINANCIAL_AGENT_SYS_PROMPT ,
agent_description = "Agent creates a comprehensive financial analysis" ,
llm = model ,
max_loops = "auto" , # Auto-adjusts loops based on task complexity
autosave = True , # Automatically saves agent state
dashboard = False , # Disables dashboard for this example
verbose = True , # Enables verbose mode for detailed output
streaming_on = True , # Enables streaming for real-time processing
dynamic_temperature_enabled = True , # Dynamically adjusts temperature for optimal performance
saved_state_path = "finance_agent.json" , # Path to save agent state
user_name = "swarms_corp" , # User name for the agent
retry_attempts = 3 , # Number of retry attempts for failed tasks
context_length = 200000 , # Maximum length of the context to consider
long_term_memory = chromadb , # Integrates ChromaDB for long-term memory management
return_step_meta = False ,
output_type = "string" ,
)
# Run the agent with a sample task
agent . run (
"What are the components of a startups stock incentive equity plan"
)
我们提供各种功能,以使用JSON,YAML,TOML,上传PDF,批处理作业等节省代理状态!
方法表
方法 | 描述 |
---|---|
to_dict() | 将代理对象转换为字典。 |
to_toml() | 将代理对象转换为toml字符串。 |
model_dump_json() | 将模型转到JSON文件。 |
model_dump_yaml() | 将模型转储到YAML文件。 |
ingest_docs() | 将文件摄取到代理商的知识库中。 |
receive_message() | 从用户接收消息并处理。 |
send_agent_message() | 将代理商发送给用户的消息。 |
filtered_run() | 使用过滤的系统提示运行代理。 |
bulk_run() | 使用多个系统提示运行代理。 |
add_memory() | 向代理添加内存。 |
check_available_tokens() | 检查代理的可用令牌数量。 |
tokens_checks() | 执行代理的令牌检查。 |
print_dashboard() | 打印代理的仪表板。 |
get_docs_from_doc_folders() | 从DOC文件夹中获取所有文档。 |
activate_agentops() | 激活代理操作。 |
check_end_session_agentops() | 检查会话结束以进行代理操作。 |
# # Convert the agent object to a dictionary
print ( agent . to_dict ())
print ( agent . to_toml ())
print ( agent . model_dump_json ())
print ( agent . model_dump_yaml ())
# Ingest documents into the agent's knowledge base
agent . ingest_docs ( "your_pdf_path.pdf" )
# Receive a message from a user and process it
agent . receive_message ( name = "agent_name" , message = "message" )
# Send a message from the agent to a user
agent . send_agent_message ( agent_name = "agent_name" , message = "message" )
# Ingest multiple documents into the agent's knowledge base
agent . ingest_docs ( "your_pdf_path.pdf" , "your_csv_path.csv" )
# Run the agent with a filtered system prompt
agent . filtered_run (
"How can I establish a ROTH IRA to buy stocks and get a tax break? What are the criteria?"
)
# Run the agent with multiple system prompts
agent . bulk_run (
[
"How can I establish a ROTH IRA to buy stocks and get a tax break? What are the criteria?" ,
"Another system prompt" ,
]
)
# Add a memory to the agent
agent . add_memory ( "Add a memory to the agent" )
# Check the number of available tokens for the agent
agent . check_available_tokens ()
# Perform token checks for the agent
agent . tokens_checks ()
# Print the dashboard of the agent
agent . print_dashboard ()
# Fetch all the documents from the doc folders
agent . get_docs_from_doc_folders ()
# Activate agent ops
agent . activate_agentops ()
agent . check_end_session_agentops ()
# Dump the model to a JSON file
agent . model_dump_json ()
print ( agent . to_toml ())
Agent
以下是摄入Pydantic basemodel并同时输出的代理的示例:
from pydantic import BaseModel , Field
from swarms import Agent
from swarm_models import Anthropic
# Initialize the schema for the person's information
class Schema ( BaseModel ):
name : str = Field (..., title = "Name of the person" )
agent : int = Field (..., title = "Age of the person" )
is_student : bool = Field (..., title = "Whether the person is a student" )
courses : list [ str ] = Field (
..., title = "List of courses the person is taking"
)
# Convert the schema to a JSON string
tool_schema = Schema (
name = "Tool Name" ,
agent = 1 ,
is_student = True ,
courses = [ "Course1" , "Course2" ],
)
# Define the task to generate a person's information
task = "Generate a person's information based on the following schema:"
# Initialize the agent
agent = Agent (
agent_name = "Person Information Generator" ,
system_prompt = (
"Generate a person's information based on the following schema:"
),
# Set the tool schema to the JSON string -- this is the key difference
tool_schema = tool_schema ,
llm = Anthropic (),
max_loops = 3 ,
autosave = True ,
dashboard = False ,
streaming_on = True ,
verbose = True ,
interactive = True ,
# Set the output type to the tool schema which is a BaseModel
output_type = tool_schema , # or dict, or str
metadata_output_type = "json" ,
# List of schemas that the agent can handle
list_base_models = [ tool_schema ],
function_calling_format_type = "OpenAI" ,
function_calling_type = "json" , # or soon yaml
)
# Run the agent to generate the person's information
generated_data = agent . run ( task )
# Print the generated data
print ( f"Generated data: { generated_data } " )
运行具有多种模式的代理商,可用于制造,物流和健康方面的各种现实世界任务。
import os
from dotenv import load_dotenv
from swarms import Agent
from swarm_models import GPT4VisionAPI
# Load the environment variables
load_dotenv ()
# Initialize the language model
llm = GPT4VisionAPI (
openai_api_key = os . environ . get ( "OPENAI_API_KEY" ),
max_tokens = 500 ,
)
# Initialize the task
task = (
"Analyze this image of an assembly line and identify any issues such as"
" misaligned parts, defects, or deviations from the standard assembly"
" process. IF there is anything unsafe in the image, explain why it is"
" unsafe and how it could be improved."
)
img = "assembly_line.jpg"
## Initialize the workflow
agent = Agent (
agent_name = "Multi-ModalAgent" ,
llm = llm ,
max_loops = "auto" ,
autosave = True ,
dashboard = True ,
multi_modal = True
)
# Run the workflow on a task
agent . run ( task , img )
ToolAgent
Toolagent是可以通过JSON函数调用使用工具的代理。它从HuggingFace中摄入任何开源模型,并且非常模块化,并插入并播放。我们需要帮助尽快为所有模型增加一般支持。
from pydantic import BaseModel , Field
from transformers import AutoModelForCausalLM , AutoTokenizer
from swarms import ToolAgent
from swarms . utils . json_utils import base_model_to_json
# Load the pre-trained model and tokenizer
model = AutoModelForCausalLM . from_pretrained (
"databricks/dolly-v2-12b" ,
load_in_4bit = True ,
device_map = "auto" ,
)
tokenizer = AutoTokenizer . from_pretrained ( "databricks/dolly-v2-12b" )
# Initialize the schema for the person's information
class Schema ( BaseModel ):
name : str = Field (..., title = "Name of the person" )
agent : int = Field (..., title = "Age of the person" )
is_student : bool = Field (
..., title = "Whether the person is a student"
)
courses : list [ str ] = Field (
..., title = "List of courses the person is taking"
)
# Convert the schema to a JSON string
tool_schema = base_model_to_json ( Schema )
# Define the task to generate a person's information
task = (
"Generate a person's information based on the following schema:"
)
# Create an instance of the ToolAgent class
agent = ToolAgent (
name = "dolly-function-agent" ,
description = "Ana gent to create a child data" ,
model = model ,
tokenizer = tokenizer ,
json_schema = tool_schema ,
)
# Run the agent to generate the person's information
generated_data = agent . run ( task )
# Print the generated data
print ( f"Generated data: { generated_data } " )
与其他代理框架集成外部代理很容易与群相连。
步骤:
Agent
的新类.run(task: str) -> str
方法,该方法运行代理并返回响应。例如,这是如何从griptape创建代理的示例。
您可以通过从群中的Agent
类继承并覆盖run(task: str) -> str
方法来创建与Swarms框架集成的自定义griptape代理。
from swarms import (
Agent as SwarmsAgent ,
) # Import the base Agent class from Swarms
from griptape . structures import Agent as GriptapeAgent
from griptape . tools import (
WebScraperTool ,
FileManagerTool ,
PromptSummaryTool ,
)
# Create a custom agent class that inherits from SwarmsAgent
class GriptapeSwarmsAgent ( SwarmsAgent ):
def __init__ ( self , * args , ** kwargs ):
# Initialize the Griptape agent with its tools
self . agent = GriptapeAgent (
input = "Load {{ args[0] }}, summarize it, and store it in a file called {{ args[1] }}." ,
tools = [
WebScraperTool ( off_prompt = True ),
PromptSummaryTool ( off_prompt = True ),
FileManagerTool (),
],
* args ,
** kwargs ,
# Add additional settings
)
# Override the run method to take a task and execute it using the Griptape agent
def run ( self , task : str ) -> str :
# Extract URL and filename from task (you can modify this parsing based on task structure)
url , filename = task . split (
","
) # Example of splitting task string
# Execute the Griptape agent with the task inputs
result = self . agent . run ( url . strip (), filename . strip ())
# Return the final result as a string
return str ( result )
# Example usage:
griptape_swarms_agent = GriptapeSwarmsAgent ()
output = griptape_swarms_agent . run (
"https://griptape.ai, griptape.txt"
)
print ( output )
SwarmsAgent
类别继承并集成了griptape代理的自定义类。WebScraperTool
, PromptSummaryTool
, FileManagerTool
)允许网络刮擦,摘要和文件管理。现在,您可以轻松地将此自定义的Griptape代理插入Swarms框架中,并使用它来运行任务!
一群人是指一个以上的代理人共同努力以实现共同目标。这些代理可以是软件实体,例如相互交互以执行复杂任务的LLM。群的概念灵感来自天然系统,例如蚂蚁菌落或鸟类羊群,简单的个人行为导致了复杂的群体动态和解决问题的能力。
群架构旨在建立和管理群体内代理之间的通信。这些体系结构定义了代理如何交互,共享信息和协调其行动以实现所需结果。以下是群体体系结构的一些关键方面:
层次交流:在等级群中,交流从高级代理到低级代理。高级代理人充当协调员,分发任务和汇总结果。这种结构对于需要自上而下的控制和决策的任务有效。
并行通信:在平行群中,代理人独立运行并根据需要相互通信。该体系结构适用于可以同时处理而无需依赖的任务,从而可以更快地执行和可扩展性。
顺序通信:顺序群体以线性顺序处理任务,其中每个代理的输出成为下一个代理的输入。这样可以确保以正确的顺序处理具有依赖项的任务,从而保持工作流的完整性。
网格通信:在网格群中,代理人已完全连接,允许任何代理商与任何其他代理进行通信。该设置可提供高灵活性和冗余,使其非常适合需要动态交互的复杂系统。
联邦沟通:联合群体涉及多个独立群,通过共享信息和结果来协作。每个群都自主运行,但可以促进更大的任务,从而使分布式问题在不同的节点上解决。
Swarm体系结构利用这些通信模式来确保代理有效地一起工作,并适应当前任务的特定要求。通过定义清晰的通信协议和交互模型,Swarm Architectures可以使多个代理的无缝编排,从而增强了性能和解决问题的能力。
姓名 | 描述 | 代码链接 | 用例 |
---|---|---|---|
分层群 | 在层次结构中组织代理的系统,高级代理协调低级代理以实现复杂的任务。 | 代码链接 | 制造过程优化,多层次销售管理,医疗保健资源协调 |
代理重新排列 | 一个设置,代理根据任务要求和环境条件动态重新安排自己。 | 代码链接 | 自适应制造线,动态销售领土重新调整,灵活的医疗保健人员配备 |
并发工作流程 | 代理人同时执行不同的任务,协调以完成更大的目标。 | 代码链接 | 并发生产线,平行销售操作,同时进行患者护理过程 |
顺序协调 | 代理以特定顺序执行任务,其中一个任务的完成会触发下一个任务的开始。 | 代码链接 | 分步组件,顺序销售过程,逐步患者治疗工作流程 |
并行处理 | 代理商同时在任务的不同部分工作,以加快整个过程。 | 代码链接 | 制造,同时销售分析,并发医学测试中的并行数据处理 |
剂的混合物 | 一个异质的群,将具有不同功能的药物结合在一起以解决复杂问题。 | 代码链接 | 财务预测,复杂的解决问题需要多样化的技能 |
图形工作流程 | 代理商以定向的无环图(DAG)格式进行协作,以管理依赖关系和并行任务。 | 代码链接 | AI驱动的软件开发管道,复杂的项目管理 |
小组聊天 | 代理商进行类似聊天的互动以协作做出决策。 | 代码链接 | 实时协作决策,合同谈判 |
代理注册表 | 一个集中式注册表,该注册表被动态存储,检索和调用。 | 代码链接 | 动态代理管理,不断发展的建议引擎 |
电子表格群 | 管理任务,以结构化格式跟踪代理这样的输出,例如CSV文件。 | 代码链接 | 大规模营销分析,财务审核 |
森林群 | 一种群结构,该结构在树状的层次结构中组织代理,以进行复杂的决策过程。 | 代码链接 | 多阶段工作流程,分层增强学习 |
群路由器 | 根据任务要求和可用代理来路由和选择群体系结构。 | 代码链接 | 动态任务路由,自适应群体系结构,优化的代理分配 |
SequentialWorkflow
顺序工作流使您能够使用Agent
执行任务,然后将输出传递到下一个代理,然后继续执行,直到您指定了最大循环为止。
图LR
A [代理1] - > B [代理2]
B-> C [代理3]
C-> D [代理4]
D-> E [Max Loop]
e-> f [end]
方法 | 描述 | 参数 | 返回值 |
---|---|---|---|
__init__ | 初始化sequentionWorkFlow | agents :代理对象列表max_loops :最大迭代次数verbose :布尔值 | 没有任何 |
run | 执行工作流程 | input_data :第一个代理的初始输入 | 所有代理商处理后的最终输出 |
输入 | 类型 | 描述 |
---|---|---|
agents | 列表[代理] | 要顺序执行的代理对象列表 |
max_loops | int | 将重复整个序列的最多次数 |
verbose | 布尔 | 如果是真的,请在执行过程中打印详细信息 |
在所有代理都依次处理输入后, run
方法返回最终输出。
在此示例中,每个Agent
代表一个依次执行的任务。每个代理的输出将传递给序列的下一个代理,直到达到最大循环数为止。此工作流程对于需要以特定顺序执行一系列步骤的任务特别有用,例如数据处理管道或依赖上述步骤输出的复杂计算。
import os
from swarms import Agent , SequentialWorkflow
from swarm_models import OpenAIChat
# model = Anthropic(anthropic_api_key=os.getenv("ANTHROPIC_API_KEY"))
company = "Nvidia"
# Get the OpenAI API key from the environment variable
api_key = os . getenv ( "GROQ_API_KEY" )
# Model
model = OpenAIChat (
openai_api_base = "https://api.groq.com/openai/v1" ,
openai_api_key = api_key ,
model_name = "llama-3.1-70b-versatile" ,
temperature = 0.1 ,
)
# Initialize the Managing Director agent
managing_director = Agent (
agent_name = "Managing-Director" ,
system_prompt = f"""
As the Managing Director at Blackstone, your role is to oversee the entire investment analysis process for potential acquisitions.
Your responsibilities include:
1. Setting the overall strategy and direction for the analysis
2. Coordinating the efforts of the various team members and ensuring a comprehensive evaluation
3. Reviewing the findings and recommendations from each team member
4. Making the final decision on whether to proceed with the acquisition
For the current potential acquisition of { company } , direct the tasks for the team to thoroughly analyze all aspects of the company, including its financials, industry position, technology, market potential, and regulatory compliance. Provide guidance and feedback as needed to ensure a rigorous and unbiased assessment.
""" ,
llm = model ,
max_loops = 1 ,
dashboard = False ,
streaming_on = True ,
verbose = True ,
stopping_token = "<DONE>" ,
state_save_file_type = "json" ,
saved_state_path = "managing-director.json" ,
)
# Initialize the Vice President of Finance
vp_finance = Agent (
agent_name = "VP-Finance" ,
system_prompt = f"""
As the Vice President of Finance at Blackstone, your role is to lead the financial analysis of potential acquisitions.
For the current potential acquisition of { company } , your tasks include:
1. Conducting a thorough review of { company } ' financial statements, including income statements, balance sheets, and cash flow statements
2. Analyzing key financial metrics such as revenue growth, profitability margins, liquidity ratios, and debt levels
3. Assessing the company's historical financial performance and projecting future performance based on assumptions and market conditions
4. Identifying any financial risks or red flags that could impact the acquisition decision
5. Providing a detailed report on your findings and recommendations to the Managing Director
Be sure to consider factors such as the sustainability of { company } ' business model, the strength of its customer base, and its ability to generate consistent cash flows. Your analysis should be data-driven, objective, and aligned with Blackstone's investment criteria.
""" ,
llm = model ,
max_loops = 1 ,
dashboard = False ,
streaming_on = True ,
verbose = True ,
stopping_token = "<DONE>" ,
state_save_file_type = "json" ,
saved_state_path = "vp-finance.json" ,
)
# Initialize the Industry Analyst
industry_analyst = Agent (
agent_name = "Industry-Analyst" ,
system_prompt = f"""
As the Industry Analyst at Blackstone, your role is to provide in-depth research and analysis on the industries and markets relevant to potential acquisitions.
For the current potential acquisition of { company } , your tasks include:
1. Conducting a comprehensive analysis of the industrial robotics and automation solutions industry, including market size, growth rates, key trends, and future prospects
2. Identifying the major players in the industry and assessing their market share, competitive strengths and weaknesses, and strategic positioning
3. Evaluating { company } ' competitive position within the industry, including its market share, differentiation, and competitive advantages
4. Analyzing the key drivers and restraints for the industry, such as technological advancements, labor costs, regulatory changes, and economic conditions
5. Identifying potential risks and opportunities for { company } based on the industry analysis, such as disruptive technologies, emerging markets, or shifts in customer preferences
Your analysis should provide a clear and objective assessment of the attractiveness and future potential of the industrial robotics industry, as well as { company } ' positioning within it. Consider both short-term and long-term factors, and provide evidence-based insights to inform the investment decision.
""" ,
llm = model ,
max_loops = 1 ,
dashboard = False ,
streaming_on = True ,
verbose = True ,
stopping_token = "<DONE>" ,
state_save_file_type = "json" ,
saved_state_path = "industry-analyst.json" ,
)
# Initialize the Technology Expert
tech_expert = Agent (
agent_name = "Tech-Expert" ,
system_prompt = f"""
As the Technology Expert at Blackstone, your role is to assess the technological capabilities, competitive advantages, and potential risks of companies being considered for acquisition.
For the current potential acquisition of { company } , your tasks include:
1. Conducting a deep dive into { company } ' proprietary technologies, including its robotics platforms, automation software, and AI capabilities
2. Assessing the uniqueness, scalability, and defensibility of { company } ' technology stack and intellectual property
3. Comparing { company } ' technologies to those of its competitors and identifying any key differentiators or technology gaps
4. Evaluating { company } ' research and development capabilities, including its innovation pipeline, engineering talent, and R&D investments
5. Identifying any potential technology risks or disruptive threats that could impact { company } ' long-term competitiveness, such as emerging technologies or expiring patents
Your analysis should provide a comprehensive assessment of { company } ' technological strengths and weaknesses, as well as the sustainability of its competitive advantages. Consider both the current state of its technology and its future potential in light of industry trends and advancements.
""" ,
llm = model ,
max_loops = 1 ,
dashboard = False ,
streaming_on = True ,
verbose = True ,
stopping_token = "<DONE>" ,
state_save_file_type = "json" ,
saved_state_path = "tech-expert.json" ,
)
# Initialize the Market Researcher
market_researcher = Agent (
agent_name = "Market-Researcher" ,
system_prompt = f"""
As the Market Researcher at Blackstone, your role is to analyze the target company's customer base, market share, and growth potential to assess the commercial viability and attractiveness of the potential acquisition.
For the current potential acquisition of { company } , your tasks include:
1. Analyzing { company } ' current customer base, including customer segmentation, concentration risk, and retention rates
2. Assessing { company } ' market share within its target markets and identifying key factors driving its market position
3. Conducting a detailed market sizing and segmentation analysis for the industrial robotics and automation markets, including identifying high-growth segments and emerging opportunities
4. Evaluating the demand drivers and sales cycles for { company } ' products and services, and identifying any potential risks or limitations to adoption
5. Developing financial projections and estimates for { company } ' revenue growth potential based on the market analysis and assumptions around market share and penetration
Your analysis should provide a data-driven assessment of the market opportunity for { company } and the feasibility of achieving our investment return targets. Consider both bottom-up and top-down market perspectives, and identify any key sensitivities or assumptions in your projections.
""" ,
llm = model ,
max_loops = 1 ,
dashboard = False ,
streaming_on = True ,
verbose = True ,
stopping_token = "<DONE>" ,
state_save_file_type = "json" ,
saved_state_path = "market-researcher.json" ,
)
# Initialize the Regulatory Specialist
regulatory_specialist = Agent (
agent_name = "Regulatory-Specialist" ,
system_prompt = f"""
As the Regulatory Specialist at Blackstone, your role is to identify and assess any regulatory risks, compliance requirements, and potential legal liabilities associated with potential acquisitions.
For the current potential acquisition of { company } , your tasks include:
1. Identifying all relevant regulatory bodies and laws that govern the operations of { company } , including industry-specific regulations, labor laws, and environmental regulations
2. Reviewing { company } ' current compliance policies, procedures, and track record to identify any potential gaps or areas of non-compliance
3. Assessing the potential impact of any pending or proposed changes to relevant regulations that could affect { company } ' business or create additional compliance burdens
4. Evaluating the potential legal liabilities and risks associated with { company } ' products, services, and operations, including product liability, intellectual property, and customer contracts
5. Providing recommendations on any regulatory or legal due diligence steps that should be taken as part of the acquisition process, as well as any post-acquisition integration considerations
Your analysis should provide a comprehensive assessment of the regulatory and legal landscape surrounding { company } , and identify any material risks or potential deal-breakers. Consider both the current state and future outlook, and provide practical recommendations to mitigate identified risks.
""" ,
llm = model ,
max_loops = 1 ,
dashboard = False ,
streaming_on = True ,
verbose = True ,
stopping_token = "<DONE>" ,
state_save_file_type = "json" ,
saved_state_path = "regulatory-specialist.json" ,
)
# Create a list of agents
agents = [
managing_director ,
vp_finance ,
industry_analyst ,
tech_expert ,
market_researcher ,
regulatory_specialist ,
]
swarm = SequentialWorkflow (
name = "blackstone-private-equity-advisors" ,
agents = agents ,
)
print (
swarm . run (
"Analyze nvidia if it's a good deal to invest in now 10B"
)
)
AgentRearrange
由Einops和Einsum启发的AgentRearrange
编排技术使您可以定义和绘制各种代理之间的关系。它提供了一个有力的工具来协调复杂的工作流程,使您能够指定线性和顺序关系,例如a -> a1 -> a2 -> a3
或并发关系,其中第一个代理同时将消息发送给3个代理: a -> a1, a2, a3
。这种自定义级别允许创建高效和动态的工作流程,其中代理可以根据需要并行或顺序工作。 AgentRearrange
技术是群库中的宝贵补充,为代理的编排提供了新的灵活性和控制水平。有关更多详细信息和示例,请参阅官方文档。
方法 | 描述 | 参数 | 返回值 |
---|---|---|---|
__init__ | 初始化AgentRearrange | agents :代理对象列表flow :描述代理流的字符串 | 没有任何 |
run | 执行工作流程 | input_data :第一个代理的初始输入 | 所有代理商处理后的最终输出 |
输入 | 类型 | 描述 |
---|---|---|
agents | 列表[代理] | 要精心策划的代理对象列表 |
flow | str | 描述代理流动的字符串(例如,“ A-> B,C”) |
在所有代理商根据指定流量处理输入后, run
方法返回最终输出。
from swarms import Agent , AgentRearrange
from swarm_models import Anthropic
# Initialize the director agent
director = Agent (
agent_name = "Director" ,
system_prompt = "Directs the tasks for the workers" ,
llm = Anthropic (),
max_loops = 1 ,
dashboard = False ,
streaming_on = True ,
verbose = True ,
stopping_token = "<DONE>" ,
state_save_file_type = "json" ,
saved_state_path = "director.json" ,
)
# Initialize worker 1
worker1 = Agent (
agent_name = "Worker1" ,
system_prompt = "Generates a transcript for a youtube video on what swarms are" ,
llm = Anthropic (),
max_loops = 1 ,
dashboard = False ,
streaming_on = True ,
verbose = True ,
stopping_token = "<DONE>" ,
state_save_file_type = "json" ,
saved_state_path = "worker1.json" ,
)
# Initialize worker 2
worker2 = Agent (
agent_name = "Worker2" ,
system_prompt = "Summarizes the transcript generated by Worker1" ,
llm = Anthropic (),
max_loops = 1 ,
dashboard = False ,
streaming_on = True ,
verbose = True ,
stopping_token = "<DONE>" ,
state_save_file_type = "json" ,
saved_state_path = "worker2.json" ,
)
# Create a list of agents
agents = [ director , worker1 , worker2 ]
# Define the flow pattern
flow = "Director -> Worker1 -> Worker2"
# Using AgentRearrange class
agent_system = AgentRearrange ( agents = agents , flow = flow )
output = agent_system . run (
"Create a format to express and communicate swarms of llms in a structured manner for youtube"
)
print ( output )
HierarhicalSwarm
即将推出...
GraphSwarm
GraphSwarm
是一个工作流管理系统,旨在通过利用图理论的力量来协调复杂的任务。它可以创建有向的无环图(DAG)来建模任务和代理之间的依赖项。这允许有效的任务分配,执行和监视。
这是GraphSwarm
工作原理的细分:
GraphSwarm
工作流程由节点组成,可以是代理或任务。代理负责执行任务,任务代表需要执行的特定操作。在示例中,创建了两个代理( agent1
和agent2
)和一个任务( task1
)。agent1
和agent2
连接到task1
的边缘,表明两个代理都能执行task1
。GraphSwarm
工作流程需要定义入口点(工作流程开始的地方)和终点(工作流程结束)。在此示例中, agent1
和agent2
设置为入口点,将task1
设置为终点。GraphSwarm
提供了一个可视化功能,可以图形地表示工作流程。这可以轻松理解和调试工作流程结构。GraphSwarm
工作流是通过从入口点到终点的遍历图形来执行的。在这种情况下, agent1
和agent2
都同时执行task1
,并收集结果。task1
的结果是“任务完成”。 GraphSwarm
提供了多种好处,包括:
通过利用GraphSwarm
,可以有效地管理复杂的工作流程,并且可以以协调和可扩展的方式执行任务。
方法 | 描述 | 参数 | 返回值 |
---|---|---|---|
add_node | 将节点添加到图表 | node :节点对象 | 没有任何 |
add_edge | 在图表中添加边缘 | edge :边缘对象 | 没有任何 |
set_entry_points | 设置图表的入口点 | entry_points :节点ID列表 | 没有任何 |
set_end_points | 设置图的终点 | end_points :节点ID列表 | 没有任何 |
visualize | 生成图表的视觉表示 | 没有任何 | 图形的字符串表示形式 |
run | 执行工作流程 | 没有任何 | 执行结果词典 |
输入 | 类型 | 描述 |
---|---|---|
Node | 目的 | 表示图中的节点(代理或任务) |
Edge | 目的 | 表示连接两个节点的边缘 |
entry_points | 列表[Str] | 工作流启动的节点ID列表 |
end_points | 列表[Str] | 工作流程结束的节点ID列表 |
该run
方法返回包含图中所有节点的执行结果的字典。
import os
from dotenv import load_dotenv
from swarms import Agent , Edge , GraphWorkflow , Node , NodeType
from swarm_models import OpenAIChat
load_dotenv ()
api_key = os . environ . get ( "OPENAI_API_KEY" )
llm = OpenAIChat (
temperature = 0.5 , openai_api_key = api_key , max_tokens = 4000
)
agent1 = Agent ( llm = llm , max_loops = 1 , autosave = True , dashboard = True )
agent2 = Agent ( llm = llm , max_loops = 1 , autosave = True , dashboard = True )
def sample_task ():
print ( "Running sample task" )
return "Task completed"
wf_graph = GraphWorkflow ()
wf_graph . add_node ( Node ( id = "agent1" , type = NodeType . AGENT , agent = agent1 ))
wf_graph . add_node ( Node ( id = "agent2" , type = NodeType . AGENT , agent = agent2 ))
wf_graph . add_node (
Node ( id = "task1" , type = NodeType . TASK , callable = sample_task )
)
wf_graph . add_edge ( Edge ( source = "agent1" , target = "task1" ))
wf_graph . add_edge ( Edge ( source = "agent2" , target = "task1" ))
wf_graph . set_entry_points ([ "agent1" , "agent2" ])
wf_graph . set_end_points ([ "task1" ])
print ( wf_graph . visualize ())
# Run the workflow
results = wf_graph . run ()
print ( "Execution results:" , results )
MixtureOfAgents
这是基于论文的实施:“代理的混合物增强了大型语言模型功能”,可通过https://arxiv.org/abs/2406.04692获得。它在Alpacaeval 2.0,MT板凳和烧瓶上实现了最新的(SOTA)结果,超过了GPT-4 Omni。该体系结构特别适合需要并行化的任务,然后在另一个循环中进行顺序处理。
方法 | 描述 | 参数 | 返回值 |
---|---|---|---|
__init__ | 初始化混合物 | name :群的名称agents :代理对象列表layers :处理层的数量final_agent :最终处理的代理 | 没有任何 |
run | 执行群 | task :群的输入任务 | 所有代理商处理后的最终输出 |
输入 | 类型 | 描述 |
---|---|---|
name | str | 群的名字 |
agents | 列表[代理] | 群中要使用的代理对象列表 |
layers | int | 群中的加工层数量 |
final_agent | 代理人 | 负责最终处理的代理商 |
在所有代理商都根据指定层和最终代理处理输入后, run
方法返回最终输出。
import os
from swarm_models import OpenAIChat
from swarms import Agent , MixtureOfAgents
api_key = os . getenv ( "OPENAI_API_KEY" )
# Create individual agents with the OpenAIChat model
model = OpenAIChat (
openai_api_key = api_key , model_name = "gpt-4" , temperature = 0.1
)
# Agent 1: Financial Statement Analyzer
agent1 = Agent (
agent_name = "FinancialStatementAnalyzer" ,
llm = model ,
system_prompt = """You are a Financial Statement Analyzer specializing in 10-K SEC reports. Your primary focus is on analyzing the financial statements, including the balance sheet, income statement, and cash flow statement.
Key responsibilities:
1. Identify and explain significant changes in financial metrics year-over-year.
2. Calculate and interpret key financial ratios (e.g., liquidity ratios, profitability ratios, leverage ratios).
3. Analyze trends in revenue, expenses, and profitability.
4. Highlight any red flags or areas of concern in the financial statements.
5. Provide insights on the company's financial health and performance based on the data.
When analyzing, consider industry standards and compare the company's performance to its peers when possible. Your analysis should be thorough, data-driven, and provide actionable insights for investors and stakeholders.""" ,
max_loops = 1 ,
autosave = True ,
dashboard = False ,
verbose = True ,
dynamic_temperature_enabled = True ,
saved_state_path = "financial_statement_analyzer_state.json" ,
user_name = "swarms_corp" ,
retry_attempts = 1 ,
context_length = 200000 ,
return_step_meta = False ,
)
# Agent 2: Risk Assessment Specialist
agent2 = Agent (
agent_name = "RiskAssessmentSpecialist" ,
llm = model ,
system_prompt = """You are a Risk Assessment Specialist focusing on 10-K SEC reports. Your primary role is to identify, analyze, and evaluate potential risks disclosed in the report.
Key responsibilities:
1. Thoroughly review the "Risk Factors" section of the 10-K report.
2. Identify and categorize different types of risks (e.g., operational, financial, legal, market, technological).
3. Assess the potential impact and likelihood of each identified risk.
4. Analyze the company's risk mitigation strategies and their effectiveness.
5. Identify any emerging risks not explicitly mentioned but implied by the company's operations or market conditions.
6. Compare the company's risk profile with industry peers when possible.
Your analysis should provide a comprehensive overview of the company's risk landscape, helping stakeholders understand the potential challenges and uncertainties facing the business. Be sure to highlight any critical risks that could significantly impact the company's future performance or viability.""" ,
max_loops = 1 ,
autosave = True ,
dashboard = False ,
verbose = True ,
dynamic_temperature_enabled = True ,
saved_state_path = "risk_assessment_specialist_state.json" ,
user_name = "swarms_corp" ,
retry_attempts = 1 ,
context_length = 200000 ,
return_step_meta = False ,
)
# Agent 3: Business Strategy Evaluator
agent3 = Agent (
agent_name = "BusinessStrategyEvaluator" ,
llm = model ,
system_prompt = """You are a Business Strategy Evaluator specializing in analyzing 10-K SEC reports. Your focus is on assessing the company's overall strategy, market position, and future outlook.
Key responsibilities:
1. Analyze the company's business description, market opportunities, and competitive landscape.
2. Evaluate the company's products or services, including their market share and growth potential.
3. Assess the effectiveness of the company's current business strategy and its alignment with market trends.
4. Identify key performance indicators (KPIs) and evaluate the company's performance against these metrics.
5. Analyze management's discussion and analysis (MD&A) section to understand their perspective on the business.
6. Identify potential growth opportunities or areas for improvement in the company's strategy.
7. Compare the company's strategic position with key competitors in the industry.
Your analysis should provide insights into the company's strategic direction, its ability to create value, and its potential for future growth. Consider both short-term and long-term perspectives in your evaluation.""" ,
max_loops = 1 ,
autosave = True ,
dashboard = False ,
verbose = True ,
dynamic_temperature_enabled = True ,
saved_state_path = "business_strategy_evaluator_state.json" ,
user_name = "swarms_corp" ,
retry_attempts = 1 ,
context_length = 200000 ,
return_step_meta = False ,
)
# Aggregator Agent
aggregator_agent = Agent (
agent_name = "10KReportAggregator" ,
llm = model ,
system_prompt = """You are the 10-K Report Aggregator, responsible for synthesizing and summarizing the analyses provided by the Financial Statement Analyzer, Risk Assessment Specialist, and Business Strategy Evaluator. Your goal is to create a comprehensive, coherent, and insightful summary of the 10-K SEC report.
Key responsibilities:
1. Integrate the financial analysis, risk assessment, and business strategy evaluation into a unified report.
2. Identify and highlight the most critical information and insights from each specialist's analysis.
3. Reconcile any conflicting information or interpretations among the specialists' reports.
4. Provide a balanced view of the company's overall performance, risks, and strategic position.
5. Summarize key findings and their potential implications for investors and stakeholders.
6. Identify any areas where further investigation or clarification may be needed.
Your final report should be well-structured, easy to understand, and provide a holistic view of the company based on the 10-K SEC report. It should offer valuable insights for decision-making while acknowledging any limitations or uncertainties in the analysis.""" ,
max_loops = 1 ,
autosave = True ,
dashboard = False ,
verbose = True ,
dynamic_temperature_enabled = True ,
saved_state_path = "10k_report_aggregator_state.json" ,
user_name = "swarms_corp" ,
retry_attempts = 1 ,
context_length = 200000 ,
return_step_meta = False ,
)
# Create the Mixture of Agents class
moa = MixtureOfAgents (
agents = [ agent1 , agent2 , agent3 ],
aggregator_agent = aggregator_agent ,
aggregator_system_prompt = """As the 10-K Report Aggregator, your task is to synthesize the analyses provided by the Financial Statement Analyzer, Risk Assessment Specialist, and Business Strategy Evaluator into a comprehensive and coherent report.
Follow these steps:
1. Review and summarize the key points from each specialist's analysis.
2. Identify common themes and insights across the analyses.
3. Highlight any discrepancies or conflicting interpretations, if present.
4. Provide a balanced and integrated view of the company's financial health, risks, and strategic position.
5. Summarize the most critical findings and their potential impact on investors and stakeholders.
6. Suggest areas for further investigation or monitoring, if applicable.
Your final output should be a well-structured, insightful report that offers a holistic view of the company based on the 10-K SEC report analysis.""" ,
layers = 3 ,
)
# Example usage
company_name = "NVIDIA"
out = moa . run (
f"Analyze the latest 10-K SEC report for { company_name } . Provide a comprehensive summary of the company's financial performance, risk profile, and business strategy."
)
print ( out )
SpreadSheetSwarm
设计用于同时管理和监督成千上万的代理商,促进了一种一对多的方法,用于有效的任务处理和输出分析。
方法 | 描述 | 参数 | 返回值 |
---|---|---|---|
__init__ | 初始化电子表格工程 | name :群的名称description :群的描述agents :代理对象列表autosave_on :布尔值启用AutoSavesave_file_path :保存电子表格的路径run_all_agents :布尔值是否运行所有代理max_loops :最大循环数量 | 没有任何 |
run | 执行群 | task :群的输入任务 | 代理输出字典 |
输入 | 类型 | 描述 |
---|---|---|
name | str | 群的名字 |
description | str | 蜂群目的的描述 |
agents | 列表[代理] | 群中要使用的代理对象列表 |
autosave_on | 布尔 | 启用自动储备结果 |
save_file_path | str | 保存电子表格结果的途径 |
run_all_agents | 布尔 | 是根据相关性运行所有代理还是根据相关性进行选择 |
max_loops | int | 最大处理循环数 |
run
方法返回包含每个处理任务的代理的输出的字典。
在此处了解更多文档:
import os
from swarms import Agent
from swarm_models import OpenAIChat
from swarms . structs . spreadsheet_swarm import SpreadSheetSwarm
# Define custom system prompts for each social media platform
TWITTER_AGENT_SYS_PROMPT = """
You are a Twitter marketing expert specializing in real estate. Your task is to create engaging, concise tweets to promote properties, analyze trends to maximize engagement, and use appropriate hashtags and timing to reach potential buyers.
"""
INSTAGRAM_AGENT_SYS_PROMPT = """
You are an Instagram marketing expert focusing on real estate. Your task is to create visually appealing posts with engaging captions and hashtags to showcase properties, targeting specific demographics interested in real estate.
"""
FACEBOOK_AGENT_SYS_PROMPT = """
You are a Facebook marketing expert for real estate. Your task is to craft posts optimized for engagement and reach on Facebook, including using images, links, and targeted messaging to attract potential property buyers.
"""
LINKEDIN_AGENT_SYS_PROMPT = """
You are a LinkedIn marketing expert for the real estate industry. Your task is to create professional and informative posts, highlighting property features, market trends, and investment opportunities, tailored to professionals and investors.
"""
EMAIL_AGENT_SYS_PROMPT = """
You are an Email marketing expert specializing in real estate. Your task is to write compelling email campaigns to promote properties, focusing on personalization, subject lines, and effective call-to-action strategies to drive conversions.
"""
# Example usage:
api_key = os . getenv ( "OPENAI_API_KEY" )
# Model
model = OpenAIChat (
openai_api_key = api_key , model_name = "gpt-4o-mini" , temperature = 0.1
)
# Initialize your agents for different social media platforms
agents = [
Agent (
agent_name = "Twitter-RealEstate-Agent" ,
system_prompt = TWITTER_AGENT_SYS_PROMPT ,
llm = model ,
max_loops = 1 ,
dynamic_temperature_enabled = True ,
saved_state_path = "twitter_realestate_agent.json" ,
user_name = "realestate_swarms" ,
retry_attempts = 1 ,
),
Agent (
agent_name = "Instagram-RealEstate-Agent" ,
system_prompt = INSTAGRAM_AGENT_SYS_PROMPT ,
llm = model ,
max_loops = 1 ,
dynamic_temperature_enabled = True ,
saved_state_path = "instagram_realestate_agent.json" ,
user_name = "realestate_swarms" ,
retry_attempts = 1 ,
),
Agent (
agent_name = "Facebook-RealEstate-Agent" ,
system_prompt = FACEBOOK_AGENT_SYS_PROMPT ,
llm = model ,
max_loops = 1 ,
dynamic_temperature_enabled = True ,
saved_state_path = "facebook_realestate_agent.json" ,
user_name = "realestate_swarms" ,
retry_attempts = 1 ,
),
Agent (
agent_name = "LinkedIn-RealEstate-Agent" ,
system_prompt = LINKEDIN_AGENT_SYS_PROMPT ,
llm = model ,
max_loops = 1 ,
dynamic_temperature_enabled = True ,
saved_state_path = "linkedin_realestate_agent.json" ,
user_name = "realestate_swarms" ,
retry_attempts = 1 ,
),
Agent (
agent_name = "Email-RealEstate-Agent" ,
system_prompt = EMAIL_AGENT_SYS_PROMPT ,
llm = model ,
max_loops = 1 ,
dynamic_temperature_enabled = True ,
saved_state_path = "email_realestate_agent.json" ,
user_name = "realestate_swarms" ,
retry_attempts = 1 ,
),
]
# Create a Swarm with the list of agents
swarm = SpreadSheetSwarm (
name = "Real-Estate-Marketing-Swarm" ,
description = "A swarm that processes real estate marketing tasks using multiple agents on different threads." ,
agents = agents ,
autosave_on = True ,
save_file_path = "real_estate_marketing_spreadsheet.csv" ,
run_all_agents = False ,
max_loops = 2 ,
)
# Run the swarm
swarm . run (
task = """
Create posts to promote luxury properties in North Texas, highlighting their features, location, and investment potential. Include relevant hashtags, images, and engaging captions.
Property:
$10,399,000
1609 Meandering Way Dr, Roanoke, TX 76262
Link to the property: https://www.zillow.com/homedetails/1609-Meandering-Way-Dr-Roanoke-TX-76262/308879785_zpid/
What's special
Unveiling a new custom estate in the prestigious gated Quail Hollow Estates! This impeccable residence, set on a sprawling acre surrounded by majestic trees, features a gourmet kitchen equipped with top-tier Subzero and Wolf appliances. European soft-close cabinets and drawers, paired with a double Cambria Quartzite island, perfect for family gatherings. The first-floor game room&media room add extra layers of entertainment. Step into the outdoor sanctuary, where a sparkling pool and spa, and sunken fire pit, beckon leisure. The lavish master suite features stunning marble accents, custom his&her closets, and a secure storm shelter.Throughout the home,indulge in the visual charm of designer lighting and wallpaper, elevating every space. The property is complete with a 6-car garage and a sports court, catering to the preferences of basketball or pickleball enthusiasts. This residence seamlessly combines luxury&recreational amenities, making it a must-see for the discerning buyer.
Facts & features
Interior
Bedrooms & bathrooms
Bedrooms: 6
Bathrooms: 8
Full bathrooms: 7
1/2 bathrooms: 1
Primary bedroom
Bedroom
Features: Built-in Features, En Suite Bathroom, Walk-In Closet(s)
Cooling
Central Air, Ceiling Fan(s), Electric
Appliances
Included: Built-In Gas Range, Built-In Refrigerator, Double Oven, Dishwasher, Gas Cooktop, Disposal, Ice Maker, Microwave, Range, Refrigerator, Some Commercial Grade, Vented Exhaust Fan, Warming Drawer, Wine Cooler
Features
Wet Bar, Built-in Features, Dry Bar, Decorative/Designer Lighting Fixtures, Eat-in Kitchen, Elevator, High Speed Internet, Kitchen Island, Pantry, Smart Home, Cable TV, Walk-In Closet(s), Wired for Sound
Flooring: Hardwood
Has basement: No
Number of fireplaces: 3
Fireplace features: Living Room, Primary Bedroom
Interior area
Total interior livable area: 10,466 sqft
Total spaces: 12
Parking features: Additional Parking
Attached garage spaces: 6
Carport spaces: 6
Features
Levels: Two
Stories: 2
Patio & porch: Covered
Exterior features: Built-in Barbecue, Barbecue, Gas Grill, Lighting, Outdoor Grill, Outdoor Living Area, Private Yard, Sport Court, Fire Pit
Pool features: Heated, In Ground, Pool, Pool/Spa Combo
Fencing: Wrought Iron
Lot
Size: 1.05 Acres
Details
Additional structures: Outdoor Kitchen
Parcel number: 42232692
Special conditions: Standard
Construction
Type & style
Home type: SingleFamily
Architectural style: Contemporary/Modern,Detached
Property subtype: Single Family Residence
"""
)
ForestSwarm
ForestSwarm
体系结构旨在通过动态从树木集合中动态选择最合适的代理,供有效的任务分配。这是通过异步任务处理来实现的,其中代理是根据其与手头任务的相关性选择的。相关性是通过计算与每个代理相关的系统提示与任务本身中存在的关键字之间的相似性来确定的。有关对ForestSwarm
工作原理的更深入的了解,请参阅官方文件。
方法 | 描述 | 参数 | 返回值 |
---|---|---|---|
__init__ | 初始化Forestswarm | trees :树对象列表 | 没有任何 |
run | 执行ForestSwarm | task :群的输入任务 | 最相关代理的输出 |
输入 | 类型 | 描述 |
---|---|---|
trees | 列表[树] | 树对象列表,每个对象都包含treagent对象 |
task | str | Forestswarm要处理的任务 |
run
方法从基于输入任务选择的最相关代理返回输出。
from swarms . structs . tree_swarm import TreeAgent , Tree , ForestSwarm
# Create agents with varying system prompts and dynamically generated distances/keywords
agents_tree1 = [
TreeAgent (
system_prompt = """You are an expert Stock Analysis Agent with deep knowledge of financial markets, technical analysis, and fundamental analysis. Your primary function is to analyze stock performance, market trends, and provide actionable insights. When analyzing stocks:
1. Always start with a brief overview of the current market conditions.
2. Use a combination of technical indicators (e.g., moving averages, RSI, MACD) and fundamental metrics (e.g., P/E ratio, EPS growth, debt-to-equity).
3. Consider both short-term and long-term perspectives in your analysis.
4. Provide clear buy, hold, or sell recommendations with supporting rationale.
5. Highlight potential risks and opportunities specific to each stock or sector.
6. Use bullet points for clarity when listing key points or metrics.
7. If relevant, compare the stock to its peers or sector benchmarks.
Remember to maintain objectivity and base your analysis on factual data. If asked about future performance, always include a disclaimer about market unpredictability. Your goal is to provide comprehensive, accurate, and actionable stock analysis to inform investment decisions.""" ,
agent_name = "Stock Analysis Agent" ,
),
TreeAgent (
system_prompt = """You are a highly skilled Financial Planning Agent, specializing in personal and corporate financial strategies. Your role is to provide comprehensive financial advice tailored to each client's unique situation. When creating financial plans:
1. Begin by asking key questions about the client's financial goals, current situation, and risk tolerance.
2. Develop a holistic view of the client's finances, including income, expenses, assets, and liabilities.
3. Create detailed, step-by-step action plans to achieve financial goals.
4. Provide specific recommendations for budgeting, saving, and investing.
5. Consider tax implications and suggest tax-efficient strategies.
6. Incorporate risk management and insurance planning into your recommendations.
7. Use charts or tables to illustrate financial projections and scenarios.
8. Regularly suggest reviewing and adjusting the plan as circumstances change.
Always prioritize the client's best interests and adhere to fiduciary standards. Explain complex financial concepts in simple terms, and be prepared to justify your recommendations with data and reasoning.""" ,
agent_name = "Financial Planning Agent" ,
),
TreeAgent (
agent_name = "Retirement Strategy Agent" ,
system_prompt = """You are a specialized Retirement Strategy Agent, focused on helping individuals and couples plan for a secure and comfortable retirement. Your expertise covers various aspects of retirement planning, including savings strategies, investment allocation, and income generation during retirement. When developing retirement strategies:
1. Start by assessing the client's current age, desired retirement age, and expected lifespan.
2. Calculate retirement savings goals based on desired lifestyle and projected expenses.
3. Analyze current retirement accounts (e.g., 401(k), IRA) and suggest optimization strategies.
4. Provide guidance on asset allocation and rebalancing as retirement approaches.
5. Explain various retirement income sources (e.g., Social Security, pensions, annuities).
6. Discuss healthcare costs and long-term care planning.
7. Offer strategies for tax-efficient withdrawals during retirement.
8. Consider estate planning and legacy goals in your recommendations.
Use Monte Carlo simulations or other statistical tools to illustrate the probability of retirement success. Always emphasize the importance of starting early and the power of compound interest. Be prepared to adjust strategies based on changing market conditions or personal circumstances.""" ,
),
]
agents_tree2 = [
TreeAgent (
system_prompt = """You are a knowledgeable Tax Filing Agent, specializing in personal and business tax preparation and strategy. Your role is to ensure accurate tax filings while maximizing legitimate deductions and credits. When assisting with tax matters:
1. Start by gathering all necessary financial information and documents.
2. Stay up-to-date with the latest tax laws and regulations, including state-specific rules.
3. Identify all applicable deductions and credits based on the client's situation.
4. Provide step-by-step guidance for completing tax forms accurately.
5. Explain tax implications of various financial decisions.
6. Offer strategies for tax-efficient investing and income management.
7. Assist with estimated tax payments for self-employed individuals or businesses.
8. Advise on record-keeping practices for tax purposes.
Always prioritize compliance with tax laws while ethically minimizing tax liability. Be prepared to explain complex tax concepts in simple terms and provide rationale for your recommendations. If a situation is beyond your expertise, advise consulting a certified tax professional or IRS resources.""" ,
agent_name = "Tax Filing Agent" ,
),
TreeAgent (
system_prompt = """You are a sophisticated Investment Strategy Agent, adept at creating and managing investment portfolios to meet diverse financial goals. Your expertise covers various asset classes, market analysis, and risk management techniques. When developing investment strategies:
1. Begin by assessing the client's investment goals, time horizon, and risk tolerance.
2. Provide a comprehensive overview of different asset classes and their risk-return profiles.
3. Create diversified portfolio recommendations based on modern portfolio theory.
4. Explain the benefits and risks of various investment vehicles (e.g., stocks, bonds, ETFs, mutual funds).
5. Incorporate both passive and active investment strategies as appropriate.
6. Discuss the importance of regular portfolio rebalancing and provide a rebalancing strategy.
7. Consider tax implications of investment decisions and suggest tax-efficient strategies.
8. Provide ongoing market analysis and suggest portfolio adjustments as needed.
Use historical data and forward-looking projections to illustrate potential outcomes. Always emphasize the importance of long-term investing and the risks of market timing. Be prepared to explain complex investment concepts in clear, accessible language.""" ,
agent_name = "Investment Strategy Agent" ,
),
TreeAgent (
system_prompt = """You are a specialized ROTH IRA Agent, focusing on the intricacies of Roth Individual Retirement Accounts. Your role is to provide expert guidance on Roth IRA rules, benefits, and strategies to maximize their value for retirement planning. When advising on Roth IRAs:
1. Explain the fundamental differences between traditional and Roth IRAs.
2. Clarify Roth IRA contribution limits and income eligibility requirements.
3. Discuss the tax advantages of Roth IRAs, including tax-free growth and withdrawals.
4. Provide guidance on Roth IRA conversion strategies and their tax implications.
5. Explain the five-year rule and how it affects Roth IRA withdrawals.
6. Offer strategies for maximizing Roth IRA contributions, such as the backdoor Roth IRA method.
7. Discuss how Roth IRAs fit into overall retirement and estate planning strategies.
8. Provide insights on investment choices within a Roth IRA to maximize tax-free growth.
Always stay current with IRS regulations regarding Roth IRAs. Be prepared to provide numerical examples to illustrate the long-term benefits of Roth IRAs. Emphasize the importance of considering individual financial situations when making Roth IRA decisions.""" ,
agent_name = "ROTH IRA Agent" ,
),
]
# Create trees
tree1 = Tree ( tree_name = "Financial Tree" , agents = agents_tree1 )
tree2 = Tree ( tree_name = "Investment Tree" , agents = agents_tree2 )
# Create the ForestSwarm
multi_agent_structure = ForestSwarm ( trees = [ tree1 , tree2 ])
# Run a task
task = "What are the best platforms to do our taxes on"
output = multi_agent_structure . run ( task )
print ( output )
SwarmRouter
SwarmRouter
类是一个灵活的路由系统,旨在管理不同类型的群以执行任务。它提供了一个统一的接口,可以与各种群类型进行交互,包括AgentRearrange
, MixtureOfAgents
, SpreadSheetSwarm
, SequentialWorkflow
和ConcurrentWorkflow
。随着新体系结构的发展,我们将在这里不断添加越来越多的群架构。
name
(str):swarmrouter实例的名称。description
(str):Swarmrouter实例的描述。max_loops
(INT):最大循环数量。agents
(列表[代理]):群中要使用的代理对象列表。swarm_type
(swarmType):要使用的群体类型。swarm
(union [agentRearrange,混合物代码,电子表格swarm,sequentionworkflow,conturrentworkflow]):实例化的群体。logs
(列表[swarmlog]):操作过程中捕获的日志条目列表。 __init__(self, name: str, description: str, max_loops: int, agents: List[Agent], swarm_type: SwarmType, *args, **kwargs)
:初始化swarmrouter。_create_swarm(self, *args, **kwargs)
:创建并返回指定的群体类型。_log(self, level: str, message: str, task: str, metadata: Dict[str, Any])
:创建一个日志条目并将其添加到日志列表中。run(self, task: str, *args, **kwargs)
:在选定的群体上运行指定的任务。get_logs(self)
:检索所有记录的条目。 import os
from dotenv import load_dotenv
from swarms import Agent
from swarm_models import OpenAIChat
from swarms . structs . swarm_router import SwarmRouter , SwarmType
load_dotenv ()
# Get the OpenAI API key from the environment variable
api_key = os . getenv ( "GROQ_API_KEY" )
# Model
model = OpenAIChat (
openai_api_base = "https://api.groq.com/openai/v1" ,
openai_api_key = api_key ,
model_name = "llama-3.1-70b-versatile" ,
temperature = 0.1 ,
)
# Define specialized system prompts for each agent
DATA_EXTRACTOR_PROMPT = """You are a highly specialized private equity agent focused on data extraction from various documents. Your expertise includes:
1. Extracting key financial metrics (revenue, EBITDA, growth rates, etc.) from financial statements and reports
2. Identifying and extracting important contract terms from legal documents
3. Pulling out relevant market data from industry reports and analyses
4. Extracting operational KPIs from management presentations and internal reports
5. Identifying and extracting key personnel information from organizational charts and bios
Provide accurate, structured data extracted from various document types to support investment analysis."""
SUMMARIZER_PROMPT = """You are an expert private equity agent specializing in summarizing complex documents. Your core competencies include:
1. Distilling lengthy financial reports into concise executive summaries
2. Summarizing legal documents, highlighting key terms and potential risks
3. Condensing industry reports to capture essential market trends and competitive dynamics
4. Summarizing management presentations to highlight key strategic initiatives and projections
5. Creating brief overviews of technical documents, emphasizing critical points for non-technical stakeholders
Deliver clear, concise summaries that capture the essence of various documents while highlighting information crucial for investment decisions."""
FINANCIAL_ANALYST_PROMPT = """You are a specialized private equity agent focused on financial analysis. Your key responsibilities include:
1. Analyzing historical financial statements to identify trends and potential issues
2. Evaluating the quality of earnings and potential adjustments to EBITDA
3. Assessing working capital requirements and cash flow dynamics
4. Analyzing capital structure and debt capacity
5. Evaluating financial projections and underlying assumptions
Provide thorough, insightful financial analysis to inform investment decisions and valuation."""
MARKET_ANALYST_PROMPT = """You are a highly skilled private equity agent specializing in market analysis. Your expertise covers:
1. Analyzing industry trends, growth drivers, and potential disruptors
2. Evaluating competitive landscape and market positioning
3. Assessing market size, segmentation, and growth potential
4. Analyzing customer dynamics, including concentration and loyalty
5. Identifying potential regulatory or macroeconomic impacts on the market
Deliver comprehensive market analysis to assess the attractiveness and risks of potential investments."""
OPERATIONAL_ANALYST_PROMPT = """You are an expert private equity agent focused on operational analysis. Your core competencies include:
1. Evaluating operational efficiency and identifying improvement opportunities
2. Analyzing supply chain and procurement processes
3. Assessing sales and marketing effectiveness
4. Evaluating IT systems and digital capabilities
5. Identifying potential synergies in merger or add-on acquisition scenarios
Provide detailed operational analysis to uncover value creation opportunities and potential risks."""
# Initialize specialized agents
data_extractor_agent = Agent (
agent_name = "Data-Extractor" ,
system_prompt = DATA_EXTRACTOR_PROMPT ,
llm = model ,
max_loops = 1 ,
autosave = True ,
verbose = True ,
dynamic_temperature_enabled = True ,
saved_state_path = "data_extractor_agent.json" ,
user_name = "pe_firm" ,
retry_attempts = 1 ,
context_length = 200000 ,
output_type = "string" ,
)
summarizer_agent = Agent (
agent_name = "Document-Summarizer" ,
system_prompt = SUMMARIZER_PROMPT ,
llm = model ,
max_loops = 1 ,
autosave = True ,
verbose = True ,
dynamic_temperature_enabled = True ,
saved_state_path = "summarizer_agent.json" ,
user_name = "pe_firm" ,
retry_attempts = 1 ,
context_length = 200000 ,
output_type = "string" ,
)
financial_analyst_agent = Agent (
agent_name = "Financial-Analyst" ,
system_prompt = FINANCIAL_ANALYST_PROMPT ,
llm = model ,
max_loops = 1 ,
autosave = True ,
verbose = True ,
dynamic_temperature_enabled = True ,
saved_state_path = "financial_analyst_agent.json" ,
user_name = "pe_firm" ,
retry_attempts = 1 ,
context_length = 200000 ,
output_type = "string" ,
)
market_analyst_agent = Agent (
agent_name = "Market-Analyst" ,
system_prompt = MARKET_ANALYST_PROMPT ,
llm = model ,
max_loops = 1 ,
autosave = True ,
verbose = True ,
dynamic_temperature_enabled = True ,
saved_state_path = "market_analyst_agent.json" ,
user_name = "pe_firm" ,
retry_attempts = 1 ,
context_length = 200000 ,
output_type = "string" ,
)
operational_analyst_agent = Agent (
agent_name = "Operational-Analyst" ,
system_prompt = OPERATIONAL_ANALYST_PROMPT ,
llm = model ,
max_loops = 1 ,
autosave = True ,
verbose = True ,
dynamic_temperature_enabled = True ,
saved_state_path = "operational_analyst_agent.json" ,
user_name = "pe_firm" ,
retry_attempts = 1 ,
context_length = 200000 ,
output_type = "string" ,
)
# Initialize the SwarmRouter
router = SwarmRouter (
name = "pe-document-analysis-swarm" ,
description = "Analyze documents for private equity due diligence and investment decision-making" ,
max_loops = 1 ,
agents = [
data_extractor_agent ,
summarizer_agent ,
financial_analyst_agent ,
market_analyst_agent ,
operational_analyst_agent ,
],
swarm_type = "ConcurrentWorkflow" , # or "SequentialWorkflow" or "ConcurrentWorkflow" or
)
# Example usage
if __name__ == "__main__" :
# Run a comprehensive private equity document analysis task
result = router . run (
"Where is the best place to find template term sheets for series A startups. Provide links and references"
)
print ( result )
# Retrieve and print logs
for log in router . get_logs ():
print ( f" { log . timestamp } - { log . level } : { log . message } " )
您可以创建具有不同类型类型的多个群体实例:
sequential_router = SwarmRouter (
name = "SequentialRouter" ,
agents = [
data_extractor_agent ,
summarizer_agent ,
financial_analyst_agent ,
market_analyst_agent ,
operational_analyst_agent ,
],
swarm_type = SwarmType . SequentialWorkflow
)
concurrent_router = SwarmRouter (
name = "ConcurrentRouter" ,
agents = [
data_extractor_agent ,
summarizer_agent ,
financial_analyst_agent ,
market_analyst_agent ,
operational_analyst_agent ,
],
swarm_type = SwarmType . ConcurrentWorkflow
)
用例:为复杂的多步骤任务优化代理顺序。
rearrange_router = SwarmRouter (
name = "TaskOptimizer" ,
description = "Optimize agent order for multi-step tasks" ,
max_loops = 3 ,
agents = [
data_extractor_agent ,
summarizer_agent ,
financial_analyst_agent ,
market_analyst_agent ,
operational_analyst_agent ,
],
swarm_type = SwarmType . AgentRearrange ,
flow = f" { data_extractor . name } -> { analyzer . name } -> { summarizer . name } "
)
result = rearrange_router . run ( "Analyze and summarize the quarterly financial report" )
用例:将多样化的专家代理结合起来进行全面分析。
mixture_router = SwarmRouter (
name = "ExpertPanel" ,
description = "Combine insights from various expert agents" ,
max_loops = 1 ,
agents = [
data_extractor_agent ,
summarizer_agent ,
financial_analyst_agent ,
market_analyst_agent ,
operational_analyst_agent ,
],
swarm_type = SwarmType . MixtureOfAgents
)
result = mixture_router . run ( "Evaluate the potential acquisition of TechStartup Inc." )
立即与Swarms的创建者和铅维护者Kye Gomez一起入门,Kye Gomez将向您展示如何开始安装,用法示例并开始构建自定义用例!点击这里
文档位于以下网址:docs.swarms.world
群套件已精心制作,用于极端的使用和理解,群swarms.structs
分为各种模块Agent
例如swarms.agents
。代理结构。最重要的3个是structs
, models
和agents
。
├── __init__.py
├── agents
├── artifacts
├── memory
├── schemas
├── models - > swarm_models
├── prompts
├── structs
├── telemetry
├── tools
├── utils
└── workers
最简单的贡献方法是选择good first issue
标签的任何问题?。在此处阅读贡献指南。错误报告?文件在这里|功能请求?在这里文件
Swarms是一个开源项目,非常欢迎捐款。如果您想贡献,则可以创建新功能,修复错误或改进基础架构。请参考贡献。MD和我们的贡献委员会参加路线图讨论!
加速错误,功能和演示可以通过在此处支持我们来实现:
加入我们在世界各地不断增长的社区,以实时支持,想法和群体讨论?
GNU AFFERO通用公共许可证