swarms 7.7.1__tar.gz → 7.7.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {swarms-7.7.1 → swarms-7.7.3}/PKG-INFO +98 -263
- {swarms-7.7.1 → swarms-7.7.3}/README.md +94 -262
- {swarms-7.7.1 → swarms-7.7.3}/pyproject.toml +5 -2
- swarms-7.7.3/swarms/prompts/ag_prompt.py +85 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/agent_system_prompts.py +13 -4
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/multi_agent_collab_prompt.py +18 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/prompt.py +6 -10
- {swarms-7.7.1 → swarms-7.7.3}/swarms/schemas/__init__.py +0 -3
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/__init__.py +3 -8
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/agent.py +211 -163
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/aop.py +8 -1
- swarms-7.7.3/swarms/structs/auto_swarm_builder.py +365 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/conversation.py +23 -56
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/hiearchical_swarm.py +93 -122
- swarms-7.7.3/swarms/structs/ma_utils.py +96 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/mixture_of_agents.py +20 -103
- swarms-7.7.1/swarms/structs/multi_agent_orchestrator.py → swarms-7.7.3/swarms/structs/multi_agent_router.py +32 -95
- swarms-7.7.3/swarms/structs/output_types.py +6 -0
- swarms-7.7.3/swarms/structs/stopping_conditions.py +68 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/swarm_router.py +57 -5
- swarms-7.7.3/swarms/structs/swarming_architectures.py +858 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/telemetry/main.py +6 -2
- swarms-7.7.3/swarms/tools/mcp_client.py +246 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/tools/mcp_integration.py +1 -53
- {swarms-7.7.1 → swarms-7.7.3}/swarms/utils/formatter.py +15 -1
- swarms-7.7.3/swarms/utils/generate_keys.py +64 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/utils/history_output_formatter.py +2 -0
- swarms-7.7.1/swarms/prompts/ag_prompt.py +0 -53
- swarms-7.7.1/swarms/schemas/agent_input_schema.py +0 -149
- swarms-7.7.1/swarms/structs/agents_available.py +0 -87
- swarms-7.7.1/swarms/structs/async_workflow.py +0 -818
- swarms-7.7.1/swarms/structs/auto_swarm_builder.py +0 -304
- swarms-7.7.1/swarms/structs/graph_swarm.py +0 -612
- swarms-7.7.1/swarms/structs/octotools.py +0 -844
- swarms-7.7.1/swarms/structs/output_types.py +0 -19
- swarms-7.7.1/swarms/structs/pulsar_swarm.py +0 -469
- swarms-7.7.1/swarms/structs/queue_swarm.py +0 -193
- swarms-7.7.1/swarms/structs/stopping_conditions.py +0 -38
- swarms-7.7.1/swarms/structs/swarm_builder.py +0 -395
- swarms-7.7.1/swarms/structs/swarm_load_balancer.py +0 -344
- swarms-7.7.1/swarms/structs/swarm_output_type.py +0 -23
- swarms-7.7.1/swarms/structs/swarming_architectures.py +0 -467
- swarms-7.7.1/swarms/structs/talk_hier.py +0 -729
- swarms-7.7.1/swarms/tools/mcp_client.py +0 -90
- {swarms-7.7.1 → swarms-7.7.3}/LICENSE +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/__init__.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/agents/__init__.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/agents/agent_judge.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/agents/agent_print.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/agents/ape_agent.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/agents/auto_generate_swarm_config.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/agents/consistency_agent.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/agents/create_agents_from_yaml.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/agents/flexion_agent.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/agents/gkp_agent.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/agents/i_agent.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/agents/openai_assistant.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/agents/reasoning_agents.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/agents/reasoning_duo.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/agents/tool_agent.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/artifacts/__init__.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/artifacts/main_artifact.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/cli/__init__.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/cli/create_agent.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/cli/main.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/cli/onboarding_process.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/client/__init__.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/client/main.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/__init__.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/accountant_swarm_prompts.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/aga.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/agent_judge_prompt.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/agent_prompt.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/agent_prompts.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/ai_research_team.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/aot_prompt.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/autobloggen.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/autoswarm.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/chat_prompt.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/code_interpreter.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/code_spawner.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/debate.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/documentation.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/education.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/finance_agent_prompt.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/finance_agent_sys_prompt.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/growth_agent_prompt.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/idea2img.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/legal_agent_prompt.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/logistics.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/meta_system_prompt.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/multi_modal_autonomous_instruction_prompt.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/multi_modal_prompts.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/multi_modal_visual_prompts.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/operations_agent_prompt.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/paper_idea_agent.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/personal_stylist.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/product_agent_prompt.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/programming.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/project_manager.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/prompt_generator.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/prompt_generator_optimizer.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/python.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/react.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/reasoning_prompt.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/refiner_agent_prompt.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/sales.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/sales_prompts.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/security_team.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/self_operating_prompt.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/sop_generator_agent_prompt.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/summaries_prompts.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/support_agent_prompt.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/swarm_manager_agent.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/task_assignment_prompt.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/tests.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/tools.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/urban_planning.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/visual_cot.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/worker_prompt.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/prompts/xray_swarm_prompt.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/schemas/agent_step_schemas.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/schemas/base_schemas.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/agent_builder.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/agent_registry.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/agent_roles.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/agent_router.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/base_structure.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/base_swarm.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/base_workflow.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/concat.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/concurrent_workflow.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/csv_to_agent.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/de_hallucination_swarm.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/deep_research_swarm.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/dynamic_conversational_swarm.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/graph_workflow.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/groupchat.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/hybrid_hiearchical_peer_swarm.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/majority_voting.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/malt.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/matrix_swarm.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/meme_agent_persona_generator.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/model_router.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/multi_agent_collab.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/multi_agent_exec.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/omni_agent_types.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/rearrange.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/round_robin.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/safe_loading.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/sequential_workflow.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/spreadsheet_swarm.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/swarm_arange.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/swarm_eval.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/swarm_id_generator.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/swarm_matcher.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/swarm_registry.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/tree_swarm.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/utils.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/structs/various_alt_swarms.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/telemetry/__init__.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/telemetry/bootup.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/tools/__init__.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/tools/base_tool.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/tools/cohere_func_call_schema.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/tools/func_calling_utils.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/tools/func_to_str.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/tools/function_util.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/tools/json_former.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/tools/json_utils.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/tools/logits_processor.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/tools/openai_func_calling_schema_pydantic.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/tools/openai_tool_creator_decorator.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/tools/py_func_to_openai_func_str.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/tools/pydantic_to_json.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/tools/tool_parse_exec.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/tools/tool_registry.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/tools/tool_schema_base_model.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/tools/tool_utils.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/utils/__init__.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/utils/any_to_str.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/utils/auto_download_check_packages.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/utils/calculate_func_metrics.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/utils/data_to_text.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/utils/disable_logging.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/utils/file_processing.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/utils/function_caller_model.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/utils/litellm_tokenizer.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/utils/litellm_wrapper.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/utils/loguru_logger.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/utils/markdown_message.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/utils/parse_code.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/utils/pdf_to_text.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/utils/str_to_dict.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/utils/try_except_wrapper.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/utils/visualizer.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/utils/vllm_wrapper.py +0 -0
- {swarms-7.7.1 → swarms-7.7.3}/swarms/utils/wrapper_clusterop.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: swarms
|
3
|
-
Version: 7.7.
|
3
|
+
Version: 7.7.3
|
4
4
|
Summary: Swarms - TGSC
|
5
5
|
Home-page: https://github.com/kyegomez/swarms
|
6
6
|
License: MIT
|
@@ -18,11 +18,14 @@ Classifier: Programming Language :: Python :: 3.12
|
|
18
18
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
19
19
|
Requires-Dist: PyYAML
|
20
20
|
Requires-Dist: aiofiles
|
21
|
+
Requires-Dist: aiohttp
|
21
22
|
Requires-Dist: asyncio (>=3.4.3,<4.0)
|
22
23
|
Requires-Dist: docstring_parser (==0.16)
|
24
|
+
Requires-Dist: fastmcp
|
23
25
|
Requires-Dist: httpx
|
24
26
|
Requires-Dist: litellm
|
25
27
|
Requires-Dist: loguru
|
28
|
+
Requires-Dist: mcp
|
26
29
|
Requires-Dist: networkx
|
27
30
|
Requires-Dist: numpy
|
28
31
|
Requires-Dist: psutil
|
@@ -40,7 +43,7 @@ Description-Content-Type: text/markdown
|
|
40
43
|
|
41
44
|
<div align="center">
|
42
45
|
<a href="https://swarms.world">
|
43
|
-
<img src="https://github.com/kyegomez/swarms/blob/master/images/swarmslogobanner.png" style="margin: 15px; max-width:
|
46
|
+
<img src="https://github.com/kyegomez/swarms/blob/master/images/swarmslogobanner.png" style="margin: 15px; max-width: 500px" width="50%" alt="Logo">
|
44
47
|
</a>
|
45
48
|
</div>
|
46
49
|
<p align="center">
|
@@ -59,9 +62,11 @@ Description-Content-Type: text/markdown
|
|
59
62
|
<span> • </span>
|
60
63
|
<a href="https://discord.gg/jM3Z6M9uMq">📢 Discord</a>
|
61
64
|
<span> • </span>
|
62
|
-
<a href="https://swarms.
|
65
|
+
<a href="https://swarms.ai">Swarms Website</a>
|
63
66
|
<span> • </span>
|
64
67
|
<a href="https://docs.swarms.world">📙 Documentation</a>
|
68
|
+
<span> • </span>
|
69
|
+
<a href="https://swarms.world"> Swarms Marketplace</a>
|
65
70
|
</p>
|
66
71
|
|
67
72
|
<p align="center">
|
@@ -75,7 +80,7 @@ Description-Content-Type: text/markdown
|
|
75
80
|
<a href="https://www.linkedin.com/in/kye-g-38759a207/">
|
76
81
|
<img src="https://img.shields.io/badge/LinkedIn-Connect-blue?style=for-the-badge&logo=linkedin&logoColor=white" alt="LinkedIn">
|
77
82
|
</a>
|
78
|
-
<a href="https://x.com/
|
83
|
+
<a href="https://x.com/swarms_corp">
|
79
84
|
<img src="https://img.shields.io/badge/X.com-Follow-1DA1F2?style=for-the-badge&logo=x&logoColor=white" alt="X.com">
|
80
85
|
</a>
|
81
86
|
</p>
|
@@ -150,15 +155,6 @@ Description-Content-Type: text/markdown
|
|
150
155
|
| 🎯 Use Case Support | • Task-Specific Agents<br>• Custom Workflows<br>• Industry Solutions<br>• Extensible Framework | • Quick deployment<br>• Flexible solutions<br>• Industry readiness<br>• Easy customization |
|
151
156
|
|
152
157
|
|
153
|
-
----
|
154
|
-
|
155
|
-
## Requirements
|
156
|
-
- `python3.10` or above!
|
157
|
-
- `$ pip install -U swarms` And, don't forget to install swarms!
|
158
|
-
- `.env` file with API keys from your providers like `OPENAI_API_KEY`, `ANTHROPIC_API_KEY`
|
159
|
-
- Set an `.env` Variable with your desired workspace dir: `WORKSPACE_DIR="agent_workspace"` or do it in your terminal with `export WORKSPACE_DIR="agent_workspace"`
|
160
|
-
- Finally, `swarms onboarding` to get you started.
|
161
|
-
|
162
158
|
## Guides and Walkthroughs
|
163
159
|
Refer to our documentation for production grade implementation details.
|
164
160
|
|
@@ -178,46 +174,60 @@ Refer to our documentation for production grade implementation details.
|
|
178
174
|
|
179
175
|
|
180
176
|
## Install 💻
|
181
|
-
Install the following packages with copy and paste
|
182
177
|
|
178
|
+
### Using pip
|
183
179
|
```bash
|
184
|
-
$ pip3 install -U swarms
|
180
|
+
$ pip3 install -U swarms
|
185
181
|
```
|
186
182
|
|
183
|
+
### Using uv (Recommended)
|
184
|
+
[uv](https://github.com/astral-sh/uv) is a fast Python package installer and resolver, written in Rust.
|
187
185
|
|
188
|
-
|
186
|
+
```bash
|
187
|
+
# Install uv
|
188
|
+
$ curl -LsSf https://astral.sh/uv/install.sh | sh
|
189
189
|
|
190
|
-
|
190
|
+
# Install swarms using uv
|
191
|
+
$ uv pip install swarms
|
192
|
+
```
|
191
193
|
|
194
|
+
### Using poetry
|
192
195
|
```bash
|
193
|
-
|
194
|
-
|
196
|
+
# Install poetry if you haven't already
|
197
|
+
$ curl -sSL https://install.python-poetry.org | python3 -
|
195
198
|
|
196
|
-
|
199
|
+
# Add swarms to your project
|
200
|
+
$ poetry add swarms
|
201
|
+
```
|
197
202
|
|
203
|
+
### From source
|
198
204
|
```bash
|
199
|
-
|
200
|
-
|
205
|
+
# Clone the repository
|
206
|
+
$ git clone https://github.com/kyegomez/swarms.git
|
207
|
+
$ cd swarms
|
201
208
|
|
202
|
-
|
209
|
+
# Install with pip
|
210
|
+
$ pip install -e .
|
211
|
+
```
|
203
212
|
|
204
213
|
---
|
205
214
|
|
206
|
-
|
207
|
-
Here are some example scripts to get you started. For more comprehensive documentation, visit our [docs](https://docs.swarms.world/en/latest/).
|
208
|
-
|
209
|
-
| Example Name | Description | Type of Examples | Link |
|
210
|
-
| --- | --- | --- | --- |
|
211
|
-
| Swarms Examples | A collection of simple examples to demonstrate Swarms capabilities. | Basic Usage | [https://github.com/The-Swarm-Corporation/swarms-examples?tab=readme-ov-file](https://github.com/The-Swarm-Corporation/swarms-examples?tab=readme-ov-file) |
|
212
|
-
| Cookbook | A comprehensive guide with recipes for various use cases and scenarios. | Advanced Usage | [https://github.com/The-Swarm-Corporation/Cookbook](https://github.com/The-Swarm-Corporation/Cookbook) |
|
213
|
-
|
215
|
+
## Environment Configuration
|
214
216
|
|
217
|
+
```
|
218
|
+
OPENAI_API_KEY=""
|
219
|
+
WORKSPACE_DIR="agent_workspace"
|
220
|
+
ANTHROPIC_API_KEY=""
|
221
|
+
GROQ_API_KEY=""
|
222
|
+
```
|
215
223
|
|
224
|
+
- [Learn more about the environment configuration here](https://docs.swarms.world/en/latest/swarms/install/env/)
|
216
225
|
|
217
226
|
---
|
218
227
|
|
219
228
|
## `Agent` Class
|
220
|
-
The `Agent` class is a
|
229
|
+
The `Agent` class is a customizable autonomous component of the Swarms framework that integrates LLMs, tools, and long-term memory. Its `run` method processes text tasks and optionally handles image inputs through vision-language models.
|
230
|
+
|
221
231
|
|
222
232
|
```mermaid
|
223
233
|
graph TD
|
@@ -230,8 +240,6 @@ graph TD
|
|
230
240
|
G --> C
|
231
241
|
```
|
232
242
|
|
233
|
-
### `run` Method
|
234
|
-
The `run` method is the primary entry point for executing tasks with an `Agent` instance. It accepts a task string as the main input task and processes it according to the agent's configuration. And, it can also accept an `img` parameter such as `img="image_filepath.png` to process images if you have a VLM attached such as `GPT4VisionAPI`
|
235
243
|
|
236
244
|
|
237
245
|
|
@@ -253,6 +261,7 @@ agent.run("What is the current market trend for tech stocks?")
|
|
253
261
|
```
|
254
262
|
|
255
263
|
### Settings and Customization
|
264
|
+
|
256
265
|
The `Agent` class offers a range of settings to tailor its behavior to specific needs. Some key settings include:
|
257
266
|
|
258
267
|
| Setting | Description | Default Value |
|
@@ -308,6 +317,7 @@ agent.run(
|
|
308
317
|
-----
|
309
318
|
|
310
319
|
### Integrating RAG with Swarms for Enhanced Long-Term Memory
|
320
|
+
|
311
321
|
`Agent` equipped with quasi-infinite long term memory using RAG (Relational Agent Graph) for advanced document understanding, analysis, and retrieval capabilities.
|
312
322
|
|
313
323
|
**Mermaid Diagram for RAG Integration**
|
@@ -820,40 +830,8 @@ print(json.dumps(response, indent=4))
|
|
820
830
|
|
821
831
|
|
822
832
|
### `SequentialWorkflow`
|
823
|
-
Sequential Workflow enables you to sequentially execute tasks with `Agent` and then pass the output into the next agent and onwards until you have specified your max loops.
|
824
|
-
|
825
|
-
```mermaid
|
826
|
-
graph LR
|
827
|
-
A[Agent 1] --> B[Agent 2]
|
828
|
-
B --> C[Agent 3]
|
829
|
-
C --> D[Agent 4]
|
830
|
-
D --> E[Max Loops]
|
831
|
-
E --> F[End]
|
832
|
-
```
|
833
|
-
|
834
|
-
|
835
|
-
|
836
|
-
### Methods
|
837
|
-
|
838
|
-
| Method | Description | Parameters | Return Value |
|
839
|
-
|--------|-------------|------------|--------------|
|
840
|
-
| `__init__` | Initialize the SequentialWorkflow | `agents`: List of Agent objects<br>`max_loops`: Maximum number of iterations<br>`verbose`: Boolean for verbose output | None |
|
841
|
-
| `run` | Execute the workflow | `input_data`: Initial input for the first agent | Final output after all agents have processed |
|
842
|
-
|
843
|
-
### Inputs
|
844
|
-
|
845
|
-
| Input | Type | Description |
|
846
|
-
|-------|------|-------------|
|
847
|
-
| `agents` | List[Agent] | List of Agent objects to be executed sequentially |
|
848
|
-
| `max_loops` | int | Maximum number of times the entire sequence will be repeated |
|
849
|
-
| `verbose` | bool | If True, print detailed information during execution |
|
850
|
-
|
851
|
-
### Output
|
852
|
-
|
853
|
-
The `run` method returns the final output after all agents have processed the input sequentially.
|
854
|
-
|
855
|
-
In this example, each `Agent` represents a task that is executed sequentially. The output of each agent is passed to the next agent in the sequence until the maximum number of loops is reached. This workflow is particularly useful for tasks that require a series of steps to be executed in a specific order, such as data processing pipelines or complex calculations that rely on the output of previous steps.
|
856
833
|
|
834
|
+
The SequentialWorkflow in the Swarms framework enables sequential task execution across multiple Agent objects. Each agent's output serves as input for the next agent in the sequence, continuing until reaching the specified maximum number of loops (max_loops). This workflow is particularly well-suited for tasks requiring a specific order of operations, such as data processing pipelines. To learn more, visit: [Learn More](https://docs.swarms.world/en/latest/swarms/structs/sequential_workflow/)
|
857
835
|
|
858
836
|
```python
|
859
837
|
import os
|
@@ -1043,32 +1021,10 @@ print(
|
|
1043
1021
|
|
1044
1022
|
------
|
1045
1023
|
|
1046
|
-
## `AgentRearrange`
|
1047
|
-
|
1048
|
-
The `AgentRearrange` orchestration technique, inspired by Einops and einsum, allows you to define and map out the relationships between various agents. It provides a powerful tool for orchestrating complex workflows, enabling you to specify linear and sequential relationships such as `a -> a1 -> a2 -> a3`, or concurrent relationships where the first agent sends a message to 3 agents simultaneously: `a -> a1, a2, a3`. This level of customization allows for the creation of highly efficient and dynamic workflows, where agents can work in parallel or in sequence as needed. The `AgentRearrange` technique is a valuable addition to the swarms library, providing a new level of flexibility and control over the orchestration of agents. For more detailed information and examples, please refer to the [official documentation](https://docs.swarms.world/en/latest/swarms/structs/agent_rearrange/).
|
1049
|
-
|
1050
|
-
[Check out my video on agent rearrange!](https://youtu.be/Rq8wWQ073mg)
|
1051
|
-
|
1052
|
-
|
1053
|
-
|
1054
|
-
### Methods
|
1055
|
-
|
1056
|
-
| Method | Description | Parameters | Return Value |
|
1057
|
-
|--------|-------------|------------|--------------|
|
1058
|
-
| `__init__` | Initialize the AgentRearrange | `agents`: List of Agent objects<br>`flow`: String describing the agent flow | None |
|
1059
|
-
| `run` | Execute the workflow | `input_data`: Initial input for the first agent | Final output after all agents have processed |
|
1060
|
-
|
1061
|
-
### Inputs
|
1062
|
-
|
1063
|
-
| Input | Type | Description |
|
1064
|
-
|-------|------|-------------|
|
1065
|
-
| `agents` | List[Agent] | List of Agent objects to be orchestrated |
|
1066
|
-
| `flow` | str | String describing the flow of agents (e.g., "A -> B, C") |
|
1067
1024
|
|
1068
|
-
|
1069
|
-
|
1070
|
-
The `run` method returns the final output after all agents have processed the input according to the specified flow.
|
1025
|
+
## `AgentRearrange`
|
1071
1026
|
|
1027
|
+
The `AgentRearrange` orchestration technique, inspired by Einops and einsum, enables you to define and map relationships between multiple agents. This powerful tool facilitates the orchestration of complex workflows by allowing you to specify both linear and concurrent relationships. For example, you can create sequential workflows like `a -> a1 -> a2 -> a3` or parallel workflows where a single agent distributes tasks to multiple agents simultaneously: `a -> a1, a2, a3`. This flexibility enables the creation of highly efficient and dynamic workflows, with agents operating either in parallel or sequence as required. As a valuable addition to the swarms library, `AgentRearrange` provides enhanced flexibility and precise control over agent orchestration. For comprehensive information and examples, visit the [official documentation](https://docs.swarms.world/en/latest/swarms/structs/agent_rearrange/). [Watch my video tutorial on agent rearrange!](https://youtu.be/Rq8wWQ073mg)
|
1072
1028
|
|
1073
1029
|
|
1074
1030
|
|
@@ -1255,80 +1211,46 @@ if __name__ == "__main__":
|
|
1255
1211
|
|
1256
1212
|
```
|
1257
1213
|
|
1258
|
-
## `HierarhicalSwarm`
|
1259
|
-
Coming soon...
|
1260
|
-
|
1261
|
-
|
1262
|
-
## `GraphSwarm`
|
1263
|
-
|
1264
|
-
|
1265
|
-
The `GraphSwarm` is a workflow management system designed to orchestrate complex tasks by leveraging the power of graph theory. It enables the creation of a directed acyclic graph (DAG) to model dependencies between tasks and agents. This allows for efficient task assignment, execution, and monitoring.
|
1266
|
-
|
1267
|
-
Here's a breakdown of how the `GraphSwarm` works:
|
1268
|
-
|
1269
|
-
1. **Node Creation**: The `GraphSwarm` workflow is composed of nodes, which can be either agents or tasks. Agents are responsible for executing tasks, and tasks represent specific operations that need to be performed. In the example, two agents (`agent1` and `agent2`) and one task (`task1`) are created.
|
1270
|
-
2. **Edge Definition**: Edges are used to define the relationships between nodes. In this case, edges are created to connect `agent1` and `agent2` to `task1`, indicating that both agents are capable of executing `task1`.
|
1271
|
-
3. **Entry and End Points**: The `GraphSwarm` workflow requires the definition of entry points (where the workflow starts) and end points (where the workflow concludes). In this example, `agent1` and `agent2` are set as entry points, and `task1` is set as the end point.
|
1272
|
-
4. **Visualization**: The `GraphSwarm` provides a visualization feature to graphically represent the workflow. This allows for easy understanding and debugging of the workflow structure.
|
1273
|
-
5. **Execution**: The `GraphSwarm` workflow is executed by traversing the graph from the entry points to the end points. In this case, both `agent1` and `agent2` execute `task1` concurrently, and the results are collected.
|
1274
|
-
6. **Results**: The final results of the workflow execution are aggregated and returned. In this example, the result of executing `task1` is "Task completed".
|
1275
|
-
|
1276
|
-
The `GraphSwarm` offers several benefits, including:
|
1277
|
-
|
1278
|
-
* **Concurrency**: Enables the execution of tasks concurrently, improving overall workflow efficiency.
|
1279
|
-
* **Flexibility**: Allows for dynamic task assignment based on agent availability and task requirements.
|
1280
|
-
* **Scalability**: Supports the addition of new agents and tasks as needed, making it suitable for large-scale workflows.
|
1281
|
-
* **Visualization**: Provides a graphical representation of the workflow, facilitating understanding and debugging.
|
1282
|
-
|
1283
|
-
By leveraging the `GraphSwarm`, complex workflows can be efficiently managed, and tasks can be executed in a coordinated and scalable manner.
|
1284
1214
|
|
1215
|
+
------------
|
1285
1216
|
|
1286
1217
|
|
1287
|
-
|
1218
|
+
## `HierarhicalSwarm`
|
1219
|
+
Coming soon...
|
1288
1220
|
|
1289
|
-
| Method | Description | Parameters | Return Value |
|
1290
|
-
|--------|-------------|------------|--------------|
|
1291
|
-
| `add_node` | Add a node to the graph | `node`: Node object | None |
|
1292
|
-
| `add_edge` | Add an edge to the graph | `edge`: Edge object | None |
|
1293
|
-
| `set_entry_points` | Set the entry points of the graph | `entry_points`: List of node IDs | None |
|
1294
|
-
| `set_end_points` | Set the end points of the graph | `end_points`: List of node IDs | None |
|
1295
|
-
| `visualize` | Generate a visual representation of the graph | None | String representation of the graph |
|
1296
|
-
| `run` | Execute the workflow | None | Dictionary of execution results |
|
1297
1221
|
|
1298
|
-
|
1222
|
+
-----------------
|
1299
1223
|
|
1300
|
-
|
1301
|
-
|-------|------|-------------|
|
1302
|
-
| `Node` | Object | Represents a node in the graph (agent or task) |
|
1303
|
-
| `Edge` | Object | Represents an edge connecting two nodes |
|
1304
|
-
| `entry_points` | List[str] | List of node IDs where the workflow starts |
|
1305
|
-
| `end_points` | List[str] | List of node IDs where the workflow ends |
|
1224
|
+
## `GraphWorkflow`
|
1306
1225
|
|
1307
|
-
### Output
|
1308
1226
|
|
1309
|
-
The `run` method returns a dictionary containing the execution results of all nodes in the graph.
|
1227
|
+
GraphWorkflow is a workflow management system using a directed acyclic graph (DAG) to orchestrate complex tasks. Nodes (agents or tasks) and edges define dependencies, with agents executing tasks concurrently. It features entry/end points, visualization for debugging, and scalability for dynamic task assignment. Benefits include concurrency, flexibility, scalability, and clear workflow visualization. [Learn more:](https://docs.swarms.world/en/latest/swarms/structs/graph_swarm/) The `run` method returns a dictionary containing the execution results of all nodes in the graph.
|
1310
1228
|
|
1311
1229
|
|
1312
1230
|
|
1313
1231
|
```python
|
1314
|
-
import os
|
1315
|
-
|
1316
|
-
from dotenv import load_dotenv
|
1317
|
-
|
1318
|
-
|
1319
1232
|
from swarms import Agent, Edge, GraphWorkflow, Node, NodeType
|
1320
1233
|
|
1321
|
-
|
1322
|
-
|
1323
|
-
|
1324
|
-
|
1325
|
-
|
1234
|
+
# Initialize agents with model_name parameter
|
1235
|
+
agent1 = Agent(
|
1236
|
+
agent_name="Agent1",
|
1237
|
+
model_name="openai/gpt-4o-mini", # Using provider prefix
|
1238
|
+
temperature=0.5,
|
1239
|
+
max_tokens=4000,
|
1240
|
+
max_loops=1,
|
1241
|
+
autosave=True,
|
1242
|
+
dashboard=True,
|
1243
|
+
)
|
1326
1244
|
|
1327
|
-
|
1328
|
-
|
1245
|
+
agent2 = Agent(
|
1246
|
+
agent_name="Agent2",
|
1247
|
+
model_name="openai/gpt-4o-mini", # Using provider prefix
|
1248
|
+
temperature=0.5,
|
1249
|
+
max_tokens=4000,
|
1250
|
+
max_loops=1,
|
1251
|
+
autosave=True,
|
1252
|
+
dashboard=True,
|
1329
1253
|
)
|
1330
|
-
agent1 = Agent(llm=llm, max_loops=1, autosave=True, dashboard=True)
|
1331
|
-
agent2 = Agent(llm=llm, max_loops=1, autosave=True, dashboard=True)
|
1332
1254
|
|
1333
1255
|
def sample_task():
|
1334
1256
|
print("Running sample task")
|
@@ -1337,9 +1259,8 @@ def sample_task():
|
|
1337
1259
|
wf_graph = GraphWorkflow()
|
1338
1260
|
wf_graph.add_node(Node(id="agent1", type=NodeType.AGENT, agent=agent1))
|
1339
1261
|
wf_graph.add_node(Node(id="agent2", type=NodeType.AGENT, agent=agent2))
|
1340
|
-
wf_graph.add_node(
|
1341
|
-
|
1342
|
-
)
|
1262
|
+
wf_graph.add_node(Node(id="task1", type=NodeType.TASK, callable=sample_task))
|
1263
|
+
|
1343
1264
|
wf_graph.add_edge(Edge(source="agent1", target="task1"))
|
1344
1265
|
wf_graph.add_edge(Edge(source="agent2", target="task1"))
|
1345
1266
|
|
@@ -1348,36 +1269,16 @@ wf_graph.set_end_points(["task1"])
|
|
1348
1269
|
|
1349
1270
|
print(wf_graph.visualize())
|
1350
1271
|
|
1351
|
-
# Run the workflow
|
1352
1272
|
results = wf_graph.run()
|
1353
1273
|
print("Execution results:", results)
|
1354
|
-
|
1355
1274
|
```
|
1356
1275
|
|
1357
|
-
|
1358
|
-
This is an implementation based on the paper: "Mixture-of-Agents Enhances Large Language Model Capabilities" by together.ai, available at [https://arxiv.org/abs/2406.04692](https://arxiv.org/abs/2406.04692). It achieves state-of-the-art (SOTA) results on AlpacaEval 2.0, MT-Bench, and FLASK, surpassing GPT-4 Omni. This architecture is particularly suitable for tasks that require parallelization followed by sequential processing in another loop.
|
1359
|
-
|
1360
|
-
|
1361
|
-
|
1362
|
-
### Methods
|
1363
|
-
|
1364
|
-
| Method | Description | Parameters | Return Value |
|
1365
|
-
|--------|-------------|------------|--------------|
|
1366
|
-
| `__init__` | Initialize the MixtureOfAgents | `name`: Name of the swarm<br>`agents`: List of Agent objects<br>`layers`: Number of processing layers<br>`final_agent`: Agent for final processing | None |
|
1367
|
-
| `run` | Execute the swarm | `task`: Input task for the swarm | Final output after all agents have processed |
|
1368
|
-
|
1369
|
-
### Inputs
|
1276
|
+
-----
|
1370
1277
|
|
1371
|
-
| Input | Type | Description |
|
1372
|
-
|-------|------|-------------|
|
1373
|
-
| `name` | str | Name of the swarm |
|
1374
|
-
| `agents` | List[Agent] | List of Agent objects to be used in the swarm |
|
1375
|
-
| `layers` | int | Number of processing layers in the swarm |
|
1376
|
-
| `final_agent` | Agent | Agent responsible for final processing |
|
1377
1278
|
|
1378
|
-
|
1279
|
+
## `MixtureOfAgents`
|
1379
1280
|
|
1380
|
-
The
|
1281
|
+
The MixtureOfAgents architecture, inspired by together.ai's paper (arXiv:2406.04692), achieves SOTA performance on AlpacaEval 2.0, MT-Bench, and FLASK, surpassing GPT-4 Omni. It processes tasks via parallel agent collaboration and sequential layering, with documentation [HERE](https://docs.swarms.world/en/latest/swarms/structs/moa/)
|
1381
1282
|
|
1382
1283
|
|
1383
1284
|
```python
|
@@ -1520,42 +1421,12 @@ print(out)
|
|
1520
1421
|
|
1521
1422
|
```
|
1522
1423
|
|
1424
|
+
-------
|
1523
1425
|
|
1524
1426
|
## SpreadSheetSwarm
|
1525
|
-
|
1526
|
-
|
1527
|
-
### Key Features
|
1528
|
-
|
1529
|
-
* **Concurrency**: Enables the simultaneous execution of multiple agents, significantly reducing processing time and increasing overall system efficiency.
|
1530
|
-
* **One-to-Many**: Allows a single task to be dynamically distributed among multiple agents, ensuring that each agent is utilized to its full potential.
|
1531
|
-
* **Scalability**: Supports the integration of thousands of agents, making it an ideal solution for large-scale task processing and data analysis.
|
1532
|
-
|
1533
|
-
|
1534
|
-
### Methods
|
1535
|
-
|
1536
|
-
| Method | Description | Parameters | Return Value |
|
1537
|
-
|--------|-------------|------------|--------------|
|
1538
|
-
| `__init__` | Initialize the SpreadSheetSwarm | `name`: Name of the swarm<br>`description`: Description of the swarm<br>`agents`: List of Agent objects<br>`autosave_on`: Boolean to enable autosave<br>`save_file_path`: Path to save the spreadsheet<br>`run_all_agents`: Boolean to run all agents or not<br>`max_loops`: Maximum number of loops | None |
|
1539
|
-
| `run` | Execute the swarm | `task`: Input task for the swarm | Dictionary of agent outputs |
|
1540
|
-
|
1541
|
-
### Inputs
|
1542
|
-
|
1543
|
-
| Input | Type | Description |
|
1544
|
-
|-------|------|-------------|
|
1545
|
-
| `name` | str | Name of the swarm |
|
1546
|
-
| `description` | str | Description of the swarm's purpose |
|
1547
|
-
| `agents` | List[Agent] | List of Agent objects to be used in the swarm |
|
1548
|
-
| `autosave_on` | bool | Enable autosaving of results |
|
1549
|
-
| `save_file_path` | str | Path to save the spreadsheet results |
|
1550
|
-
| `run_all_agents` | bool | Whether to run all agents or select based on relevance |
|
1551
|
-
| `max_loops` | int | Maximum number of processing loops |
|
1552
|
-
|
1553
|
-
### Output
|
1554
|
-
|
1555
|
-
The `run` method returns a dictionary containing the outputs of each agent that processed the task.
|
1427
|
+
SpreadSheetSwarm manages thousands of agents concurrently for efficient task processing. It supports one-to-many task distribution, scalability, and autosaving results. Initialized with a name, description, agents, and settings, the run method executes tasks and returns a dictionary of agent outputs.
|
1556
1428
|
|
1557
|
-
|
1558
|
-
[Learn more at the docs here:](https://docs.swarms.world/en/latest/swarms/structs/spreadsheet_swarm/)
|
1429
|
+
[Learn more:](https://docs.swarms.world/en/latest/swarms/structs/spreadsheet_swarm/)
|
1559
1430
|
|
1560
1431
|
```python
|
1561
1432
|
import os
|
@@ -1712,28 +1583,13 @@ swarm.run(
|
|
1712
1583
|
```
|
1713
1584
|
|
1714
1585
|
|
1715
|
-
|
1716
|
-
The `ForestSwarm` architecture is designed for efficient task assignment by dynamically selecting the most suitable agent from a collection of trees. This is achieved through asynchronous task processing, where agents are chosen based on their relevance to the task at hand. The relevance is determined by calculating the similarity between the system prompts associated with each agent and the keywords present in the task itself. For a more in-depth understanding of how `ForestSwarm` works, please refer to the [official documentation](https://docs.swarms.world/en/latest/swarms/structs/forest_swarm/).
|
1717
|
-
|
1718
|
-
|
1719
|
-
|
1720
|
-
### Methods
|
1721
|
-
|
1722
|
-
| Method | Description | Parameters | Return Value |
|
1723
|
-
|--------|-------------|------------|--------------|
|
1724
|
-
| `__init__` | Initialize the ForestSwarm | `trees`: List of Tree objects | None |
|
1725
|
-
| `run` | Execute the ForestSwarm | `task`: Input task for the swarm | Output from the most relevant agent |
|
1586
|
+
----------
|
1726
1587
|
|
1727
|
-
|
1588
|
+
## `ForestSwarm`
|
1728
1589
|
|
1729
|
-
|
1730
|
-
|-------|------|-------------|
|
1731
|
-
| `trees` | List[Tree] | List of Tree objects, each containing TreeAgent objects |
|
1732
|
-
| `task` | str | The task to be processed by the ForestSwarm |
|
1590
|
+
The `ForestSwarm` architecture is an intelligent system designed to optimize task assignment by dynamically selecting the most appropriate agent from a collection of specialized trees. Through asynchronous task processing, the system intelligently matches tasks with agents based on their relevance. This matching is accomplished by computing the semantic similarity between each agent's system prompts and the keywords present in the task. For comprehensive details about the `ForestSwarm` implementation and capabilities, please consult the [official documentation](https://docs.swarms.world/en/latest/swarms/structs/forest_swarm/).
|
1733
1591
|
|
1734
|
-
### Output
|
1735
1592
|
|
1736
|
-
The `run` method returns the output from the most relevant agent selected based on the input task.
|
1737
1593
|
|
1738
1594
|
|
1739
1595
|
```python
|
@@ -1851,25 +1707,11 @@ print(output)
|
|
1851
1707
|
|
1852
1708
|
|
1853
1709
|
|
1710
|
+
------------
|
1854
1711
|
|
1855
1712
|
## `SwarmRouter`
|
1856
|
-
The `SwarmRouter` class is a flexible routing system designed to manage different types of swarms for task execution. It provides a unified interface to interact with various swarm types, including `AgentRearrange`, `MixtureOfAgents`, `SpreadSheetSwarm`, `SequentialWorkflow`, and `ConcurrentWorkflow`. We will be continuously adding more and more swarm architectures here as we progress with new architectures.
|
1857
|
-
|
1858
|
-
#### Attributes:
|
1859
|
-
- `name` (str): Name of the SwarmRouter instance.
|
1860
|
-
- `description` (str): Description of the SwarmRouter instance.
|
1861
|
-
- `max_loops` (int): Maximum number of loops to perform.
|
1862
|
-
- `agents` (List[Agent]): List of Agent objects to be used in the swarm.
|
1863
|
-
- `swarm_type` (SwarmType): Type of swarm to be used.
|
1864
|
-
- `swarm` (Union[AgentRearrange, MixtureOfAgents, SpreadSheetSwarm, SequentialWorkflow, ConcurrentWorkflow]): Instantiated swarm object.
|
1865
|
-
- `logs` (List[SwarmLog]): List of log entries captured during operations.
|
1866
1713
|
|
1867
|
-
|
1868
|
-
- `__init__(self, name: str, description: str, max_loops: int, agents: List[Agent], swarm_type: SwarmType, *args, **kwargs)`: Initialize the SwarmRouter.
|
1869
|
-
- `_create_swarm(self, *args, **kwargs)`: Create and return the specified swarm type.
|
1870
|
-
- `_log(self, level: str, message: str, task: str, metadata: Dict[str, Any])`: Create a log entry and add it to the logs list.
|
1871
|
-
- `run(self, task: str, *args, **kwargs)`: Run the specified task on the selected swarm.
|
1872
|
-
- `get_logs(self)`: Retrieve all logged entries.
|
1714
|
+
The `SwarmRouter` class is a flexible routing system designed to manage different types of swarms for task execution. It provides a unified interface to interact with various swarm types, including `AgentRearrange`, `MixtureOfAgents`, `SpreadSheetSwarm`, `SequentialWorkflow`, and `ConcurrentWorkflow`. We will be continuously adding more and more swarm architectures here as we progress with new architectures. [Learn More](https://docs.swarms.world/en/latest/swarms/structs/swarm_router/)
|
1873
1715
|
|
1874
1716
|
|
1875
1717
|
```python
|
@@ -2256,21 +2098,20 @@ Documentation is located here at: [docs.swarms.world](https://docs.swarms.world)
|
|
2256
2098
|
-----
|
2257
2099
|
|
2258
2100
|
## Folder Structure
|
2259
|
-
The swarms package has been
|
2101
|
+
The swarms package has been meticulously crafted for extreme usability and understanding,the swarms package is split up into various modules such as `swarms.agents` that holds pre-built agents, `swarms.structs` that holds a vast array of structures like `Agent` and multi agent structures. The package is split into various modules, with the most important being `structs`, `tools`, and `agents`.
|
2260
2102
|
|
2261
2103
|
```sh
|
2262
2104
|
├── __init__.py
|
2263
|
-
├── agents
|
2264
|
-
├── artifacts
|
2265
|
-
├──
|
2266
|
-
├──
|
2267
|
-
├──
|
2268
|
-
├──
|
2269
|
-
├── structs
|
2270
|
-
├── telemetry
|
2271
|
-
├── tools
|
2272
|
-
|
2273
|
-
└── workers
|
2105
|
+
├── agents/
|
2106
|
+
├── artifacts/
|
2107
|
+
├── client/
|
2108
|
+
├── cli/
|
2109
|
+
├── prompts/
|
2110
|
+
├── schemas/
|
2111
|
+
├── structs/
|
2112
|
+
├── telemetry/
|
2113
|
+
├── tools/
|
2114
|
+
└── utils/
|
2274
2115
|
```
|
2275
2116
|
|
2276
2117
|
----
|
@@ -2284,23 +2125,17 @@ Swarms is an open-source project, and contributions are VERY welcome. If you wan
|
|
2284
2125
|
----
|
2285
2126
|
|
2286
2127
|
|
2287
|
-
|
2288
|
-
## Accelerate Backlog
|
2289
|
-
Accelerate Bugs, Features, and Demos to implement by supporting us here:
|
2290
|
-
|
2291
|
-
<a href="https://polar.sh/kyegomez"><img src="https://polar.sh/embed/fund-our-backlog.svg?org=kyegomez" /></a>
|
2292
|
-
|
2293
2128
|
## Community
|
2294
2129
|
|
2295
2130
|
Join our growing community around the world, for real-time support, ideas, and discussions on Swarms 😊
|
2296
2131
|
|
2297
|
-
- View our official [
|
2132
|
+
- View our official [Documents](https://docs.swarms.world)
|
2133
|
+
- View our official [Blog](https://medium.com/@kyeg)
|
2298
2134
|
- Chat live with us on [Discord](https://discord.gg/jM3Z6M9uMq)
|
2299
2135
|
- Follow us on [Twitter](https://twitter.com/kyegomez)
|
2300
2136
|
- Connect with us on [LinkedIn](https://www.linkedin.com/company/the-swarm-corporation)
|
2301
2137
|
- Visit us on [YouTube](https://www.youtube.com/channel/UC9yXyitkbU_WSy7bd_41SqQ)
|
2302
|
-
-
|
2303
|
-
- Join our Swarms Community Gathering every Thursday at 1pm NYC Time to unlock the potential of autonomous agents in automating your daily tasks [Sign up here](https://lu.ma/5p2jnc2v)
|
2138
|
+
- Sign up for our events [Sign up here](https://lu.ma/5p2jnc2v)
|
2304
2139
|
|
2305
2140
|
# License
|
2306
2141
|
|