Skip to main content

A powerful framework for orchestrating multiple AI agents to work together efficiently

Project description

🤖 SmolagentsCrew

Orchestrate your AI dream team! 🚀 A framework built on top of smolagents from Hugging Face that brings multiple AI agents together to collaborate efficiently through smart threading and dependency management.

SmolagentsCrew serves as an orchestration layer that allows you to coordinate multiple smolagents, enabling them to work together on complex tasks while handling dependencies, parallel execution, and context sharing automatically.

✨ Features

  • 🔄 Concurrent Task Execution: Watch your agents work in parallel with efficient threading
  • 🔗 Smart Dependency Management: Let your tasks flow naturally with automatic dependency handling
  • 🌐 Context Sharing: Seamless data sharing between tasks through an intelligent context system
  • 🏗️ Flexible Agent Configuration: Build your perfect crew using our intuitive builder pattern
  • 📝 Template-based Prompts: Create dynamic, context-aware prompts with variable substitution

📦 Installation

Currently, you can install SmolagentsCrew locally from the repository:

git clone https://github.com/antunsz/smolagents-crew.git
cd smolagents-crew
pip install -e .

🔥 Coming Soon: SmolagentsCrew will be available on PyPI! Stay tuned for a simpler installation via pip install smolagents-crew

🚀 Quick Start

import os
from smolagents_crew import Agent, Task, Crew, TaskDependency
from smolagents import CodeAgent, DuckDuckGoSearchTool, OpenAIServerModel 

#you need to set your OPENAI_API_KEY var in you env
os.environ['OPENAI_API_KEY']=<sk-your_key>
# Create your AI dream team! 🤖
agent1 = Agent("research", agent_instance=CodeAgent, model=OpenAIServerModel('gpt-4o-mini'), tools=[DuckDuckGoSearchTool()])
agent2 = Agent("writer", agent_instance=CodeAgent, model=OpenAIServerModel('gpt-4o-mini'), tools=[DuckDuckGoSearchTool()])

# Define their missions with smart dependencies 📋
task1 = Task(
    name="research_topic",
    agent=agent1,
    prompt_template="Research about {topic}",
    result_key="research_result"
)

task2 = Task(
    name="write_article",
    agent=agent2,
    prompt_template="Write an article using this research: {research_result}",
    dependencies=[TaskDependency("research_topic", "research_result")]
)

# Assemble and launch your crew! 🚀
crew = Crew(
    agents={"research": agent1, "writer": agent2},
    tasks=[task1, task2],
    initial_context={"topic": "AI agents"}
)

results = crew.execute()

🔧 Advanced Usage

Using the Builder Pattern

SmolagentsCrew provides a builder pattern that simplifies the process of creating and configuring complex agent workflows. The builder pattern allows you to:

  • Construct crews step by step with clear, readable code
  • Validate agent configurations and dependencies automatically
  • Create reusable agent templates and workflows
  • Handle complex task chains and dependencies with ease

Here's how to use our builder pattern:

import os
os.environ["OPENAI_API_KEY"] = "sk-..."

from smolagents_crew import CrewBuilder, Task, Agent
from smolagents import CodeAgent, OpenAIServerModel, DuckDuckGoSearchTool

# Create a builder instance
builder = CrewBuilder()

# Create and add research agent
research_agent = Agent(
    "researcher",
    agent_instance=CodeAgent,
    model=OpenAIServerModel('gpt-4'),
    tools=[DuckDuckGoSearchTool()]
)
builder.add_agent("researcher", research_agent)

# Create and add writer agent
writer_agent = Agent(
    "writer",
    agent_instance=CodeAgent,
    model=OpenAIServerModel('gpt-4'),
    tools=[]
)
builder.add_agent("writer", writer_agent)

# Create research task
research_task = Task(
    name="research_topic",
    agent=research_agent,
    prompt_template="Research about {topic} and provide key findings",
    result_key="research_findings"
)

# Create writing task that depends on research results
writing_task = Task(
    name="write_article",
    agent=writer_agent,
    prompt_template="Write an article using the following research: {research_findings}",
    result_key="final_article",
    dependencies=[TaskDependency("research_topic", "research_findings")]
)

# Add tasks to the builder
builder.add_task(research_task)
builder.add_task(writing_task)

# Add shared context
builder.add_shared_context("topic", "Artificial Intelligence in Healthcare")

# Print the crew structure for visualization
builder.print_crew()

# Build and execute the crew
crew = builder.build()
results = crew.execute()

# Access the final article
print("\nFinal Article:")
print(results["final_article"])

🤝 Contributing

Join our crew! We love contributions that make our framework even better. Feel free to submit a Pull Request! 💪

📄 License

This project is licensed under the MIT License - see the LICENSE file for details. 📜

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

smolagents_crew-0.1.0.tar.gz (11.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

smolagents_crew-0.1.0-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

Details for the file smolagents_crew-0.1.0.tar.gz.

File metadata

  • Download URL: smolagents_crew-0.1.0.tar.gz
  • Upload date:
  • Size: 11.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for smolagents_crew-0.1.0.tar.gz
Algorithm Hash digest
SHA256 619d53091f2e43f6396e58257f834eb32a04659cae63ead832c56f3c6022e0f7
MD5 338e87721948464010dc07b0d549ff85
BLAKE2b-256 3567a2ca31420b16533b4db37c15819b2db3ccc6baeb99560fdaf9340007fe30

See more details on using hashes here.

File details

Details for the file smolagents_crew-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for smolagents_crew-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e8ede55c6fedeb04e819c15f6119c9d1806c2d64d462eb1f0b8e5de6634bb494
MD5 d659f9c2fe3d8af46fbf1752f9cee82f
BLAKE2b-256 a5ca82d5420280080275f3361ffd681599f2d46a0fc00ba254da9674ca7c74e6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page