rcrewai 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +108 -0
  3. data/LICENSE +21 -0
  4. data/README.md +328 -0
  5. data/Rakefile +130 -0
  6. data/bin/rcrewai +7 -0
  7. data/docs/_config.yml +59 -0
  8. data/docs/_layouts/api.html +16 -0
  9. data/docs/_layouts/default.html +78 -0
  10. data/docs/_layouts/example.html +24 -0
  11. data/docs/_layouts/tutorial.html +33 -0
  12. data/docs/api/configuration.md +327 -0
  13. data/docs/api/crew.md +345 -0
  14. data/docs/api/index.md +41 -0
  15. data/docs/api/tools.md +412 -0
  16. data/docs/assets/css/style.css +416 -0
  17. data/docs/examples/human-in-the-loop.md +382 -0
  18. data/docs/examples/index.md +78 -0
  19. data/docs/examples/production-ready-crew.md +485 -0
  20. data/docs/examples/simple-research-crew.md +297 -0
  21. data/docs/index.md +353 -0
  22. data/docs/tutorials/getting-started.md +341 -0
  23. data/examples/async_execution_example.rb +294 -0
  24. data/examples/hierarchical_crew_example.rb +193 -0
  25. data/examples/human_in_the_loop_example.rb +233 -0
  26. data/lib/rcrewai/agent.rb +636 -0
  27. data/lib/rcrewai/async_executor.rb +248 -0
  28. data/lib/rcrewai/cli.rb +39 -0
  29. data/lib/rcrewai/configuration.rb +100 -0
  30. data/lib/rcrewai/crew.rb +292 -0
  31. data/lib/rcrewai/human_input.rb +520 -0
  32. data/lib/rcrewai/llm_client.rb +41 -0
  33. data/lib/rcrewai/llm_clients/anthropic.rb +127 -0
  34. data/lib/rcrewai/llm_clients/azure.rb +158 -0
  35. data/lib/rcrewai/llm_clients/base.rb +82 -0
  36. data/lib/rcrewai/llm_clients/google.rb +158 -0
  37. data/lib/rcrewai/llm_clients/ollama.rb +199 -0
  38. data/lib/rcrewai/llm_clients/openai.rb +124 -0
  39. data/lib/rcrewai/memory.rb +194 -0
  40. data/lib/rcrewai/process.rb +421 -0
  41. data/lib/rcrewai/task.rb +376 -0
  42. data/lib/rcrewai/tools/base.rb +82 -0
  43. data/lib/rcrewai/tools/code_executor.rb +333 -0
  44. data/lib/rcrewai/tools/email_sender.rb +210 -0
  45. data/lib/rcrewai/tools/file_reader.rb +111 -0
  46. data/lib/rcrewai/tools/file_writer.rb +115 -0
  47. data/lib/rcrewai/tools/pdf_processor.rb +342 -0
  48. data/lib/rcrewai/tools/sql_database.rb +226 -0
  49. data/lib/rcrewai/tools/web_search.rb +131 -0
  50. data/lib/rcrewai/version.rb +5 -0
  51. data/lib/rcrewai.rb +36 -0
  52. data/rcrewai.gemspec +54 -0
  53. metadata +365 -0
