From 16d2ade1e85dad11bdfbc4b95e0d8d830a4240f1 Mon Sep 17 00:00:00 2001 From: Kye Gomez Date: Tue, 26 Aug 2025 22:17:27 -0700 Subject: [PATCH] [DOCS][Fix spreadsheat swarm and also fix swarm rearrange docs with old modules and libraries] --- docs/swarms/structs/spreadsheet_swarm.md | 66 ++++--------- docs/swarms/structs/swarm_rearrange.md | 117 ++++------------------- 2 files changed, 35 insertions(+), 148 deletions(-) diff --git a/docs/swarms/structs/spreadsheet_swarm.md b/docs/swarms/structs/spreadsheet_swarm.md index 06101128..6039c36e 100644 --- a/docs/swarms/structs/spreadsheet_swarm.md +++ b/docs/swarms/structs/spreadsheet_swarm.md @@ -1,6 +1,6 @@ # SpreadSheetSwarm Documentation ---- + ## Class Definition @@ -189,20 +189,10 @@ swarm._save_to_csv() ```python import os -from swarms import Agent -from swarm_models import OpenAIChat +from swarms import Agent, SpreadSheetSwarm from swarms.prompts.finance_agent_sys_prompt import ( FINANCIAL_AGENT_SYS_PROMPT, ) -from swarms.structs.spreadsheet_swarm import SpreadSheetSwarm - -# 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 (assuming the Agent class and model are already defined) @@ -210,7 +200,7 @@ agents = [ Agent( agent_name=f"Financial-Analysis-Agent-spreesheet-swarm:{i}", system_prompt=FINANCIAL_AGENT_SYS_PROMPT, - llm=model, + model_name="gpt-4.1", max_loops=1, dynamic_temperature_enabled=True, saved_state_path="finance_agent.json", @@ -242,9 +232,7 @@ swarm.run( ```python import os -from swarms import Agent -from swarm_models import OpenAIChat -from swarms.structs.spreadsheet_swarm import SpreadSheetSwarm +from swarms import Agent, SpreadSheetSwarm # Define custom system prompts for QR code generation QR_CODE_AGENT_1_SYS_PROMPT = """ @@ -255,20 +243,13 @@ QR_CODE_AGENT_2_SYS_PROMPT = """ You are a Python coding expert. Your task is to write a Python script to generate a QR code for the link: https://github.com/The-Swarm-Corporation/Cookbook. The code should save the QR code as an image file. """ -# 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 QR code generation agents = [ Agent( agent_name="QR-Code-Generator-Agent-Luma", system_prompt=QR_CODE_AGENT_1_SYS_PROMPT, - llm=model, + model_name="gpt-4.1", max_loops=1, dynamic_temperature_enabled=True, saved_state_path="qr_code_agent_luma.json", @@ -278,7 +259,7 @@ agents = [ Agent( agent_name="QR-Code-Generator-Agent-Cookbook", system_prompt=QR_CODE_AGENT_2_SYS_PROMPT, - llm=model, + model_name="gpt-4.1", max_loops=1, dynamic_temperature_enabled=True, saved_state_path="qr_code_agent_cookbook.json", @@ -310,9 +291,7 @@ swarm.run( ```python import os -from swarms import Agent -from swarm_models import OpenAIChat -from swarms.structs.spreadsheet_swarm import SpreadSheetSwarm +from swarms import Agent, SpreadSheetSwarm # Define custom system prompts for each social media platform TWITTER_AGENT_SYS_PROMPT = """ @@ -344,7 +323,7 @@ agents = [ Agent( agent_name="Twitter-Marketing-Agent", system_prompt=TWITTER_AGENT_SYS_PROMPT, - llm=model, + model_name="gpt-4.1", max_loops=1, dynamic_temperature_enabled=True, saved_state_path="twitter_agent.json", @@ -354,7 +333,7 @@ agents = [ Agent( agent_name="Instagram-Marketing-Agent", system_prompt=INSTAGRAM_AGENT_SYS_PROMPT, - llm=model, + model_name="gpt-4.1", max_loops=1, dynamic_temperature_enabled=True, saved_state_path="instagram_agent.json", @@ -364,7 +343,7 @@ agents = [ Agent( agent_name="Facebook-Marketing-Agent", system_prompt=FACEBOOK_AGENT_SYS_PROMPT, - llm=model, + model_name="gpt-4.1", max_loops=1, dynamic_temperature_enabled=True, saved_state_path="facebook_agent.json", @@ -374,7 +353,7 @@ agents = [ Agent( agent_name="Email-Marketing-Agent", system_prompt=EMAIL_AGENT_SYS_PROMPT, - llm=model, + model_name="gpt-4.1", max_loops=1, dynamic_temperature_enabled=True, saved_state_path="email_agent.json", @@ -404,22 +383,11 @@ swarm.run( ## Additional Information and Tips -- **Thread Synchronization**: When working with multiple agents in a concurrent environment, it's crucial to ensure that access to shared resources is properly synchronized using locks to avoid race conditions. - -- **Autosave Feature**: If you enable the `autosave_on` flag, ensure that the file path provided is correct and writable. This feature is handy for long-running tasks where you want to periodically save the state. - -- **Error Handling** - -: Implementing proper error handling within your agents can prevent the swarm from crashing during execution. Consider catching exceptions in the `run` method and logging errors appropriately. - -- **Custom Agents**: You can extend the `Agent` class to create custom agents that perform specific tasks tailored to your application's needs. +| Tip/Feature | Description | +|------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Thread Synchronization** | When working with multiple agents in a concurrent environment, it's crucial to ensure that access to shared resources is properly synchronized using locks to avoid race conditions. | +| **Autosave Feature** | If you enable the `autosave_on` flag, ensure that the file path provided is correct and writable. This feature is handy for long-running tasks where you want to periodically save the state. | +| **Error Handling** | Implementing proper error handling within your agents can prevent the swarm from crashing during execution. Consider catching exceptions in the `run` method and logging errors appropriately. | +| **Custom Agents** | You can extend the `Agent` class to create custom agents that perform specific tasks tailored to your application's needs. | --- - -## References and Resources - -- [Python's `queue` module](https://docs.python.org/3/library/queue.html) -- [Python's `threading` module](https://docs.python.org/3/library/threading.html) -- [CSV File Handling in Python](https://docs.python.org/3/library/csv.html) -- [JSON Handling in Python](https://docs.python.org/3/library/json.html) - diff --git a/docs/swarms/structs/swarm_rearrange.md b/docs/swarms/structs/swarm_rearrange.md index 9297f117..ac1314a0 100644 --- a/docs/swarms/structs/swarm_rearrange.md +++ b/docs/swarms/structs/swarm_rearrange.md @@ -2,6 +2,8 @@ SwarmRearrange is a class for orchestrating multiple swarms in a sequential or parallel flow pattern. It provides thread-safe operations for managing swarm execution, history tracking, and flow validation. +Full Path: `from swarms.structs.swarm_rearrange import SwarmRearrange` + ## Constructor Arguments | Parameter | Type | Default | Description | @@ -38,7 +40,9 @@ Executes the swarm arrangement according to the flow pattern. The flow pattern uses arrow notation (`->`) to define execution order: - Sequential: `"SwarmA -> SwarmB -> SwarmC"` + - Parallel: `"SwarmA, SwarmB -> SwarmC"` + - Human intervention: Use `"H"` in the flow ## Examples @@ -49,22 +53,10 @@ The flow pattern uses arrow notation (`->`) to define execution order: from swarms.structs.swarm_rearrange import SwarmRearrange import os from swarms import Agent, AgentRearrange -from swarm_models import OpenAIChat # model = Anthropic(anthropic_api_key=os.getenv("ANTHROPIC_API_KEY")) company = "TGSC" -# 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( @@ -79,14 +71,8 @@ managing_director = Agent( 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, + model_name="gpt-4.1", max_loops=1, - dashboard=False, - streaming_on=True, - verbose=True, - stopping_token="", - state_save_file_type="json", - saved_state_path="managing-director.json", ) # Initialize the Vice President of Finance @@ -103,14 +89,8 @@ vp_finance = Agent( 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, + model_name="gpt-4.1", max_loops=1, - dashboard=False, - streaming_on=True, - verbose=True, - stopping_token="", - state_save_file_type="json", - saved_state_path="vp-finance.json", ) # Initialize the Industry Analyst @@ -127,14 +107,8 @@ industry_analyst = Agent( 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, + model_name="gpt-4.1", max_loops=1, - dashboard=False, - streaming_on=True, - verbose=True, - stopping_token="", - state_save_file_type="json", - saved_state_path="industry-analyst.json", ) # Initialize the Technology Expert @@ -151,14 +125,8 @@ tech_expert = Agent( 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, + model_name="gpt-4.1", max_loops=1, - dashboard=False, - streaming_on=True, - verbose=True, - stopping_token="", - state_save_file_type="json", - saved_state_path="tech-expert.json", ) # Initialize the Market Researcher @@ -175,14 +143,9 @@ market_researcher = Agent( 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, + model_name="gpt-4.1", max_loops=1, - dashboard=False, - streaming_on=True, - verbose=True, - stopping_token="", - state_save_file_type="json", - saved_state_path="market-researcher.json", + ) # Initialize the Regulatory Specialist @@ -199,14 +162,8 @@ regulatory_specialist = Agent( 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, + model_name="gpt-4.1", max_loops=1, - dashboard=False, - streaming_on=True, - verbose=True, - stopping_token="", - state_save_file_type="json", - saved_state_path="regulatory-specialist.json", ) # Create a list of agents @@ -284,51 +241,13 @@ arrangement = SwarmRearrange( result = arrangement.run("Initial task") ``` -### Complex Multi-Stage Pipeline - -```python -# Define multiple flow patterns -flows = [ - "Collector -> Processor -> Analyzer", - "Analyzer -> ML -> Validator", - "Validator -> Reporter" -] - -# Create arrangements for each flow -pipelines = [ - SwarmRearrange(name=f"Pipeline{i}", swarms=swarms, flow=flow) - for i, flow in enumerate(flows) -] - -# Create master arrangement -master = SwarmRearrange( - name="MasterPipeline", - swarms=pipelines, - flow="Pipeline0 -> Pipeline1 -> Pipeline2" -) - -# Execute complete pipeline -result = master.run("Start analysis") -``` ## Best Practices -1. **Flow Validation**: Always validate flows before execution -2. **Error Handling**: Implement try-catch blocks around run() calls -3. **History Tracking**: Use track_history() for monitoring swarm execution -4. **Resource Management**: Set appropriate max_loops to prevent infinite execution -5. **Logging**: Enable verbose mode during development for detailed logging - -## Error Handling - -The class implements comprehensive error handling: - -```python -try: - arrangement = SwarmRearrange(swarms=swarms, flow=flow) - result = arrangement.run(task) -except ValueError as e: - logger.error(f"Flow validation error: {e}") -except Exception as e: - logger.error(f"Execution error: {e}") -``` \ No newline at end of file +| Best Practice | Description | +|------------------------|-----------------------------------------------------------------------------------------------| +| **Flow Validation** | Always validate flows before execution | +| **Error Handling** | Implement try-catch blocks around `run()` calls | +| **History Tracking** | Use `track_history()` for monitoring swarm execution | +| **Resource Management**| Set appropriate `max_loops` to prevent infinite execution | +| **Logging** | Enable verbose mode during development for detailed logging |