swarms 7.9.7__py3-none-any.whl → 7.9.8__py3-none-any.whl

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.
@@ -45,19 +45,36 @@ def list_all_agents(
45
45
  Description: Second agent description...
46
46
  """
47
47
 
48
- # Compile information about all agents
48
+ # Compile and describe all agents in the team
49
49
  total_agents = len(agents)
50
50
 
51
- all_agents = f"Team Name: {name}\n" if name else ""
52
- all_agents += (
53
- f"Team Description: {description}\n" if description else ""
54
- )
51
+ all_agents = ""
52
+ if name:
53
+ all_agents += f"Team Name: {name}\n"
54
+ if description:
55
+ all_agents += f"Team Description: {description}\n"
56
+ all_agents += "These are the agents in your team. Each agent has a specific role and expertise to contribute to the team's objectives.\n"
55
57
  all_agents += f"Total Agents: {total_agents}\n\n"
56
- all_agents += "| Agent | Description |\n"
57
- all_agents += "|-------|-------------|\n"
58
- all_agents += "\n".join(
59
- f"| {agent.agent_name} | {agent.description or (agent.system_prompt[:50] + '...' if len(agent.system_prompt) > 50 else agent.system_prompt)} |"
60
- for agent in agents
58
+ all_agents += "Below is a summary of your team members and their primary responsibilities:\n"
59
+ all_agents += "| Agent Name | Description |\n"
60
+ all_agents += "|------------|-------------|\n"
61
+ for agent in agents:
62
+ agent_name = getattr(
63
+ agent,
64
+ "agent_name",
65
+ getattr(agent, "name", "Unknown Agent"),
66
+ )
67
+ # Try to get a meaningful description or fallback to system prompt
68
+ agent_desc = getattr(agent, "description", None)
69
+ if not agent_desc:
70
+ agent_desc = getattr(agent, "system_prompt", "")
71
+ if len(agent_desc) > 50:
72
+ agent_desc = agent_desc[:50] + "..."
73
+ all_agents += f"| {agent_name} | {agent_desc} |\n"
74
+
75
+ all_agents += (
76
+ "\nEach agent is designed to handle tasks within their area of expertise. "
77
+ "Collaborate effectively by assigning tasks according to these roles."
61
78
  )
62
79
 
63
80
  if add_to_conversation:
@@ -67,13 +84,16 @@ def list_all_agents(
67
84
  content=all_agents,
68
85
  )
69
86
 
70
- if add_collaboration_prompt:
71
- return get_multi_agent_collaboration_prompt_one(
72
- agents_in_swarm=all_agents
87
+ return None
88
+
89
+ elif add_collaboration_prompt:
90
+ all_agents += get_multi_agent_collaboration_prompt_one(
91
+ agents=all_agents
73
92
  )
74
- else:
75
93
  return all_agents
76
94
 
95
+ return all_agents
96
+
77
97
 
78
98
  models = [
79
99
  "anthropic/claude-3-sonnet-20240229",
@@ -0,0 +1,5 @@
1
+ def litellm_check_for_tools(model_name: str):
2
+ """Check if the model supports tools."""
3
+ from litellm.utils import supports_function_calling
4
+
5
+ return supports_function_calling(model_name)
@@ -212,44 +212,62 @@ class LiteLLM:
212
212
  Process vision input specifically for Anthropic models.
213
213
  Handles Anthropic's specific image format requirements.
214
214
  """
215
- # Get base64 encoded image
216
- image_url = get_image_base64(image)
217
-
218
- # Extract mime type from the data URI or use default
219
- mime_type = "image/jpeg" # default
220
- if "data:" in image_url and ";base64," in image_url:
221
- mime_type = image_url.split(";base64,")[0].split("data:")[
222
- 1
223
- ]
224
-
225
- # Ensure mime type is one of the supported formats
226
- supported_formats = [
227
- "image/jpeg",
228
- "image/png",
229
- "image/gif",
230
- "image/webp",
231
- ]
232
- if mime_type not in supported_formats:
233
- mime_type = (
234
- "image/jpeg" # fallback to jpeg if unsupported
215
+ # Check if we can use direct URL
216
+ if self._should_use_direct_url(image):
217
+ # Use direct URL without base64 conversion
218
+ messages.append(
219
+ {
220
+ "role": "user",
221
+ "content": [
222
+ {"type": "text", "text": task},
223
+ {
224
+ "type": "image_url",
225
+ "image_url": {
226
+ "url": image,
227
+ },
228
+ },
229
+ ],
230
+ }
235
231
  )
232
+ else:
233
+ # Fall back to base64 conversion for local files
234
+ image_url = get_image_base64(image)
235
+
236
+ # Extract mime type from the data URI or use default
237
+ mime_type = "image/jpeg" # default
238
+ if "data:" in image_url and ";base64," in image_url:
239
+ mime_type = image_url.split(";base64,")[0].split(
240
+ "data:"
241
+ )[1]
242
+
243
+ # Ensure mime type is one of the supported formats
244
+ supported_formats = [
245
+ "image/jpeg",
246
+ "image/png",
247
+ "image/gif",
248
+ "image/webp",
249
+ ]
250
+ if mime_type not in supported_formats:
251
+ mime_type = (
252
+ "image/jpeg" # fallback to jpeg if unsupported
253
+ )
236
254
 
237
- # Construct Anthropic vision message
238
- messages.append(
239
- {
240
- "role": "user",
241
- "content": [
242
- {"type": "text", "text": task},
243
- {
244
- "type": "image_url",
245
- "image_url": {
246
- "url": image_url,
247
- "format": mime_type,
255
+ # Construct Anthropic vision message with base64
256
+ messages.append(
257
+ {
258
+ "role": "user",
259
+ "content": [
260
+ {"type": "text", "text": task},
261
+ {
262
+ "type": "image_url",
263
+ "image_url": {
264
+ "url": image_url,
265
+ "format": mime_type,
266
+ },
248
267
  },
249
- },
250
- ],
251
- }
252
- )
268
+ ],
269
+ }
270
+ )
253
271
 
254
272
  return messages
255
273
 
@@ -260,21 +278,31 @@ class LiteLLM:
260
278
  Process vision input specifically for OpenAI models.
261
279
  Handles OpenAI's specific image format requirements.
262
280
  """
263
- # Get base64 encoded image with proper format
264
- image_url = get_image_base64(image)
265
-
266
- # Prepare vision message
267
- vision_message = {
268
- "type": "image_url",
269
- "image_url": {"url": image_url},
270
- }
271
-
272
- # Add format for specific models
273
- extension = Path(image).suffix.lower()
274
- mime_type = (
275
- f"image/{extension[1:]}" if extension else "image/jpeg"
276
- )
277
- vision_message["image_url"]["format"] = mime_type
281
+ # Check if we can use direct URL
282
+ if self._should_use_direct_url(image):
283
+ # Use direct URL without base64 conversion
284
+ vision_message = {
285
+ "type": "image_url",
286
+ "image_url": {"url": image},
287
+ }
288
+ else:
289
+ # Fall back to base64 conversion for local files
290
+ image_url = get_image_base64(image)
291
+
292
+ # Prepare vision message with base64
293
+ vision_message = {
294
+ "type": "image_url",
295
+ "image_url": {"url": image_url},
296
+ }
297
+
298
+ # Add format for specific models
299
+ extension = Path(image).suffix.lower()
300
+ mime_type = (
301
+ f"image/{extension[1:]}"
302
+ if extension
303
+ else "image/jpeg"
304
+ )
305
+ vision_message["image_url"]["format"] = mime_type
278
306
 
279
307
  # Append vision message
280
308
  messages.append(
@@ -289,44 +317,79 @@ class LiteLLM:
289
317
 
290
318
  return messages
291
319
 
320
+ def _should_use_direct_url(self, image: str) -> bool:
321
+ """
322
+ Determine if we should use direct URL passing instead of base64 conversion.
323
+
324
+ Args:
325
+ image (str): The image source (URL or file path)
326
+
327
+ Returns:
328
+ bool: True if we should use direct URL, False if we need base64 conversion
329
+ """
330
+ # Only use direct URL for HTTP/HTTPS URLs
331
+ if not image.startswith(("http://", "https://")):
332
+ return False
333
+
334
+ # Check for local/custom models that might not support direct URLs
335
+ model_lower = self.model_name.lower()
336
+ local_indicators = [
337
+ "localhost",
338
+ "127.0.0.1",
339
+ "local",
340
+ "custom",
341
+ "ollama",
342
+ "llama-cpp",
343
+ ]
344
+
345
+ is_local = any(
346
+ indicator in model_lower for indicator in local_indicators
347
+ ) or (
348
+ self.base_url is not None
349
+ and any(
350
+ indicator in self.base_url.lower()
351
+ for indicator in local_indicators
352
+ )
353
+ )
354
+
355
+ if is_local:
356
+ return False
357
+
358
+ # Use LiteLLM's supports_vision to check if model supports vision and direct URLs
359
+ try:
360
+ return supports_vision(model=self.model_name)
361
+ except Exception:
362
+ return False
363
+
292
364
  def vision_processing(
293
365
  self, task: str, image: str, messages: Optional[list] = None
294
366
  ):
295
367
  """
296
368
  Process the image for the given task.
297
369
  Handles different image formats and model requirements.
370
+
371
+ This method now intelligently chooses between:
372
+ 1. Direct URL passing (when model supports it and image is a URL)
373
+ 2. Base64 conversion (for local files or unsupported models)
374
+
375
+ This approach reduces server load and improves performance by avoiding
376
+ unnecessary image downloads and base64 conversions when possible.
298
377
  """
299
- # # # Handle Anthropic models separately
300
- # # if "anthropic" in self.model_name.lower() or "claude" in self.model_name.lower():
301
- # # messages = self.anthropic_vision_processing(task, image, messages)
302
- # # return messages
303
-
304
- # # Get base64 encoded image with proper format
305
- # image_url = get_image_base64(image)
306
-
307
- # # Prepare vision message
308
- # vision_message = {
309
- # "type": "image_url",
310
- # "image_url": {"url": image_url},
311
- # }
312
-
313
- # # Add format for specific models
314
- # extension = Path(image).suffix.lower()
315
- # mime_type = f"image/{extension[1:]}" if extension else "image/jpeg"
316
- # vision_message["image_url"]["format"] = mime_type
317
-
318
- # # Append vision message
319
- # messages.append(
320
- # {
321
- # "role": "user",
322
- # "content": [
323
- # {"type": "text", "text": task},
324
- # vision_message,
325
- # ],
326
- # }
327
- # )
328
-
329
- # return messages
378
+ logger.info(f"Processing image for model: {self.model_name}")
379
+
380
+ # Log whether we're using direct URL or base64 conversion
381
+ if self._should_use_direct_url(image):
382
+ logger.info(
383
+ f"Using direct URL passing for image: {image[:100]}..."
384
+ )
385
+ else:
386
+ if image.startswith(("http://", "https://")):
387
+ logger.info(
388
+ "Converting URL image to base64 (model doesn't support direct URLs)"
389
+ )
390
+ else:
391
+ logger.info("Converting local file to base64")
392
+
330
393
  if (
331
394
  "anthropic" in self.model_name.lower()
332
395
  or "claude" in self.model_name.lower()
@@ -370,7 +433,16 @@ class LiteLLM:
370
433
 
371
434
  def check_if_model_supports_vision(self, img: str = None):
372
435
  """
373
- Check if the model supports vision.
436
+ Check if the model supports vision capabilities.
437
+
438
+ This method uses LiteLLM's built-in supports_vision function to verify
439
+ that the model can handle image inputs before processing.
440
+
441
+ Args:
442
+ img (str, optional): Image path/URL to validate against model capabilities
443
+
444
+ Raises:
445
+ ValueError: If the model doesn't support vision and an image is provided
374
446
  """
375
447
  if img is not None:
376
448
  out = supports_vision(model=self.model_name)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: swarms
3
- Version: 7.9.7
3
+ Version: 7.9.8
4
4
  Summary: Swarms - TGSC
5
5
  License: MIT
6
6
  Keywords: artificial intelligence,deep learning,optimizers,Prompt Engineering,swarms,agents,llms,transformers,multi-agent,swarms of agents,Enterprise-Grade Agents,Production-Grade Agents,Agents,Multi-Grade-Agents,Swarms,Transformers,LLMs,Prompt Engineering,Agents,Generative Agents,Generative AI,Agent Marketplace,Agent Store,quant,finance,algorithmic trading,portfolio optimization,risk management,financial modeling,machine learning for finance,natural language processing for finance
@@ -268,6 +268,7 @@ print(final_post)
268
268
  | **[GroupChat](https://docs.swarms.world/en/latest/swarms/structs/group_chat/)** | Agents collaborate and make decisions through a conversational interface. | Real-time collaborative decision-making, negotiations, brainstorming. |
269
269
  | **[ForestSwarm](https://docs.swarms.world/en/latest/swarms/structs/forest_swarm/)** | Dynamically selects the most suitable agent or tree of agents for a given task. | Task routing, optimizing for expertise, complex decision-making trees. |
270
270
  | **[SpreadSheetSwarm](https://docs.swarms.world/en/latest/swarms/structs/spreadsheet_swarm/)** | Manages thousands of agents concurrently, tracking tasks and outputs in a structured format. | Massive-scale parallel operations, large-scale data generation and analysis. |
271
+ | **[HierarchicalSwarm](https://docs.swarms.world/en/latest/swarms/structs/hiearchical_swarm/)** | Orchestrates agents with a director that creates plans and distributes tasks to specialized worker agents. | Complex project management, team coordination, hierarchical decision-making with feedback loops. |
271
272
  | **[SwarmRouter](https://docs.swarms.world/en/latest/swarms/structs/swarm_router/)** | Universal orchestrator that provides a single interface to run any type of swarm with dynamic selection. | Simplifying complex workflows, switching between swarm strategies, unified multi-agent management. |
272
273
 
273
274
  -----
@@ -513,6 +514,66 @@ for message in conversation_history:
513
514
  print(f"[{message['agent_name']}]: {message['content']}")
514
515
  ```
515
516
 
517
+ ----
518
+
519
+ ### HierarchicalSwarm
520
+
521
+ `HierarchicalSwarm` implements a director-worker pattern where a central director agent creates comprehensive plans and distributes specific tasks to specialized worker agents. The director evaluates results and can issue new orders in feedback loops, making it ideal for complex project management and team coordination scenarios.
522
+
523
+ ```python
524
+ from swarms import Agent, HierarchicalSwarm
525
+
526
+ # Define specialized worker agents
527
+ content_strategist = Agent(
528
+ agent_name="Content-Strategist",
529
+ system_prompt="You are a senior content strategist. Develop comprehensive content strategies, editorial calendars, and content roadmaps.",
530
+ model_name="gpt-4o-mini"
531
+ )
532
+
533
+ creative_director = Agent(
534
+ agent_name="Creative-Director",
535
+ system_prompt="You are a creative director. Develop compelling advertising concepts, visual directions, and campaign creativity.",
536
+ model_name="gpt-4o-mini"
537
+ )
538
+
539
+ seo_specialist = Agent(
540
+ agent_name="SEO-Specialist",
541
+ system_prompt="You are an SEO expert. Conduct keyword research, optimize content, and develop organic growth strategies.",
542
+ model_name="gpt-4o-mini"
543
+ )
544
+
545
+ brand_strategist = Agent(
546
+ agent_name="Brand-Strategist",
547
+ system_prompt="You are a brand strategist. Develop brand positioning, identity systems, and market differentiation strategies.",
548
+ model_name="gpt-4o-mini"
549
+ )
550
+
551
+ # Create the hierarchical swarm with a director
552
+ marketing_swarm = HierarchicalSwarm(
553
+ name="Marketing-Team-Swarm",
554
+ description="A comprehensive marketing team with specialized agents coordinated by a director",
555
+ agents=[content_strategist, creative_director, seo_specialist, brand_strategist],
556
+ max_loops=2, # Allow for feedback and refinement
557
+ verbose=True
558
+ )
559
+
560
+ # Run the swarm on a complex marketing challenge
561
+ result = marketing_swarm.run(
562
+ "Develop a comprehensive marketing strategy for a new SaaS product launch. "
563
+ "The product is a project management tool targeting small to medium businesses. "
564
+ "Coordinate the team to create content strategy, creative campaigns, SEO optimization, "
565
+ "and brand positioning that work together cohesively."
566
+ )
567
+
568
+ print(result)
569
+ ```
570
+
571
+ The `HierarchicalSwarm` excels at:
572
+ - **Complex Project Management**: Breaking down large tasks into specialized subtasks
573
+ - **Team Coordination**: Ensuring all agents work toward unified goals
574
+ - **Quality Control**: Director provides feedback and refinement loops
575
+ - **Scalable Workflows**: Easy to add new specialized agents as needed
576
+
516
577
  ---
517
578
 
518
579
  ## Documentation
@@ -522,44 +583,96 @@ Documentation is located here at: [docs.swarms.world](https://docs.swarms.world)
522
583
 
523
584
  ---
524
585
 
586
+ ## Examples
525
587
 
526
- ## Guides and Walkthroughs
588
+ Explore comprehensive examples and tutorials to learn how to use Swarms effectively.
527
589
 
528
- Here are quick reference guides on how to get started with swarms.
590
+ ### Basic Examples
529
591
 
530
- | Section | Description | Links |
531
- |----------------------|--------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|
532
- | Installation | Complete setup guide for Swarms in your environment | [Installation](https://docs.swarms.world/en/latest/swarms/install/install/) |
533
- | Quickstart | Get up and running with your first swarm in minutes | [Get Started](https://docs.swarms.world/en/latest/swarms/install/quickstart/) |
534
- | Agent Internal Mechanisms | Deep dive into how agents work internally | [Agent Architecture](https://docs.swarms.world/en/latest/swarms/framework/agents_explained/) |
535
- | Agent API | Complete reference for the Agent class and its methods | [Agent API](https://docs.swarms.world/en/latest/swarms/structs/agent/) |
536
- | Integrating External Agents | Connect Swarms with other AI frameworks like Griptape and Autogen | [Integrating External APIs](https://docs.swarms.world/en/latest/swarms/agents/external_party_agents/) |
537
- | Creating Agents from YAML | Define and configure agents using YAML configuration files | [Creating Agents from YAML](https://docs.swarms.world/en/latest/swarms/agents/create_agents_yaml/) |
538
- | Why You Need Swarms | Understanding the benefits of multi-agent collaboration | [Why Multi-Agent Collaboration is Necessary](https://docs.swarms.world/en/latest/swarms/concept/why/) |
539
- | Multi-Agent Architectures Analysis | Comprehensive analysis of different swarm patterns and architectures | [Multi-Agent Architectures](https://docs.swarms.world/en/latest/swarms/concept/swarm_architectures/) |
540
- | Choosing the Right Swarm | Guide to selecting the optimal swarm architecture for your specific business needs | [Business Problem Guide](https://docs.swarms.world/en/latest/swarms/concept/swarm_architectures/) |
541
- | AgentRearrange Docs | Documentation for dynamic agent rearrangement and workflow optimization | [AgentRearrange API](https://docs.swarms.world/en/latest/swarms/structs/agent_rearrange/) |
592
+ | Example | Description | Link |
593
+ |---------|-------------|------|
594
+ | Basic Agent | Simple agent setup and usage | [Basic Agent](https://docs.swarms.world/en/latest/swarms/examples/basic_agent/) |
595
+ | Agent with Tools | Using agents with various tools | [Agent with Tools](https://docs.swarms.world/en/latest/swarms/examples/agent_with_tools/) |
596
+ | Agent with Structured Outputs | Working with structured data outputs | [Structured Outputs](https://docs.swarms.world/en/latest/swarms/examples/agent_structured_outputs/) |
597
+ | Agent with MCP Integration | Model Context Protocol integration | [MCP Integration](https://docs.swarms.world/en/latest/swarms/examples/agent_with_mcp/) |
598
+ | Vision Processing | Agents with image processing capabilities | [Vision Processing](https://docs.swarms.world/en/latest/swarms/examples/vision_processing/) |
599
+ | Multiple Images | Working with multiple images | [Multiple Images](https://docs.swarms.world/en/latest/swarms/examples/multiple_images/) |
600
+ | Vision and Tools | Combining vision with tool usage | [Vision and Tools](https://docs.swarms.world/en/latest/swarms/examples/vision_tools/) |
601
+ | Agent Streaming | Real-time agent output streaming | [Agent Streaming](https://docs.swarms.world/en/latest/examples/agent_stream/) |
602
+ | Agent Output Types | Different output formats and types | [Output Types](https://docs.swarms.world/en/latest/swarms/examples/agent_output_types/) |
603
+ | Gradio Chat Interface | Building interactive chat interfaces | [Gradio UI](https://docs.swarms.world/en/latest/swarms/ui/main/) |
542
604
 
605
+ ### Model Provider Examples
543
606
 
607
+ | Provider | Description | Link |
608
+ |----------|-------------|------|
609
+ | Model Providers Overview | Complete guide to supported models | [Model Providers](https://docs.swarms.world/en/latest/swarms/examples/model_providers/) |
610
+ | OpenAI | OpenAI model integration | [OpenAI Examples](https://docs.swarms.world/en/latest/swarms/examples/openai_example/) |
611
+ | Anthropic | Claude model integration | [Anthropic Examples](https://docs.swarms.world/en/latest/swarms/examples/claude/) |
612
+ | Groq | Groq model integration | [Groq Examples](https://docs.swarms.world/en/latest/swarms/examples/groq/) |
613
+ | Cohere | Cohere model integration | [Cohere Examples](https://docs.swarms.world/en/latest/swarms/examples/cohere/) |
614
+ | DeepSeek | DeepSeek model integration | [DeepSeek Examples](https://docs.swarms.world/en/latest/swarms/examples/deepseek/) |
615
+ | Ollama | Local Ollama model integration | [Ollama Examples](https://docs.swarms.world/en/latest/swarms/examples/ollama/) |
616
+ | OpenRouter | OpenRouter model integration | [OpenRouter Examples](https://docs.swarms.world/en/latest/swarms/examples/openrouter/) |
617
+ | XAI | XAI model integration | [XAI Examples](https://docs.swarms.world/en/latest/swarms/examples/xai/) |
618
+ | VLLM | VLLM integration | [VLLM Examples](https://docs.swarms.world/en/latest/swarms/examples/vllm_integration/) |
619
+ | Llama4 | Llama4 model integration | [Llama4 Examples](https://docs.swarms.world/en/latest/swarms/examples/llama4/) |
620
+
621
+ ### Multi-Agent Architecture Examples
622
+
623
+ | Architecture | Description | Link |
624
+ |--------------|-------------|------|
625
+ | HierarchicalSwarm | Hierarchical agent orchestration | [HierarchicalSwarm Examples](https://docs.swarms.world/en/latest/swarms/examples/hierarchical_swarm_example/) |
626
+ | Hybrid Hierarchical-Cluster Swarm | Advanced hierarchical patterns | [HHCS Examples](https://docs.swarms.world/en/latest/swarms/examples/hhcs_examples/) |
627
+ | GroupChat | Multi-agent conversations | [GroupChat Examples](https://docs.swarms.world/en/latest/swarms/examples/groupchat_example/) |
628
+ | Sequential Workflow | Step-by-step agent workflows | [Sequential Examples](https://docs.swarms.world/en/latest/swarms/examples/sequential_example/) |
629
+ | SwarmRouter | Universal swarm orchestration | [SwarmRouter Examples](https://docs.swarms.world/en/latest/swarms/examples/swarm_router/) |
630
+ | MultiAgentRouter | Minimal router example | [MultiAgentRouter Examples](https://docs.swarms.world/en/latest/swarms/examples/multi_agent_router_minimal/) |
631
+ | ConcurrentWorkflow | Parallel agent execution | [Concurrent Examples](https://docs.swarms.world/en/latest/swarms/examples/concurrent_workflow/) |
632
+ | Mixture of Agents | Expert agent collaboration | [MoA Examples](https://docs.swarms.world/en/latest/swarms/examples/moa_example/) |
633
+ | Unique Swarms | Specialized swarm patterns | [Unique Swarms](https://docs.swarms.world/en/latest/swarms/examples/unique_swarms/) |
634
+ | Agents as Tools | Using agents as tools in workflows | [Agents as Tools](https://docs.swarms.world/en/latest/swarms/examples/agents_as_tools/) |
635
+ | Aggregate Responses | Combining multiple agent outputs | [Aggregate Examples](https://docs.swarms.world/en/latest/swarms/examples/aggregate/) |
636
+ | Interactive GroupChat | Real-time agent interactions | [Interactive GroupChat](https://docs.swarms.world/en/latest/swarms/examples/igc_example/) |
637
+
638
+ ### Application Examples
639
+
640
+ | Application | Description | Link |
641
+ |-------------|-------------|------|
642
+ | Swarms DAO | Decentralized autonomous organization | [Swarms DAO](https://docs.swarms.world/en/latest/swarms/examples/swarms_dao/) |
643
+ | Browser Agents | Web automation with agents | [Browser Agents](https://docs.swarms.world/en/latest/swarms/examples/swarms_of_browser_agents/) |
644
+ | VLLM Agents | High-performance model serving | [VLLM Agents](https://docs.swarms.world/en/latest/swarms/examples/vllm/) |
645
+ | Medical Analysis | Healthcare applications | [Medical Examples](https://docs.swarms.world/en/latest/swarms/examples/swarms_api_medical/) |
646
+ | Finance Analysis | Financial applications | [Finance Examples](https://docs.swarms.world/en/latest/swarms/examples/swarms_api_finance/) |
647
+
648
+ ### Cookbook and Templates
649
+
650
+ | Resource | Description | Link |
651
+ |----------|-------------|------|
652
+ | Examples Overview | Complete examples directory | [Examples Index](https://docs.swarms.world/en/latest/examples/) |
653
+ | Cookbook Index | Curated example collection | [Cookbook](https://docs.swarms.world/en/latest/examples/cookbook_index/) |
654
+ | Paper Implementations | Research paper implementations | [Paper Implementations](https://docs.swarms.world/en/latest/examples/paper_implementations/) |
655
+ | Templates & Applications | Reusable templates | [Templates](https://docs.swarms.world/en/latest/examples/templates/) |
544
656
 
545
657
  ---
546
658
 
659
+ ## Contribute to Swarms
547
660
 
548
- ## 🫶 Contribute to Swarms
661
+ Our mission is to accelerate the transition to a fully autonomous world economy by providing enterprise-grade, production-ready infrastructure that enables seamless deployment and orchestration of millions of autonomous agents. We are creating the operating system for the agent economy, and we need your help to achieve this goal.
549
662
 
550
- Swarms is built by the community, for the community. We believe that collaborative development is the key to pushing the boundaries of what's possible with multi-agent AI. Your contributions are not only welcome—they are essential to our mission. [Learn more about why you should contribute to swarms](https://docs.swarms.world/en/latest/contributors/main/)
663
+ Swarms is built by the community, for the community. We believe that collaborative development is the key to pushing the boundaries of what's possible with multi-agent AI. Your contributions are not only welcome—they are essential to our mission. [Learn more about why you should contribute to Swarms](https://docs.swarms.world/en/latest/contributors/main/)
551
664
 
552
665
  ### Why Contribute?
553
666
 
554
667
  By joining us, you have the opportunity to:
555
668
 
556
- * 🚀 **Work on the Frontier of agents:** Shape the future of autonomous agent technology and help build a production-grade, open-source framework.
669
+ * **Work on the Frontier of Agents:** Shape the future of autonomous agent technology and help build a production-grade, open-source framework.
557
670
 
558
- * 🤝 **Join a Vibrant Community:** Collaborate with a passionate and growing group of agent developers, researchers, and AI enthusiasts.
671
+ * **Join a Vibrant Community:** Collaborate with a passionate and growing group of agent developers, researchers, and AI enthusiasts.
559
672
 
560
- * 🛠️ **Make a Tangible Impact:** Whether you're fixing a bug, adding a new feature, or improving documentation, your work will be used in real-world applications.
673
+ * **Make a Tangible Impact:** Whether you're fixing a bug, adding a new feature, or improving documentation, your work will be used in real-world applications.
561
674
 
562
- * 📚 **Learn and Grow:** Gain hands-on experience with advanced AI concepts and strengthen your software engineering skills.
675
+ * **Learn and Grow:** Gain hands-on experience with advanced AI concepts and strengthen your software engineering skills.
563
676
 
564
677
  Discover more about our mission and the benefits of becoming a contributor in our official [**Contributor's Guide**](https://docs.swarms.world/en/latest/contributors/main/).
565
678
 
@@ -567,13 +680,13 @@ Discover more about our mission and the benefits of becoming a contributor in ou
567
680
 
568
681
  We've made it easy to start contributing. Here's how you can help:
569
682
 
570
- 1. **Find an Issue to Tackle:** The best way to begin is by visiting our [**contributing project board**](https://github.com/users/kyegomez/projects/1). Look for issues tagged with `good first issue`—these are specifically selected for new contributors.
683
+ 1. **Find an Issue to Tackle:** The best way to begin is by visiting our [**contributing project board**](https://github.com/users/kyegomez/projects/1). Look for issues tagged with `good first issue`—these are specifically selected for new contributors.
571
684
 
572
- 2. **Report a Bug or Request a Feature:** Have a new idea or found something that isn't working right? We'd love to hear from you. Please [**file a Bug Report or Feature Request**](https://github.com/kyegomez/swarms/issues) on our GitHub Issues page.
685
+ 2. **Report a Bug or Request a Feature:** Have a new idea or found something that isn't working right? We'd love to hear from you. Please [**file a Bug Report or Feature Request**](https://github.com/kyegomez/swarms/issues) on our GitHub Issues page.
573
686
 
574
- 3. **Understand Our Workflow and Standards:** Before submitting your work, please review our complete [**Contribution Guidelines**](https://github.com/kyegomez/swarms/blob/master/CONTRIBUTING.md). To help maintain code quality, we also encourage you to read our guide on [**Code Cleanliness**](https://docs.swarms.world/en/latest/swarms/framework/code_cleanliness/).
687
+ 3. **Understand Our Workflow and Standards:** Before submitting your work, please review our complete [**Contribution Guidelines**](https://github.com/kyegomez/swarms/blob/master/CONTRIBUTING.md). To help maintain code quality, we also encourage you to read our guide on [**Code Cleanliness**](https://docs.swarms.world/en/latest/swarms/framework/code_cleanliness/).
575
688
 
576
- 4. **Join the Discussion:** To participate in roadmap discussions and connect with other developers, join our community on [**Discord**](https://discord.gg/jM3Z6M9uMq).
689
+ 4. **Join the Discussion:** To participate in roadmap discussions and connect with other developers, join our community on [**Discord**](https://discord.gg/jM3Z6M9uMq).
577
690
 
578
691
 
579
692
  ### ✨ Our Valued Contributors
@@ -620,7 +733,5 @@ If you use **swarms** in your research, please cite the project by referencing t
620
733
 
621
734
  # License
622
735
 
623
- APACHE
624
-
625
-
736
+ Swarms is licensed under the Apache License 2.0. [Learn more here](./LICENSE)
626
737