Skip to main content

crewai-multi-agent

Multi-agent orchestration framework for autonomous AI collaboration. Use when building teams of specialized agents working together on complex tasks, when you need role-based agent collaboration with memory, or for production workflows requiring sequential/hierarchical execution. Built without LangChain dependencies for lean, fast execution.

Aller à l'installation

Informations de source

Dépôt
tomevault-io/claude-code-plugins
Dernière activité de la source
6 avril 2026 à 08:17
Langue détectée de SKILL.md
anglais
Étoiles
3
Forks
2

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
crewai-multi-agent
description
Multi-agent orchestration framework for autonomous AI collaboration. Use when building teams of specialized agents working together on complex tasks, when you need role-based agent collaboration with memory, or for production workflows requiring sequential/hierarchical execution. Built without LangChain dependencies for lean, fast execution.
version
1.0.0
author
Orchestra Research
license
MIT
tags
["Agents","CrewAI","Multi-Agent","Orchestration","Collaboration","Role-Based","Autonomous","Workflows","Memory","Production"]
dependencies
["crewai>=1.2.0","crewai-tools>=1.2.0"]
# CrewAI - Multi-Agent Orchestration Framework Build teams of autonomous AI agents that collaborate to solve complex tasks. ## When to use CrewAI **Use CrewAI when:** - Building multi-agent systems with specialized roles - Need autonomous collaboration between agents - Want role-based task delegation (researcher, writer, analyst) - Require sequential or hierarchical process execution - Building production workflows with memory and observability - Need simpler setup than LangChain/LangGraph **Key features:** - **Standalone**: No LangChain dependencies, lean footprint - **Role-based**: Agents have roles, goals, and backstories - **Dual paradigm**: Crews (autonomous) + Flows (event-driven) - **50+ tools**: Web scraping, search, databases, AI services - **Memory**: Short-term, long-term, and entity memory - **Production-ready**: Tracing, enterprise features **Use alternatives instead:** - **LangChain**: General-purpose LLM apps, RAG pipelines - **LangGraph**: Complex stateful workflows with cycles - **AutoGen**: Microsoft ecosystem, multi-agent conversations - **LlamaIndex**: Document Q&A, knowledge retrieval ## Quick start ### Installation ```bash # Core framework pip install crewai # With 50+ built-in tools pip install 'crewai[tools]' ``` ### Create project with CLI ```bash # Create new crew project crewai create crew my_project cd my_project # Install dependencies crewai install # Run the crew crewai run ``` ### Simple crew (code-only) ```python from crewai import Agent, Task, Crew, Process # 1. Define agents researcher = Agent( role="Senior Research Analyst", goal="Discover cutting-edge developments in AI", backstory="You are an expert analyst with a keen eye for emerging trends.", verbose=True ) writer = Agent( role="Technical Writer", goal="Create clear, engaging content about technical topics", backstory="You excel at explaining complex concepts to general audiences.", verbose=True ) # 2. Define tasks research_task = Task( description="Research the latest developments in {topic}. Find 5 key trends.", expected_output="A detailed report with 5 bullet points on key trends.", agent=researcher ) write_task = Task( description="Write a blog post based on the research findings.", expected_output="A 500-word blog post in markdown format.", agent=writer, context=[research_task] # Uses research output ) # 3. Create and run crew crew = Crew( agents=[researcher, writer], tasks=[research_task, write_task], process=Process.sequential, # Tasks run in order verbose=True ) # 4. Execute result = crew.kickoff(inputs={"topic": "AI Agents"}) print(result.raw) ``` ## Core concepts ### Agents - Autonomous workers ```python from crewai import Agent agent = Agent( role="Data Scientist", # Job title/role goal="Analyze data to find insights", # What they aim to achieve backstory="PhD in statistics...", # Background context llm="gpt-4o", # LLM to use tools=[], # Tools available memory=True, # Enable memory verbose=True, # Show reasoning allow_delegation=True, # Can delegate to others max_iter=15, # Max reasoning iterations max_rpm=10 # Rate limit ) ``` ### Tasks - Units of work ```python from crewai import Task task = Task( description="Analyze the sales data for Q4 2024. {context}", expected_output="A summary report with key metrics and trends.", agent=analyst, # Assigned agent context=[previous_task], # Input from other tasks output_file="report.md", # Save to file async_execution=False, # Run synchronously human_input=False # No human approval needed ) ``` ### Crews - Teams of agents ```python from crewai import Crew, Process crew = Crew( agents=[researcher, writer, editor], # Team members tasks=[research, write, edit], # Tasks to complete process=Process.sequential, # Or Process.hierarchical verbose=True, memory=True, # Enable crew memory cache=True, # Cache tool results max_rpm=10, # Rate limit share_crew=False # Opt-in telemetry ) # Execute with inputs result = crew.kickoff(inputs={"topic": "AI trends"}) # Access results print(result.raw) # Final output print(result.tasks_output) # All task outputs print(result.token_usage) # Token consumption ``` ## Process types ### Sequential (default) Tasks execute in order, each agent completing their task before the next: ```python crew = Crew( agents=[researcher, writer], tasks=[research_task, write_task], process=Process.sequential # Task 1 → Task 2 → Task 3 ) ``` ### Hierarchical Auto-creates a manager agent that delegates and coordinates: ```python crew = Crew( agents=[researcher, writer, analyst], tasks=[research_task, write_task, analyze_task], process=Process.hierarchical, # Manager delegates tasks manager_llm="gpt-4o" # LLM for manager ) ``` ## Using tools ### Built-in tools (50+) ```bash pip install 'crewai[tools]' ``` ```python from crewai_tools import ( SerperDevTool, # Web search ScrapeWebsiteTool, # Web scraping FileReadTool, # Read files PDFSearchTool, # Search PDFs WebsiteSearchTool, # Search websites CodeDocsSearchTool, # Search code docs YoutubeVideoSearchTool, # Search YouTube ) # Assign tools to agent researcher = Agent( role="Researcher", goal="Find accurate information", backstory="Expert at finding data online.", tools=[SerperDevTool(), ScrapeWebsiteTool()] ) ``` ### Custom tools ```python from crewai.tools import BaseTool from pydantic import Field class CalculatorTool(BaseTool): name: str = "Calculator" description: str = "Performs mathematical calculations. Input: expression" def _run(self, expression: str) -> str: try: result = eval(expression) return f"Result: {result}" except Exception as e: return f"Error: {str(e)}" # Use custom tool agent = Agent( role="Analyst", goal="Perform calculations", tools=[CalculatorTool()] ) ``` ## YAML configuration (recommended) ### Project structure ``` my_project/ ├── src/my_project/ │ ├── config/ │ │ ├── agents.yaml # Agent definitions │ │ └── tasks.yaml # Task definitions │ ├── crew.py # Crew assembly │ └── main.py # Entry point └── pyproject.toml ``` ### agents.yaml ```yaml researcher: role: "{topic} Senior Data Researcher" goal: "Uncover cutting-edge developments in {topic}" backstory: > You're a seasoned researcher with a knack for uncovering the latest developments in {topic}. Known for your ability to find relevant information and present it clearly. reporting_analyst: role: "Reporting Analyst" goal: "Create detailed reports based on research data" backstory: > You're a meticulous analyst who transforms raw data into actionable insights through well-structured reports. ``` ### tasks.yaml ```yaml research_task: description: > Conduct thorough research about {topic}. Find the most relevant information for {year}. expected_output: > A list with 10 bullet points of the most relevant information about {topic}. agent: researcher reporting_task: description: > Review the research and create a comprehensive report. Focus on key findings and recommendations. expected_output: > A detailed report in markdown format with executive summary, findings, and recommendations. agent: reporting_analyst output_file: report.md ``` ### crew.py ```python from crewai import Agent, Crew, Process, Task from crewai.project import CrewBase, agent, crew, task from crewai_tools import SerperDevTool @CrewBase class MyProjectCrew: """My Project crew""" @agent def researcher(self) -> Agent: return Agent( config=self.agents_config['researcher'], tools=[SerperDevTool()], verbose=True ) @agent def reporting_analyst(self) -> Agent: return Agent( config=self.agents_config['reporting_analyst'], verbose=True ) @task def research_task(self) -> Task: return Task(config=self.tasks_config['research_task']) @task def reporting_task(self) -> Task: return Task( config=self.tasks_config['reporting_task'], output_file='report.md' ) @crew def crew(self) -> Crew: return Crew( agents=self.agents, tasks=self.tasks, process=Process.sequential, verbose=True ) ``` ### main.py ```python from my_project.crew import MyProjectCrew def run(): inputs = { 'topic': 'AI Agents', 'year': 2025 } MyProjectCrew().crew().kickoff(inputs=inputs) if __name__ == "__main__": run() ``` ## Flows - Event-driven orchestration For complex workflows with conditional logic, use Flows: ```python from crewai.flow.flow import Flow, listen, start, router from pydantic import BaseModel class MyState(BaseModel): confidence: float = 0.0 class MyFlow(Flow[MyState]): @start() def gather_data(self): return {"data": "collected"} @listen(gather_data) def analyze(self, data): self.state.confidence = 0.85 return analysis_crew.kickoff(inputs=data) @router(analyze) def decide(self): return "high" if self.state.confidence > 0.8 else "low" @listen("high") def generate_report(self): return report_crew.kickoff() # Run flow flow = MyFlow() result = flow.kickoff() ``` See [Flows Guide](references/flows.md) for complete documentation. ## Memory system ```python # Enable all memory types crew = Crew( agents=[researcher], tasks=[research_task], memory=True, # Enable memory embedder={ # Custom embeddings "provider": "openai", "config": {"model": "text-embedding-3-small"} } ) ``` **Memory types:** Short-term (ChromaDB), Long-term (SQLite), Entity (ChromaDB) ## LLM providers ```python from crewai import LLM llm = LLM(model="gpt-4o") # OpenAI (default) llm = LLM(model="claude-sonnet-4-5-20250929") # Anthropic llm = LLM(model="ollama/llama3.1", base_url="http://localhost:11434") # Local llm = LLM(model="azure/gpt-4o", base_url="https://...") # Azure agent = Agent(role="Analyst", goal="Analyze data", llm=llm) ``` ## CrewAI vs alternatives | Feature | CrewAI | LangChain | LangGraph | |---------|--------|-----------|-----------| | **Best for** | Multi-agent teams | General LLM apps | Stateful workflows | | **Learning curve** | Low | Medium | Higher | | **Agent paradigm** | Role-based | Tool-based | Graph-based | | **Memory** | Built-in | Plugin-based | Custom | ## Best practices 1. **Clear roles** - Each agent should have a distinct specialty 2. **YAML config** - Better organization for larger projects 3. **Enable memory** - Improves context across tasks 4. **Set max_iter** - Prevent infinite loops (default 15) 5. **Limit tools** - 3-5 tools per agent max 6. **Rate limiting** - Set max_rpm to avoid API limits ## Common issues **Agent stuck in loop:** ```python agent = Agent( role="...", max_iter=10, # Limit iterations max_rpm=5 # Rate limit ) ``` **Task not using context:** ```python task2 = Task( description="...", context=[task1], # Explicitly pass context agent=writer ) ``` **Memory errors:** ```python # Use environment variable for storage import os os.environ["CREWAI_STORAGE_DIR"] = "./my_storage" ``` ## References - **[Flows Guide](references/flows.md)** - Event-driven workflows, state management - **[Tools Guide](references/tools.md)** - Built-in tools, custom tools, MCP - **[Troubleshooting](references/troubleshooting.md)** - Common issues, debugging ## Resources - **GitHub**: https://github.com/crewAIInc/crewAI (25k+ stars) - **Docs**: https://docs.crewai.com
Voir sur GitHub
Ce SKILL.md est tres volumineux, SkillsMP affiche donc ici seulement la premiere section. Voir sur GitHub