https://github.com/gkosmo/rcrewai
Agent orchestration
https://github.com/gkosmo/rcrewai
ai-agents orchestrator ruby
Last synced: 5 months ago
JSON representation
Agent orchestration
- Host: GitHub
- URL: https://github.com/gkosmo/rcrewai
- Owner: gkosmo
- License: mit
- Created: 2025-08-12T12:06:40.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2025-08-12T14:30:24.000Z (5 months ago)
- Last Synced: 2025-08-12T16:27:20.651Z (5 months ago)
- Topics: ai-agents, orchestrator, ruby
- Language: Ruby
- Homepage: https://gkosmo.github.io/rcrewAI
- Size: 214 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# RCrewAI



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:
```ruby
gem 'rcrewai'
```
And then execute:
```bash
$ bundle install
```
Or install it yourself as:
```bash
$ gem install rcrewai
```
## 🏃♂️ Quick Start
```ruby
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
```ruby
# 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
```ruby
# 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
```ruby
# 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
```bash
# 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
- **[Getting Started Guide](docs/tutorials/getting-started.md)**: Learn the basics
- **[Human-in-the-Loop Example](examples/human_in_the_loop_example.rb)**: Interactive AI workflows
- **[Hierarchical Teams](examples/hierarchical_crew_example.rb)**: Manager coordination
- **[Async Execution](examples/async_execution_example.rb)**: Performance optimization
- **[API Documentation](docs/api/)**: Complete API reference
## 🎯 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](CONTRIBUTING.md) 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](LICENSE).
## 📞 Support
- **Documentation**: [https://gkosmo.github.io/rcrewAI/](https://gkosmo.github.io/rcrewAI/)
- **Issues**: [GitHub Issues](https://github.com/gkosmo/rcrewAI/issues)
- **Discussions**: [GitHub Discussions](https://github.com/gkosmo/rcrewAI/discussions)
## 🌟 Star History
[](https://star-history.com/#gkosmo/rcrewAI&Date)
---
Made with ❤️ by the RCrewAI community