Crewai
Curated collection of AI agent skills for Hermes and other agent frameworks
npx -y skills add magnus919/agent-skills --skill crewaiAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 25 days oldThe repository was created 25 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 21 stars21 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Expert skill for role-based multi-agent orchestration with CrewAI. Agents with Role/Goal/Backstory, task design, crew composition (sequential or hierarchical), tool integration, callbacks, and production deployment. Use when orchestrating multi-agent teams or comparing agent frameworks.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
6.4 KB, as published. Nobody here has run it
CrewAI Expert Skill
CrewAI is a framework for role-based multi-agent orchestration. Unlike LangGraph's low-level state-machine graphs, CrewAI provides a higher abstraction: agents are defined as Roles with Goals and Backstories, crews are composed with built-in sequential or hierarchical workflows, and inter-agent delegation is built into the framework.
Core Paradigm
from crewai import Agent, Task, Crew, Process
from crewai.tools import tool
@tool("search")
def search_web(query: str) -> str:
"""Search the web for information."""
return f"Results for: {query}"
researcher = Agent(
role="Senior Researcher",
goal="Find accurate information on any topic",
backstory="Expert researcher with 10 years of experience",
tools=[search_web],
verbose=True,
)
writer = Agent(
role="Technical Writer",
goal="Write clear reports from research findings",
backstory="Experienced technical writer",
verbose=True,
)
research_task = Task(
description="Research the topic thoroughly",
expected_output="A detailed research brief",
agent=researcher,
)
write_task = Task(
description="Write a report based on research",
expected_output="A well-structured report",
agent=writer,
)
crew = Crew(
agents=[researcher, writer],
tasks=[research_task, write_task],
process=Process.sequential,
verbose=True,
)
result = crew.kickoff()
Core Principles
- Agents are Roles, not functions. Role + Goal + Backstory defines the agent's identity. Strong role definitions reduce hallucination.
- Tasks declare what, not how. Description + expected_output defines the task. The agent figures out execution.
- Sequential is for pipelines, Hierarchical is for complexity. Sequential runs tasks in order. Hierarchical uses a manager agent to delegate and validate.
- Manager LLM is required for Hierarchical. Without
manager_llm, hierarchical process fails silently. - Delegation loops are real.
allow_delegation=Truewithoutmax_iterbounds can cause infinite handoffs. - Tool errors don't raise. A failed tool call marks the task as failed but doesn't raise an exception. Check task output.
Where to Start
| You already have... | Start here |
|---|---|
| Nothing — exploring CrewAI | Sequential crew with 2 agents (research → write) |
| Agents you want to coordinate | Build a Hierarchical crew with manager_llm |
| Tools you want to integrate | Use @tool decorator, add tools to relevant agents |
| A production deployment | Add callbacks, memory, error handling |
Quick Reference
| Task | Approach | Reference |
|---|---|---|
| Define agent | Agent(role, goal, backstory) | references/agent-design.md |
| Define task | Task(description, expected_output, agent) | references/task-design.md |
| Sequential crew | Crew(process=Process.sequential) | references/crew-patterns.md |
| Hierarchical crew | Crew(process=Process.hierarchical, manager_llm=...) | references/crew-patterns.md |
| Create tool | @tool("name") decorator | references/tool-integration.md |
| Add callbacks | step_callback=fn on Agent | references/callbacks.md |
| Enable memory | memory=True on Crew or Agent | references/crew-patterns.md |
Framework Routing Guide
| Scenario | Reach for | Why |
|---|---|---|
| Role-based multi-agent teams | CrewAI | Role/Goal/Backstory is the native abstraction |
| State-machine multi-agent | LangGraph | Graph topology, subgraphs, human-in-the-loop |
| Conversational multi-agent | AutoGen | Agent chat as orchestration primitive |
| Chain/agent composition | LangChain | LCEL pipe operator for general chains |
| Documents to query / RAG | LlamaIndex | Data ingestion is the primary primitive |
Reference Files
| Reference | Load when | File |
|---|---|---|
| Agent Design | Defining agents with roles, goals, backstories | references/agent-design.md |
| Task Design | Creating tasks with descriptions and outputs | references/task-design.md |
| Crew Patterns | Sequential, hierarchical, consensual crews | references/crew-patterns.md |
| Tool Integration | Creating tools with @tool decorator | references/tool-integration.md |
| Callbacks | Monitoring agent and task execution | references/callbacks.md |
| Memory System | Unified Memory class, cross-agent context | references/memory-system.md |
| Flows | Event-driven orchestration connecting crews | references/flows.md |
| FAQ & Troubleshooting | Common errors and fixes | references/faq-and-troubleshooting.md |
Templates
| Template | When to use | File |
|---|---|---|
| Research Crew | Sequential: researcher → writer → reviewer | templates/research-crew.py |
| Hierarchical Crew | Manager with specialist agents | templates/hierarchical-crew.py |
| Customer Support | Triage → specialist → response | templates/support-crew.py |
Troubleshooting
| Symptom | Likely cause | Fix | Reference |
|---|---|---|---|
| Crew runs but no output | Agent stuck in delegation loop | Set max_iter=15 on agent | references/agent-design.md |
| Hierarchical crew fails | No manager_llm set | Add manager_llm=ChatOpenAI(model="gpt-4") | references/crew-patterns.md |
| Task never completes | Agent exceeds max_iter | Increase max_iter or simplify task | references/agent-design.md |
| Tool not being called | Tool not added to agent | Add tools=[my_tool] to Agent definition | references/tool-integration.md |
| High token usage | Hierarchical mode | Manager processes all outputs — use cheaper LLM | references/crew-patterns.md |
| Memory between tasks not working | Crew-level memory not set | Add memory=True to Crew | references/crew-patterns.md |
When NOT to Use CrewAI
- Single-agent task — too much abstraction for one agent
- Need fine-grained graph control (cycles, conditional branching) — use LangGraph
- Need conversational agent interactions — use AutoGen
- Need simple chain composition — use LangChain LCEL