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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
619d53091f2e43f6396e58257f834eb32a04659cae63ead832c56f3c6022e0f7
|
|
| MD5 |
338e87721948464010dc07b0d549ff85
|
|
| BLAKE2b-256 |
3567a2ca31420b16533b4db37c15819b2db3ccc6baeb99560fdaf9340007fe30
|
File details
Details for the file smolagents_crew-0.1.0-py3-none-any.whl.
File metadata
- Download URL: smolagents_crew-0.1.0-py3-none-any.whl
- Upload date:
- Size: 10.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e8ede55c6fedeb04e819c15f6119c9d1806c2d64d462eb1f0b8e5de6634bb494
|
|
| MD5 |
d659f9c2fe3d8af46fbf1752f9cee82f
|
|
| BLAKE2b-256 |
a5ca82d5420280080275f3361ffd681599f2d46a0fc00ba254da9674ca7c74e6
|