@@ -0,0 +1,297 @@
1
+ ---
2
+ layout: example
3
+ title: Simple Research Crew
4
+ description: A basic research crew example with researcher and writer agents
5
+ ---
6
+
7
+ # Simple Research Crew
8
+
9
+ This example demonstrates how to create a basic research crew with two agents: a researcher who gathers information and a writer who creates content based on that research.
10
+
11
+ ## Overview
12
+
13
+ We'll create a crew that:
14
+ 1. Researches a given topic
15
+ 2. Writes an informative article based on the research
16
+ 3. Returns both the research findings and the final article
17
+
18
+ ## Complete Code
19
+
20
+ ```ruby
21
+ require 'rcrewai'
22
+
23
+ # Configure RCrewAI - supports multiple providers
24
+ RCrewAI.configure do |config|
25
+ config.llm_provider = :openai # or :anthropic, :google, :azure
26
+ # API keys are loaded automatically from environment variables
27
+ config.openai_model = 'gpt-4' # or 'gpt-3.5-turbo' for lower cost
28
+ config.temperature = 0.1 # Lower = more consistent, Higher = more creative
29
+ end
30
+
31
+ # Create the crew
32
+ research_crew = RCrewAI::Crew.new("research_crew")
33
+
34
+ # Define the research agent
35
+ researcher = RCrewAI::Agent.new(
36
+ name: "senior_researcher",
37
+ role: "Senior Research Analyst",
38
+ goal: "Uncover cutting-edge developments in AI and technology",
39
+ backstory: "You work at a leading tech think tank. Your expertise lies in identifying emerging trends in AI and technology. You have a knack for dissecting complex topics and presenting clear insights.",
40
+ verbose: true,
41
+ allow_delegation: false
42
+ )
43
+
44
+ # Define the writer agent
45
+ writer = RCrewAI::Agent.new(
46
+ name: "tech_writer",
47
+ role: "Tech Content Strategist",
48
+ goal: "Craft compelling content on tech advancements",
49
+ backstory: "You are a renowned Content Strategist, known for your insightful and engaging articles on technology and innovation. With a deep understanding of the tech industry, you transform complex concepts into compelling narratives.",
50
+ verbose: true,
51
+ allow_delegation: true
52
+ )
53
+
54
+ # Add agents to the crew
55
+ research_crew.add_agent(researcher)
56
+ research_crew.add_agent(writer)
57
+
58
+ # Define the research task
59
+ research_task = RCrewAI::Task.new(
60
+ name: "research_ai_advancements",
61
+ description: "Conduct a comprehensive analysis of the latest advancements in AI in 2024. Identify key trends, breakthrough technologies, and their potential impact on various industries. Your final report should be detailed and well-structured.",
62
+ agent: researcher,
63
+ expected_output: "A comprehensive research report with key findings, trends, and implications of AI advancements in 2024"
64
+ )
65
+
66
+ # Define the writing task
67
+ writing_task = RCrewAI::Task.new(
68
+ name: "write_ai_article",
69
+ description: "Using the research provided, write a compelling blog article about the latest AI advancements. Make it engaging but informative, suitable for a tech-savvy audience. Include an introduction, main content with key points, and a conclusion.",
70
+ agent: writer,
71
+ expected_output: "A well-written, engaging blog article about AI advancements (800-1000 words)",
72
+ context: [research_task] # This task depends on the research task
73
+ )
74
+
75
+ # Add tasks to the crew
76
+ research_crew.add_task(research_task)
77
+ research_crew.add_task(writing_task)
78
+
79
+ # Execute the crew
80
+ puts "Starting research crew execution..."
81
+ results = research_crew.execute
82
+
83
+ # Display results
84
+ puts "\n" + "="*50
85
+ puts "RESEARCH RESULTS:"
86
+ puts "="*50
87
+ puts research_task.result
88
+
89
+ puts "\n" + "="*50
90
+ puts "FINAL ARTICLE:"
91
+ puts "="*50
92
+ puts writing_task.result
93
+
94
+ # Optional: Save results to files
95
+ File.write("research_findings.md", research_task.result)
96
+ File.write("ai_article.md", writing_task.result)
97
+
98
+ puts "\nResults saved to research_findings.md and ai_article.md"
99
+ ```
100
+
101
+ ## Step-by-Step Explanation
102
+
103
+ ### 1. Setup and Configuration
104
+
105
+ ```ruby
106
+ require 'rcrewai'
107
+
108
+ RCrewAI.configure do |config|
109
+ config.llm_provider = :openai
110
+ config.api_key = ENV['OPENAI_API_KEY']
111
+ config.model = 'gpt-4'
112
+ end
113
+ ```
114
+
115
+ First, we require the RCrewAI gem and configure it with our LLM provider. The API key should be stored in an environment variable for security.
116
+
117
+ ### 2. Create the Crew
118
+
119
+ ```ruby
120
+ research_crew = RCrewAI::Crew.new("research_crew")
121
+ ```
122
+
123
+ We create a new crew instance that will coordinate our agents and tasks.
124
+
125
+ ### 3. Define Agents
126
+
127
+ #### Research Agent
128
+ ```ruby
129
+ researcher = RCrewAI::Agent.new(
130
+ name: "senior_researcher",
131
+ role: "Senior Research Analyst",
132
+ goal: "Uncover cutting-edge developments in AI and technology",
133
+ backstory: "You work at a leading tech think tank...",
134
+ verbose: true,
135
+ allow_delegation: false
136
+ )
137
+ ```
138
+
139
+ The researcher agent is designed to gather and analyze information. Key attributes:
140
+ - **Role**: Defines what the agent does
141
+ - **Goal**: Specific objective for the agent
142
+ - **Backstory**: Provides context that influences the agent's behavior
143
+ - **verbose**: Enables detailed logging
144
+ - **allow_delegation**: Controls whether this agent can delegate tasks
145
+
146
+ #### Writer Agent
147
+ ```ruby
148
+ writer = RCrewAI::Agent.new(
149
+ name: "tech_writer",
150
+ role: "Tech Content Strategist",
151
+ goal: "Craft compelling content on tech advancements",
152
+ backstory: "You are a renowned Content Strategist...",
153
+ verbose: true,
154
+ allow_delegation: true
155
+ )
156
+ ```
157
+
158
+ The writer transforms research into engaging content.
159
+
160
+ ### 4. Define Tasks
161
+
162
+ #### Research Task
163
+ ```ruby
164
+ research_task = RCrewAI::Task.new(
165
+ name: "research_ai_advancements",
166
+ description: "Conduct a comprehensive analysis...",
167
+ agent: researcher,
168
+ expected_output: "A comprehensive research report..."
169
+ )
170
+ ```
171
+
172
+ Tasks define what work needs to be done. The `expected_output` helps guide the agent's work quality.
173
+
174
+ #### Writing Task
175
+ ```ruby
176
+ writing_task = RCrewAI::Task.new(
177
+ name: "write_ai_article",
178
+ description: "Using the research provided...",
179
+ agent: writer,
180
+ expected_output: "A well-written, engaging blog article...",
181
+ context: [research_task] # Dependencies
182
+ )
183
+ ```
184
+
185
+ The `context` parameter creates dependencies - the writing task will have access to the research task's results.
186
+
187
+ ### 5. Execute and Handle Results
188
+
189
+ ```ruby
190
+ results = research_crew.execute
191
+
192
+ puts research_task.result
193
+ puts writing_task.result
194
+ ```
195
+
196
+ The crew executes tasks in order, respecting dependencies. Results are accessible through each task's `result` attribute.
197
+
198
+ ## Running the Example
199
+
200
+ 1. **Install dependencies:**
201
+ ```bash
202
+ bundle install
203
+ ```
204
+
205
+ 2. **Set environment variables (choose your provider):**
206
+ ```bash
207
+ # OpenAI
208
+ export OPENAI_API_KEY="your-openai-key"
209
+
210
+ # Or Anthropic
211
+ export ANTHROPIC_API_KEY="your-anthropic-key"
212
+
213
+ # Or Google
214
+ export GOOGLE_API_KEY="your-google-key"
215
+
216
+ # Or Azure
217
+ export AZURE_OPENAI_API_KEY="your-azure-key"
218
+ ```
219
+
220
+ 3. **Run the script:**
221
+ ```bash
222
+ ruby research_crew_example.rb
223
+ ```
224
+
225
+ ## Expected Output
226
+
227
+ The script will produce:
228
+ - Research findings about AI advancements
229
+ - A well-structured blog article based on the research
230
+ - Saved files with the results
231
+
232
+ ## Customization Options
233
+
234
+ ### Different Topics
235
+ Change the task descriptions to research different topics:
236
+
237
+ ```ruby
238
+ research_task = RCrewAI::Task.new(
239
+ name: "research_blockchain",
240
+ description: "Research the latest developments in blockchain technology...",
241
+ # ... rest of configuration
242
+ )
243
+ ```
244
+
245
+ ### Adding Tools
246
+ Equip agents with tools for enhanced capabilities:
247
+
248
+ ```ruby
249
+ web_search_tool = RCrewAI::Tools::WebSearch.new
250
+
251
+ researcher = RCrewAI::Agent.new(
252
+ name: "senior_researcher",
253
+ # ... other config
254
+ tools: [web_search_tool]
255
+ )
256
+ ```
257
+
258
+ ### Multiple Output Formats
259
+ Create additional tasks for different output formats:
260
+
261
+ ```ruby
262
+ # Add a summarizer agent
263
+ summarizer = RCrewAI::Agent.new(
264
+ name: "content_summarizer",
265
+ role: "Content Summarizer",
266
+ goal: "Create concise summaries"
267
+ )
268
+
269
+ # Summary task
270
+ summary_task = RCrewAI::Task.new(
271
+ name: "create_summary",
272
+ description: "Create a 200-word summary of the research and article",
273
+ agent: summarizer,
274
+ context: [research_task, writing_task]
275
+ )
276
+ ```
277
+
278
+ ## Troubleshooting
279
+
280
+ ### Common Issues
281
+
282
+ 1. **API Key Issues**: Ensure your OpenAI API key is correctly set
283
+ 2. **Agent Confusion**: Make sure agent roles and goals are specific and clear
284
+ 3. **Task Dependencies**: Verify that dependent tasks are added to the crew before dependent tasks
285
+
286
+ ### Debugging Tips
287
+
288
+ - Set `verbose: true` on agents to see detailed execution logs
289
+ - Use `crew.verbose = true` for crew-level logging
290
+ - Check individual task results with `task.result` after execution
291
+
292
+ ## Next Steps
293
+
294
+ - Try modifying the agent roles and backstories
295
+ - Add more agents for specialized tasks (fact-checker, SEO optimizer)
296
+ - Experiment with different task dependencies
297
+ - Add custom tools for specific capabilities
data/docs/index.md ADDED
@@ -0,0 +1,353 @@
1
+ ---
2
+ layout: default
3
+ title: RCrewAI - Build AI Agent Crews in Ruby
4
+ ---
5
+
6
+ # RCrewAI
7
+
8
+ Build powerful AI agent crews in Ruby that work together to accomplish complex tasks.
9
+
10
+ <div class="hero-section">
11
+ <p class="lead">RCrewAI is a Ruby implementation of the CrewAI framework, allowing you to create autonomous AI agents that collaborate to solve problems and complete tasks.</p>
12
+
13
+ <div class="cta-buttons">
14
+ <a href="{{ site.baseurl }}/tutorials/getting-started" class="btn btn-primary">Get Started</a>
15
+ <a href="https://github.com/gkosmo/rcrewAI" class="btn btn-secondary">View on GitHub</a>
16
+ </div>
17
+ </div>
18
+
19
+ ## Features
20
+
21
+ - **🤖 Intelligent Agents**: AI agents with reasoning loops, memory, and tool usage capabilities
22
+ - **🔗 Multi-LLM Support**: OpenAI, Anthropic (Claude), Google (Gemini), Azure OpenAI, and Ollama
23
+ - **🛠️ Rich Tool Ecosystem**: Web search, file operations, SQL, email, code execution, PDF processing, and custom tools
24
+ - **🧠 Agent Memory**: Short-term and long-term memory for learning from past executions
25
+ - **🤝 Human-in-the-Loop**: Interactive approval workflows, human guidance, and collaborative decision making
26
+ - **⚡ Advanced Task System**: Dependencies, retries, async/concurrent execution, and context sharing
27
+ - **🏗️ Hierarchical Teams**: Manager agents that coordinate and delegate tasks to specialist agents
28
+ - **🔒 Production Ready**: Security controls, error handling, logging, monitoring, and sandboxing
29
+ - **🎯 Flexible Orchestration**: Sequential, hierarchical, and concurrent execution modes
30
+ - **💎 Ruby-First Design**: Built specifically for Ruby developers with idiomatic patterns
31
+
32
+ ## Quick Start
33
+
34
+ ### Basic Agent Collaboration
35
+
36
+ ```ruby
37
+ require 'rcrewai'
38
+
39
+ # Configure your LLM provider
40
+ RCrewAI.configure do |config|
41
+ config.llm_provider = :openai # or :anthropic, :google, :azure, :ollama
42
+ config.temperature = 0.1
43
+ end
44
+
45
+ # Create intelligent agents with specialized tools
46
+ researcher = RCrewAI::Agent.new(
47
+ name: "researcher",
48
+ role: "Senior Research Analyst",
49
+ goal: "Uncover cutting-edge developments in AI",
50
+ backstory: "Expert at finding and analyzing the latest tech trends",
51
+ tools: [RCrewAI::Tools::WebSearch.new],
52
+ verbose: true
53
+ )
54
+
55
+ writer = RCrewAI::Agent.new(
56
+ name: "writer",
57
+ role: "Tech Content Strategist",
58
+ goal: "Create compelling technical content",
59
+ backstory: "Skilled at transforming research into engaging articles",
60
+ tools: [RCrewAI::Tools::FileWriter.new]
61
+ )
62
+
63
+ # Create crew with sequential process
64
+ crew = RCrewAI::Crew.new("ai_research_crew")
65
+ crew.add_agent(researcher)
66
+ crew.add_agent(writer)
67
+
68
+ # Define tasks with dependencies
69
+ research_task = RCrewAI::Task.new(
70
+ name: "research_ai_trends",
71
+ description: "Research the latest developments in AI for 2024",
72
+ agent: researcher,
73
+ expected_output: "Comprehensive report on AI trends with key insights"
74
+ )
75
+
76
+ writing_task = RCrewAI::Task.new(
77
+ name: "write_article",
78
+ description: "Write an engaging 1000-word article about AI trends",
79
+ agent: writer,
80
+ context: [research_task], # Uses research results as context
81
+ expected_output: "Publication-ready article saved as ai_trends.md"
82
+ )
83
+
84
+ crew.add_task(research_task)
85
+ crew.add_task(writing_task)
86
+
87
+ # Execute - agents will reason, search, and produce real results!
88
+ results = crew.execute
89
+ puts "✅ Crew completed #{results[:completed_tasks]}/#{results[:total_tasks]} tasks"
90
+ ```
91
+
92
+ ### Advanced: Hierarchical Team with Human Oversight
93
+
94
+ ```ruby
95
+ # Create a hierarchical crew with manager coordination
96
+ crew = RCrewAI::Crew.new("enterprise_team", process: :hierarchical)
97
+
98
+ # Manager agent coordinates the team
99
+ manager = RCrewAI::Agent.new(
100
+ name: "project_manager",
101
+ role: "Senior Project Manager",
102
+ goal: "Coordinate team execution efficiently",
103
+ backstory: "Experienced manager with expertise in AI project coordination",
104
+ manager: true,
105
+ allow_delegation: true,
106
+ verbose: true
107
+ )
108
+
109
+ # Specialist agents with human-in-the-loop capabilities
110
+ data_analyst = RCrewAI::Agent.new(
111
+ name: "data_analyst",
112
+ role: "Senior Data Analyst",
113
+ goal: "Analyze data with human validation",
114
+ backstory: "Expert at extracting insights from complex datasets",
115
+ tools: [RCrewAI::Tools::SqlDatabase.new, RCrewAI::Tools::FileWriter.new],
116
+ human_input: true, # Enable human interaction
117
+ require_approval_for_tools: true, # Human approves SQL queries
118
+ require_approval_for_final_answer: true # Human validates analysis
119
+ )
120
+
121
+ # Add agents to hierarchical crew
122
+ crew.add_agent(manager)
123
+ crew.add_agent(data_analyst)
124
+ crew.add_agent(researcher)
125
+
126
+ # Tasks with different execution modes
127
+ analysis_task = RCrewAI::Task.new(
128
+ name: "customer_analysis",
129
+ description: "Analyze customer behavior patterns from database",
130
+ expected_output: "Customer segmentation analysis with actionable insights",
131
+ human_input: true,
132
+ require_confirmation: true, # Human confirms before starting
133
+ async: true # Can run concurrently
134
+ )
135
+
136
+ research_task = RCrewAI::Task.new(
137
+ name: "market_research",
138
+ description: "Research competitive landscape",
139
+ expected_output: "Competitive analysis report",
140
+ async: true
141
+ )
142
+
143
+ crew.add_task(analysis_task)
144
+ crew.add_task(research_task)
145
+
146
+ # Execute with async/hierarchical coordination
147
+ results = crew.execute(async: true, max_concurrency: 2)
148
+ puts "🚀 Hierarchical execution completed with #{results[:success_rate]}% success rate"
149
+ ```
150
+
151
+ ## Installation
152
+
153
+ Add this line to your application's Gemfile:
154
+
155
+ ```ruby
156
+ gem 'rcrewai'
157
+ ```
158
+
159
+ And then execute:
160
+
161
+ ```bash
162
+ $ bundle install
163
+ ```
164
+
165
+ Or install it yourself as:
166
+
167
+ ```bash
168
+ $ gem install rcrewai
169
+ ```
170
+
171
+ ## CLI Usage
172
+
173
+ RCrewAI includes a powerful CLI for managing your AI crews:
174
+
175
+ ```bash
176
+ # Create a new crew with different process types
177
+ $ rcrewai new my_research_crew --process sequential
178
+ $ rcrewai new enterprise_team --process hierarchical
179
+
180
+ # List available crews and agents
181
+ $ rcrewai list
182
+ $ rcrewai agents list
183
+
184
+ # Create agents with advanced capabilities
185
+ $ rcrewai agent new researcher \
186
+ --role "Senior Research Analyst" \
187
+ --goal "Find cutting-edge AI information" \
188
+ --backstory "Expert researcher with 10 years experience" \
189
+ --tools web_search,file_writer \
190
+ --verbose \
191
+ --human-input
192
+
193
+ # Create manager agents for hierarchical crews
194
+ $ rcrewai agent new project_manager \
195
+ --role "Project Coordinator" \
196
+ --goal "Coordinate team execution" \
197
+ --manager \
198
+ --allow-delegation
199
+
200
+ # Create tasks with dependencies and human interaction
201
+ $ rcrewai task new research \
202
+ --description "Research latest AI developments" \
203
+ --expected-output "Comprehensive AI research report" \
204
+ --agent researcher \
205
+ --async \
206
+ --human-input \
207
+ --require-confirmation
208
+
209
+ # Run crews with different execution modes
210
+ $ rcrewai run --crew my_research_crew
211
+ $ rcrewai run --crew enterprise_team --async --max-concurrency 4
212
+
213
+ # Check crew status and results
214
+ $ rcrewai status --crew my_research_crew
215
+ $ rcrewai results --crew my_research_crew --task research
216
+ ```
217
+
218
+ ## Key Capabilities
219
+
220
+ ### 🧠 **Advanced Agent Intelligence**
221
+ Agents use sophisticated reasoning with your chosen LLM provider:
222
+ - **Multi-step Reasoning**: Complex problem decomposition and solving
223
+ - **Tool Selection**: Intelligent tool usage based on task requirements
224
+ - **Context Awareness**: Memory-driven decision making from past executions
225
+ - **Learning Capability**: Short-term and long-term memory systems
226
+
227
+ ### 🛠️ **Comprehensive Tool Ecosystem**
228
+ Production-ready tools for real-world tasks:
229
+ - **Web Search**: DuckDuckGo integration for research and information gathering
230
+ - **File Operations**: Read/write files with security controls and validation
231
+ - **SQL Database**: Secure database querying with connection management
232
+ - **Email Integration**: SMTP email sending with attachment support
233
+ - **Code Execution**: Sandboxed code execution environment
234
+ - **PDF Processing**: Text extraction and document processing
235
+ - **Custom Tools**: Extensible framework for building specialized tools
236
+
237
+ ### 🤝 **Human-in-the-Loop Integration**
238
+ Seamless human-AI collaboration for critical workflows:
239
+ - **Interactive Approval**: Human confirmation for sensitive operations
240
+ - **Real-time Guidance**: Human input during agent reasoning processes
241
+ - **Task Confirmation**: Human approval before executing critical tasks
242
+ - **Result Validation**: Human review and revision of agent outputs
243
+ - **Error Recovery**: Human intervention when agents encounter failures
244
+ - **Strategic Input**: Human guidance for complex decision making
245
+
246
+ ### 🏗️ **Enterprise-Grade Orchestration**
247
+ Sophisticated coordination patterns for complex workflows:
248
+ - **Hierarchical Teams**: Manager agents coordinate and delegate to specialists
249
+ - **Async Execution**: Parallel task processing with intelligent dependency management
250
+ - **Delegation Systems**: Automatic task assignment based on agent capabilities
251
+ - **Process Types**: Sequential, hierarchical, and consensual execution modes
252
+ - **Cross-Agent Communication**: Context sharing and collaborative problem solving
253
+
254
+ ### ⚡ **Advanced Task Management**
255
+ Powerful task system with production features:
256
+ - **Smart Dependencies**: Tasks automatically wait for prerequisite completion
257
+ - **Context Propagation**: Results flow seamlessly between dependent tasks
258
+ - **Retry Logic**: Exponential backoff with configurable retry strategies
259
+ - **Concurrent Execution**: Multi-threaded execution with resource management
260
+ - **Task Monitoring**: Real-time progress tracking and performance metrics
261
+
262
+ ### 🔒 **Production-Ready Architecture**
263
+ Built for enterprise deployment and reliability:
264
+ - **Security**: Sandboxing, access controls, input sanitization
265
+ - **Monitoring**: Comprehensive logging, metrics, and observability
266
+ - **Error Handling**: Graceful failure recovery and detailed error reporting
267
+ - **Resource Management**: Memory optimization, connection pooling
268
+ - **Configuration**: Flexible configuration with environment variable support
269
+
270
+ ## LLM Provider Support
271
+
272
+ RCrewAI works with all major LLM providers through a unified interface:
273
+
274
+ ```ruby
275
+ # OpenAI (GPT-4, GPT-3.5, etc.)
276
+ RCrewAI.configure do |config|
277
+ config.llm_provider = :openai
278
+ config.openai_api_key = ENV['OPENAI_API_KEY']
279
+ config.model = 'gpt-4'
280
+ config.temperature = 0.1
281
+ end
282
+
283
+ # Anthropic Claude
284
+ RCrewAI.configure do |config|
285
+ config.llm_provider = :anthropic
286
+ config.anthropic_api_key = ENV['ANTHROPIC_API_KEY']
287
+ config.model = 'claude-3-sonnet-20240229'
288
+ end
289
+
290
+ # Google Gemini
291
+ RCrewAI.configure do |config|
292
+ config.llm_provider = :google
293
+ config.google_api_key = ENV['GOOGLE_API_KEY']
294
+ config.model = 'gemini-pro'
295
+ end
296
+
297
+ # Azure OpenAI
298
+ RCrewAI.configure do |config|
299
+ config.llm_provider = :azure
300
+ config.azure_api_key = ENV['AZURE_OPENAI_API_KEY']
301
+ config.azure_endpoint = ENV['AZURE_OPENAI_ENDPOINT']
302
+ config.model = 'gpt-4'
303
+ end
304
+
305
+ # Local Ollama
306
+ RCrewAI.configure do |config|
307
+ config.llm_provider = :ollama
308
+ config.ollama_url = 'http://localhost:11434'
309
+ config.model = 'llama2'
310
+ end
311
+ ```
312
+
313
+ ## Use Cases
314
+
315
+ RCrewAI excels in scenarios requiring:
316
+
317
+ - **🔍 Research & Analysis**: Multi-source research with data correlation and insight generation
318
+ - **📝 Content Creation**: Collaborative content development with research, writing, and editing
319
+ - **🏢 Business Intelligence**: Data analysis, report generation, and strategic planning
320
+ - **🛠️ Development Workflows**: Code analysis, documentation, and quality assurance
321
+ - **📊 Data Processing**: ETL workflows with validation and transformation
322
+ - **🤖 Customer Support**: Intelligent routing, response generation, and escalation
323
+ - **🎯 Decision Making**: Multi-criteria analysis with human oversight and approval
324
+
325
+ ## Learn More
326
+
327
+ <div class="feature-grid">
328
+ <div class="feature-card">
329
+ <h3>📚 Tutorials</h3>
330
+ <p>Step-by-step guides to get you started with RCrewAI</p>
331
+ <a href="{{ site.baseurl }}/tutorials/">View Tutorials →</a>
332
+ </div>
333
+
334
+ <div class="feature-card">
335
+ <h3>📖 API Reference</h3>
336
+ <p>Complete documentation of all classes and methods</p>
337
+ <a href="{{ site.baseurl }}/api/">API Docs →</a>
338
+ </div>
339
+
340
+ <div class="feature-card">
341
+ <h3>💡 Examples</h3>
342
+ <p>Real-world examples and use cases</p>
343
+ <a href="{{ site.baseurl }}/examples/">View Examples →</a>
344
+ </div>
345
+ </div>
346
+
347
+ ## Contributing
348
+
349
+ We welcome contributions! Please see our [contributing guidelines](https://github.com/gkosmo/rcrewAI/blob/main/CONTRIBUTING.md) for details.
350
+
351
+ ## License
352
+
353
+ RCrewAI is released under the [MIT License](https://github.com/gkosmo/rcrewAI/blob/main/LICENSE).