
Security News
New Website βIs It Really FOSS?β Tracks Transparency in Open Source Distribution Models
A new site reviews software projects to reveal if theyβre truly FOSS, making complex licensing and distribution models easy to understand.
Build powerful AI agent crews in Ruby that work together to accomplish complex tasks.
RCrewAI is a Ruby implementation of the CrewAI framework, allowing you to create autonomous AI agents that collaborate to solve problems and complete tasks with human oversight and enterprise-grade features.
Add this line to your application's Gemfile:
gem 'rcrewai'
And then execute:
$ bundle install
Or install it yourself as:
$ gem install rcrewai
require 'rcrewai'
# Configure your LLM provider
RCrewAI.configure do |config|
config.llm_provider = :openai # or :anthropic, :google, :azure, :ollama
config.temperature = 0.1
end
# Create intelligent agents with specialized tools
researcher = RCrewAI::Agent.new(
name: "researcher",
role: "Senior Research Analyst",
goal: "Uncover cutting-edge developments in AI",
backstory: "Expert at finding and analyzing the latest tech trends",
tools: [RCrewAI::Tools::WebSearch.new],
verbose: true
)
writer = RCrewAI::Agent.new(
name: "writer",
role: "Tech Content Strategist",
goal: "Create compelling technical content",
backstory: "Skilled at transforming research into engaging articles",
tools: [RCrewAI::Tools::FileWriter.new]
)
# Create crew with sequential process
crew = RCrewAI::Crew.new("ai_research_crew")
crew.add_agent(researcher)
crew.add_agent(writer)
# Define tasks with dependencies
research_task = RCrewAI::Task.new(
name: "research_ai_trends",
description: "Research the latest developments in AI for 2024",
agent: researcher,
expected_output: "Comprehensive report on AI trends with key insights"
)
writing_task = RCrewAI::Task.new(
name: "write_article",
description: "Write an engaging 1000-word article about AI trends",
agent: writer,
context: [research_task], # Uses research results as context
expected_output: "Publication-ready article saved as ai_trends.md"
)
crew.add_task(research_task)
crew.add_task(writing_task)
# Execute - agents will reason, search, and produce real results!
results = crew.execute
puts "β
Crew completed #{results[:completed_tasks]}/#{results[:total_tasks]} tasks"
# OpenAI (GPT-4, GPT-3.5, etc.)
RCrewAI.configure do |config|
config.llm_provider = :openai
config.openai_api_key = ENV['OPENAI_API_KEY']
config.model = 'gpt-4'
end
# Anthropic Claude
RCrewAI.configure do |config|
config.llm_provider = :anthropic
config.anthropic_api_key = ENV['ANTHROPIC_API_KEY']
config.model = 'claude-3-sonnet-20240229'
end
# Google Gemini
RCrewAI.configure do |config|
config.llm_provider = :google
config.google_api_key = ENV['GOOGLE_API_KEY']
config.model = 'gemini-pro'
end
# Azure OpenAI
RCrewAI.configure do |config|
config.llm_provider = :azure
config.azure_api_key = ENV['AZURE_OPENAI_API_KEY']
config.azure_endpoint = ENV['AZURE_OPENAI_ENDPOINT']
config.model = 'gpt-4'
end
# Local Ollama
RCrewAI.configure do |config|
config.llm_provider = :ollama
config.ollama_url = 'http://localhost:11434'
config.model = 'llama2'
end
# Create a hierarchical crew with manager coordination
crew = RCrewAI::Crew.new("enterprise_team", process: :hierarchical)
# Manager agent coordinates the team
manager = RCrewAI::Agent.new(
name: "project_manager",
role: "Senior Project Manager",
goal: "Coordinate team execution efficiently",
manager: true,
allow_delegation: true
)
# Specialist agents with human-in-the-loop capabilities
data_analyst = RCrewAI::Agent.new(
name: "data_analyst",
role: "Senior Data Analyst",
goal: "Analyze data with human validation",
tools: [RCrewAI::Tools::SqlDatabase.new],
human_input: true, # Enable human interaction
require_approval_for_tools: true, # Human approves SQL queries
require_approval_for_final_answer: true # Human validates analysis
)
crew.add_agent(manager)
crew.add_agent(data_analyst)
# Execute with async/hierarchical coordination
results = crew.execute(async: true, max_concurrency: 2)
# Tasks that can run in parallel
research_task = RCrewAI::Task.new(
name: "market_research",
description: "Research market trends",
async: true
)
analysis_task = RCrewAI::Task.new(
name: "competitive_analysis",
description: "Analyze competitors",
async: true
)
crew.add_task(research_task)
crew.add_task(analysis_task)
# Execute with parallel processing
results = crew.execute(
async: true,
max_concurrency: 4,
timeout: 300
)
# Create a new crew
$ rcrewai new my_research_crew --process sequential
# Create agents with tools
$ rcrewai agent new researcher \
--role "Senior Research Analyst" \
--tools web_search,file_writer \
--human-input
# Create tasks with dependencies
$ rcrewai task new research \
--description "Research latest AI developments" \
--agent researcher \
--async
# Run crews
$ rcrewai run --crew my_research_crew --async
RCrewAI excels in scenarios requiring:
RCrewAI provides a flexible, production-ready architecture:
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β Crew Layer β β Human Layer β β Tool Layer β
β β β β β β
β β’ Orchestration β β β’ Approvals β β β’ Web Search β
β β’ Process Types β β β’ Guidance β β β’ File Ops β
β β’ Async Exec β β β’ Reviews β β β’ SQL Database β
β β’ Dependencies β β β’ Interventions β β β’ Email β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β β β
ββββββββββββββββ¬ββββββββββββββββββ¬ββββββββββββββββββ
β β
βββββββββββββββββββ βββββββββββββββββββ
β Agent Layer β β LLM Layer β
β β β β
β β’ Reasoning β β β’ OpenAI β
β β’ Memory β β β’ Anthropic β
β β’ Tool Usage β β β’ Google β
β β’ Delegation β β β’ Azure β
βββββββββββββββββββ βββββββββββββββββββ
For Rails applications, use the rcrew RAILS gem (rcrewai-rails
) which provides:
# Gemfile
gem 'rcrewai-rails'
# config/routes.rb
Rails.application.routes.draw do
mount RcrewAI::Rails::Engine, at: '/rcrewai'
end
# Generate a new crew
rails generate rcrew_ai:crew marketing_crew
# Create persistent agents and tasks through Rails models
crew = RcrewAI::Rails::Crew.create!(name: "Content Team", description: "AI content generation")
agent = crew.agents.create!(name: "writer", role: "Content Writer", goal: "Create engaging content")
Install rcrew RAILS: gem install rcrewai-rails
We welcome contributions! Please see our Contributing Guide for details.
git checkout -b my-new-feature
)git commit -am 'Add some feature'
)git push origin my-new-feature
)RCrewAI is released under the MIT License.
Made with β€οΈ by the RCrewAI community
FAQs
Unknown package
We found that rcrewai demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago.Β It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
A new site reviews software projects to reveal if theyβre truly FOSS, making complex licensing and distribution models easy to understand.
Security News
Astral unveils pyx, a Python-native package registry in beta, designed to speed installs, enhance security, and integrate deeply with uv.
Security News
The Latio podcast explores how static and runtime reachability help teams prioritize exploitable vulnerabilities and streamline AppSec workflows.