Project

rcrewai

0.0
The project is in a healthy, maintained state
A Ruby gem for building AI agent crews that work together to accomplish tasks
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

~> 2.0
~> 13.0
~> 3.12
~> 1.50
~> 0.22
~> 6.1
~> 3.18

Runtime

~> 0.2
~> 2.7
~> 2.6
~> 1.5
~> 2.8
~> 1.15
~> 2.11
~> 1.3
 Project Readme

RCrewAI

Ruby AI Production Ready

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.

🚀 Features

  • 🤖 Intelligent Agents: AI agents with reasoning loops, memory, and tool usage capabilities
  • 🔗 Multi-LLM Support: OpenAI, Anthropic (Claude), Google (Gemini), Azure OpenAI, and Ollama
  • 🛠️ Rich Tool Ecosystem: Web search, file operations, SQL, email, code execution, PDF processing, and custom tools
  • 🧠 Agent Memory: Short-term and long-term memory for learning from past executions
  • 🤝 Human-in-the-Loop: Interactive approval workflows, human guidance, and collaborative decision making
  • ⚡ Advanced Task System: Dependencies, retries, async/concurrent execution, and context sharing
  • 🏗️ Hierarchical Teams: Manager agents that coordinate and delegate tasks to specialist agents
  • 🔒 Production Ready: Security controls, error handling, logging, monitoring, and sandboxing
  • 🎯 Flexible Orchestration: Sequential, hierarchical, and concurrent execution modes
  • 💎 Ruby-First Design: Built specifically for Ruby developers with idiomatic patterns

📦 Installation

Add this line to your application's Gemfile:

gem 'rcrewai'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install rcrewai

🏃‍♂️ Quick Start

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"

🎯 Key Capabilities

🧠 Advanced Agent Intelligence

  • Multi-step Reasoning: Complex problem decomposition and solving
  • Tool Selection: Intelligent tool usage based on task requirements
  • Context Awareness: Memory-driven decision making from past executions
  • Learning Capability: Short-term and long-term memory systems

🛠️ Comprehensive Tool Ecosystem

  • Web Search: DuckDuckGo integration for research
  • File Operations: Read/write files with security controls
  • SQL Database: Secure database querying with connection management
  • Email Integration: SMTP email sending with attachment support
  • Code Execution: Sandboxed code execution environment
  • PDF Processing: Text extraction and document processing
  • Custom Tools: Extensible framework for building specialized tools

🤝 Human-in-the-Loop Integration

  • Interactive Approval: Human confirmation for sensitive operations
  • Real-time Guidance: Human input during agent reasoning processes
  • Task Confirmation: Human approval before executing critical tasks
  • Result Validation: Human review and revision of agent outputs
  • Error Recovery: Human intervention when agents encounter failures

🏗️ Enterprise-Grade Orchestration

  • Hierarchical Teams: Manager agents coordinate and delegate to specialists
  • Async Execution: Parallel task processing with intelligent dependency management
  • Delegation Systems: Automatic task assignment based on agent capabilities
  • Process Types: Sequential, hierarchical, and consensual execution modes

🔧 LLM Provider Support

# 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

💡 Examples

Hierarchical Team with Human Oversight

# 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)

Async/Concurrent Execution

# 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
)

🛠️ CLI Usage

# 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

📚 Examples & Documentation

🎯 Use Cases

RCrewAI excels in scenarios requiring:

  • 🔍 Research & Analysis: Multi-source research with data correlation
  • 📝 Content Creation: Collaborative content development workflows
  • 🏢 Business Intelligence: Data analysis and strategic planning
  • 🛠️ Development Workflows: Code analysis, testing, and documentation
  • 📊 Data Processing: ETL workflows with validation
  • 🤖 Customer Support: Intelligent routing and response generation
  • 🎯 Decision Making: Multi-criteria analysis with human oversight

🏗️ Architecture

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         │
              └─────────────────┘    └─────────────────┘

🤝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

  1. Fork the repository
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

📄 License

RCrewAI is released under the MIT License.

📞 Support

🌟 Star History

Star History Chart


Made with ❤️ by the RCrewAI community