mcpField
C
crewai

crewai

github.com/magnus919エージェントワークフロー16163 回インストール1 日前に更新
リポジトリ

crewai について

crewaiは、CrewAIで役割ベースのマルチエージェントワークフローを設計・運用するためのエキスパートスキルです。エージェントやタスクの設計、逐次・階層型のチーム、ツール、メモリ、トラブルシューティングを扱います。

主な機能

  1. 01役割・目標・背景に基づくエージェント設計
  2. 02逐次型・階層型チームのパターン
  3. 03タスク定義とツール連携
  4. 04メモリ、コールバック、フローの資料
  5. 05テンプレートとトラブルシューティング

活用シーン

  1. 01調査担当から執筆担当へつなぐチームの設計
  2. 02マネージャーによる専門エージェントの調整
  3. 03チームへのツールとメモリの追加

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/magnus919/agent-skills --skill crewai

インストール後、Claude Code で/crewaiを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

README.md
evals/
evals.json
references/
agent-design.md
callbacks.md
crew-patterns.md
faq-and-troubleshooting.md
flows.md
memory-system.md
task-design.md
tool-integration.md
validation-audit.md
scripts/
check-setup.py
templates/
hierarchical-crew.py
research-crew.py
support-crew.py

詳細

CrewAI エキスパートスキル

CrewAI は、役割ベースのマルチエージェントオーケストレーションのためのフレームワークです。低レベルのステートマシングラフを扱う LangGraph とは異なり、CrewAI はより高度な抽象化を提供します。エージェントは役割、目標、背景情報を持つものとして定義され、クルーは組み込みの逐次または階層型ワークフローで構成され、エージェント間の委任機能がフレームワークに組み込まれています。

中核となるパラダイム

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()

中核となる原則

  1. エージェントは関数ではなく、役割です。 役割+目標+背景情報によって、エージェントのアイデンティティが定義されます。役割を明確に定義すると、ハルシネーションを減らせます。
  2. タスクでは方法ではなく、内容を宣言します。 説明+期待される出力でタスクが定義されます。実行方法はエージェントが判断します。
  3. 逐次型はパイプラインに、階層型は複雑なタスクに適しています。 逐次型ではタスクを順番に実行します。階層型ではマネージャーエージェントが委任と検証を行います。
  4. 階層型にはマネージャー LLM が必要です。 manager_llm がないと、階層型プロセスはエラーを通知せずに失敗します。
  5. 委任ループは実際に発生します。 max_iter の上限を設定せずに allow_delegation=True にすると、引き継ぎが無限に続く可能性があります。
  6. ツールのエラーは例外を発生させません。 ツール呼び出しに失敗するとタスクは失敗としてマークされますが、例外は発生しません。タスクの出力を確認してください。

どこから始めるか

すでにあるものここから始める
何もない — CrewAI を試している2 つのエージェントによる逐次型クルー(調査 → 執筆)
連携させたいエージェントmanager_llm を使って階層型クルーを構築する
統合したいツール@tool デコレーターを使い、関連するエージェントにツールを追加する
本番環境へのデプロイコールバック、メモリ、エラー処理を追加する

クイックリファレンス

タスク方法リファレンス
エージェントを定義するAgent(role, goal, backstory)references/agent-design.md
タスクを定義するTask(description, expected_output, agent)references/task-design.md
逐次型クルーCrew(process=Process.sequential)references/crew-patterns.md
階層型クルーCrew(process=Process.hierarchical, manager_llm=...)references/crew-patterns.md
ツールを作成する@tool("name") デコレーターreferences/tool-integration.md
コールバックを追加するAgent の step_callback=fnreferences/callbacks.md
メモリを有効にするCrew または Agent の memory=Truereferences/crew-patterns.md

フレームワーク選択ガイド

シナリオ選択するもの理由
役割ベースのマルチエージェントチームCrewAI役割/目標/背景情報がネイティブの抽象化です
ステートマシン型のマルチエージェントLangGraphグラフトポロジー、サブグラフ、ヒューマン・イン・ザ・ループに対応します
会話型マルチエージェントAutoGenエージェント間のチャットをオーケストレーションの基本要素として扱います
チェーン/エージェントの構成LangChain汎用チェーン向けの LCEL パイプ演算子を利用できます
ドキュメントの検索/RAGLlamaIndexデータの取り込みが主要な基本要素です

リファレンスファイル

リファレンス読み込むタイミングファイル
エージェント設計役割、目標、背景情報を持つエージェントを定義するときreferences/agent-design.md
タスク設計説明と出力を持つタスクを作成するときreferences/task-design.md
クルーのパターン逐次型、階層型、合意形成型のクルーを扱うときreferences/crew-patterns.md
ツール統合@tool デコレーターを使ってツールを作成するときreferences/tool-integration.md
コールバックエージェントとタスクの実行を監視するときreferences/callbacks.md
メモリシステム統合メモリークラス、エージェント間のコンテキストを扱うときreferences/memory-system.md
フロークルーをつなぐイベント駆動型オーケストレーションを扱うときreferences/flows.md
FAQ とトラブルシューティングよくあるエラーと解決方法を確認するときreferences/faq-and-troubleshooting.md

テンプレート

テンプレート使用する場面ファイル
調査クルー逐次型:調査担当者 → 執筆者 → レビュアーtemplates/research-crew.py
階層型クルー専門エージェントを率いるマネージャーtemplates/hierarchical-crew.py
カスタマーサポートトリアージ → 専門担当者 → 回答templates/support-crew.py

トラブルシューティング

症状考えられる原因解決策参照
Crew は実行されるが出力がないエージェントが委任ループから抜け出せないエージェントに max_iter=15 を設定しますreferences/agent-design.md
階層型の Crew が失敗するmanager_llm が設定されていないmanager_llm=ChatOpenAI(model="gpt-4") を追加しますreferences/crew-patterns.md
タスクが完了しないエージェントが max_iter を超過するmax_iter を増やすか、タスクを簡素化しますreferences/agent-design.md
ツールが呼び出されないツールがエージェントに追加されていないAgent の定義に tools=[my_tool] を追加しますreferences/tool-integration.md
トークンの使用量が多い階層モードマネージャーがすべての出力を処理します — より安価な LLM を使用しますreferences/crew-patterns.md
タスク間のメモリが機能しないCrew レベルのメモリが設定されていないCrew に memory=True を追加しますreferences/crew-patterns.md

CrewAI を使用しないケース

  • 単一エージェントのタスク — 1 つのエージェントには抽象化が過剰です
  • グラフを細かく制御する必要がある場合(サイクル、条件分岐) — LangGraph を使用します
  • 会話型エージェントのやり取りが必要な場合 — AutoGen を使用します
  • シンプルなチェーン構成が必要な場合 — LangChain LCEL を使用します

コメント