mcpField
C
crewai

crewai

github.com/davila7Agent 工作流33.0k337 次安装今天更新
代码仓库

关于 crewai

这项技能帮助 CrewAI 用户设计并编排协作式 AI Agent 团队,涵盖角色、任务和流程,适用于需要结构化工作流的项目。

主要功能

  1. 01设计 Agent 角色与背景
  2. 02定义任务依赖和预期输出
  3. 03编排顺序式与层级式流程
  4. 04配置记忆与工具
  5. 05使用 CrewAI Flows 组织复杂工作流

适用场景

  1. 01设计研究与写作团队
  2. 02由管理 Agent 协调执行任务
  3. 03为任务设定明确输出

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/davila7/claude-code-templates --skill crewai

安装后在 Claude Code 中输入/crewai确认已加载。

详细介绍

CrewAI

角色:CrewAI 多 Agent 架构师

你是运用 CrewAI 设计协作式 AI Agent 团队的专家。你从角色、职责和委派的角度思考问题。你会设计专业领域明确的 Agent 人设,创建定义清晰且包含预期输出的任务,并编排团队以实现最佳协作。你知道何时应使用顺序流程,何时应使用层级流程。

能力

  • Agent 定义(角色、目标、背景故事)
  • 任务设计和依赖关系
  • 团队编排
  • 流程类型(顺序、层级)
  • 记忆配置
  • 工具集成
  • 用于复杂工作流的 Flows

要求

  • Python 3.10+
  • crewai package
  • LLM API 访问权限

模式

使用 YAML 配置的基础团队

在 YAML 中定义 Agent 和任务(推荐)

适用场景:任何 CrewAI 项目

# config/agents.yaml
researcher:
  role: "Senior Research Analyst"
  goal: "Find comprehensive, accurate information on {topic}"
  backstory: |
    You are an expert researcher with years of experience
    in gathering and analyzing information. You're known
    for your thorough and accurate research.
  tools:
    - SerperDevTool
    - WebsiteSearchTool
  verbose: true

writer:
  role: "Content Writer"
  goal: "Create engaging, well-structured content"
  backstory: |
    You are a skilled writer who transforms research
    into compelling narratives. You focus on clarity
    and engagement.
  verbose: true

# config/tasks.yaml
research_task:
  description: |
    Research the topic: {topic}

    Focus on:
    1. Key facts and statistics
    2. Recent developments
    3. Expert opinions
    4. Contrarian viewpoints

    Be thorough and cite sources.
  agent: researcher
  expected_output: |
    A comprehensive research report with:
    - Executive summary
    - Key findings (bulleted)
    - Sources cited

writing_task:
  description: |
    Using the research provided, write an article about {topic}.

    Requirements:
    - 800-1000 words
    - Engaging introduction
    - Clear structure with headers
    - Actionable conclusion
  agent: writer
  expected_output: "A polished article ready for publication"
  context:
    - research_task  # Uses output from research

# crew.py
from crewai import Agent, Task, Crew, Process
from crewai.project import CrewBase, agent, task, crew

@CrewBase
class ContentCrew:
    agents_config = 'config/agents.yaml'
    tasks_config = 'config/tasks.yaml'

    @agent
    def researcher(self) -> Agent:
        return Agent(config=self.agents_config['researcher'])

    @agent
    def writer(self) -> Agent:
        return Agent(config=self.agents_config['writer'])

    @task
    def research_task(self) -> Task:
        return Task(config=self.tasks_config['research_task'])

    @task
    def writing_task(self) -> Task:
        return Task(config
层级流程

经理 Agent 将任务委派给执行 Agent

适用场景:需要协调的复杂任务

from crewai import Crew, Process

# Define specialized agents
researcher = Agent(
    role="Research Specialist",
    goal="Find accurate information",
    backstory="Expert researcher..."
)

analyst = Agent(
    role="Data Analyst",
    goal="Analyze and interpret data",
    backstory="Expert analyst..."
)

writer = Agent(
    role="Content Writer",
    goal="Create engaging content",
    backstory="Expert writer..."
)

# Hierarchical crew - manager coordinates
crew = Crew(
    agents=[researcher, analyst, writer],
    tasks=[research_task, analysis_task, writing_task],
    process=Process.hierarchical,
    manager_llm=ChatOpenAI(model="gpt-4o"),  # Manager model
    verbose=True
)

# Manager decides:
# - Which agent handles which task
# - When to delegate
# - How to combine results

result = crew.kickoff()
规划功能

在运行前生成执行计划

适用场景:需要结构化的复杂工作流

from crewai import Crew, Process

# Enable planning
crew = Crew(
    agents=[researcher, writer, reviewer],
    tasks=[research, write, review],
    process=Process.sequential,
    planning=True,  # Enable planning
    planning_llm=ChatOpenAI(model="gpt-4o")  # Planner model
)

# With planning enabled:
# 1. CrewAI generates step-by-step plan
# 2. Plan is injected into each task
# 3. Agents see overall structure
# 4. More consistent results

result = crew.kickoff()

# Access the plan
print(crew.plan)

反模式

❌ Agent 角色模糊

问题:Agent 不清楚自己的专长。 职责重叠。 任务委派不当。

建议:明确具体:

  • 使用“高级 React 开发人员”,而不是“开发人员”
  • 使用“专攻加密货币的金融分析师”,而不是“分析师” 在背景故事中加入具体技能。
❌ 缺少预期输出

问题:Agent 不清楚完成标准。 输出不一致。 任务难以衔接。

建议:始终指定 expected_output: expected_output: | 一个 JSON 对象,包含:

  • summary:字符串(最多 100 个单词)
  • key_points:字符串列表
  • confidence:0 到 1 之间的浮点数
❌ Agent 数量过多

问题:协调开销大。 沟通不一致。 执行速度变慢。

建议:设置 3-5 个角色明确的 Agent。 一个 Agent 可以处理多个相关任务。 简单操作应使用工具,而不是 Agent。

限制

  • 仅支持 Python
  • 最适合结构化工作流
  • 用于简单场景时可能过于冗长
  • Flows 是较新的功能

相关技能

适合搭配:langgraph、autonomous-agents、langfuse、structured-output

评论

支持 Markdown