AI

オープンソースAIエージェントフレームワーク比較:LangChain vs AutoGen vs CrewAI で自律AIを構築する

オープンソースラボ編集部2026年6月13日

オープンソースAIエージェントフレームワーク比較:LangChain vs AutoGen vs CrewAI で自律AIを構築する

「AIが自分でタスクを計画・実行・修正する」AIエージェントの時代が来ています。LangChain・AutoGen・CrewAIはオープンソースでAIエージェントを構築するためのフレームワークです。単純なチャットボットを超えた自律的なAIシステムを構築しましょう。

AIエージェントが従来のLLMアプリと違う点

  • ツール使用: ウェブ検索・コード実行・ファイル操作を自律的に実行
  • 計画立案: タスクを複数のステップに自動分解
  • メモリ: 過去の会話・実行結果を記憶して参照
  • マルチエージェント: 複数のAIが協力して複雑なタスクを解決

主要ツールの概要

LangChain

最も広く使われているLLMアプリケーションフレームワークです。プロンプト管理・ツール連携・RAG・エージェント・チェーンをコンポーネントとして組み合わせて使えます。

from langchain.agents import AgentExecutor, create_tool_calling_agent
from langchain_community.tools import DuckDuckGoSearchRun, WikipediaQueryRun
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(model="gpt-4o", temperature=0)

tools = [
    DuckDuckGoSearchRun(),
    WikipediaQueryRun(),
]

prompt = ChatPromptTemplate.from_messages([
    ("system", "あなたは調査エージェントです。ツールを使って正確な情報を提供してください。"),
    ("placeholder", "{chat_history}"),
    ("human", "{input}"),
    ("placeholder", "{agent_scratchpad}"),
])

agent = create_tool_calling_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

result = agent_executor.invoke({
    "input": "Ollamaの最新バージョンとその主な新機能を調べてください",
    "chat_history": [],
})
print(result["output"])

AutoGen

MicrosoftResearchが開発したマルチエージェントフレームワークです。複数のAIエージェントが会話形式で協力してタスクを解決します。

from autogen import AssistantAgent, UserProxyAgent, GroupChat, GroupChatManager

llm_config = {"model": "gpt-4o", "api_key": "your-key"}

# 役割を持つエージェントを定義
planner = AssistantAgent(
    name="Planner",
    system_message="あなたはタスクを計画するエージェントです。",
    llm_config=llm_config,
)

coder = AssistantAgent(
    name="Coder",
    system_message="あなたはPythonコードを書くエージェントです。",
    llm_config=llm_config,
)

reviewer = AssistantAgent(
    name="Reviewer",
    system_message="あなたはコードをレビューするエージェントです。",
    llm_config=llm_config,
)

user_proxy = UserProxyAgent(
    name="User",
    human_input_mode="NEVER",
    code_execution_config={"use_docker": False},
)

# グループチャットでエージェントを連携
groupchat = GroupChat(
    agents=[user_proxy, planner, coder, reviewer],
    messages=[],
    max_round=10,
)
manager = GroupChatManager(groupchat=groupchat, llm_config=llm_config)

user_proxy.initiate_chat(
    manager,
    message="Pythonでフィボナッチ数列を計算する効率的な関数を作成してください",
)

CrewAI

「チーム(Crew)として協力するAIエージェント」の概念を実装したフレームワークです。役割(Role)・目標(Goal)・バックストーリー(Backstory)を定義したエージェントがタスクを分担します。

from crewai import Agent, Task, Crew, Process
from crewai_tools import SerperDevTool, WebsiteSearchTool

search_tool = SerperDevTool()

# エージェントの定義
researcher = Agent(
    role="シニアリサーチャー",
    goal="最新のAI/OSSトレンドを調査して正確な情報を提供する",
    backstory="10年のリサーチ経験を持つ専門家。常に最新情報を追う",
    tools=[search_tool],
    llm="gpt-4o",
)

writer = Agent(
    role="コンテンツライター",
    goal="技術的に正確でSEOに最適化された記事を書く",
    backstory="技術系ライターとして5年の経験を持つ",
    llm="gpt-4o",
)

# タスクの定義
research_task = Task(
    description="Ollamaの最新機能と競合ツールとの比較を調査する",
    agent=researcher,
    expected_output="800字以上の調査レポート",
)

write_task = Task(
    description="調査結果を基に日本語記事を書く",
    agent=writer,
    expected_output="1500字以上のSEO記事",
)

crew = Crew(
    agents=[researcher, writer],
    tasks=[research_task, write_task],
    process=Process.sequential,
)

result = crew.kickoff()

機能比較表

比較項目LangChainAutoGenCrewAI
ターゲット汎用LLMアプリマルチエージェントチーム型エージェント
シングルエージェント
マルチエージェント⚠️✅ 高機能
コード実行✅ サンドボックス
RAG統合
ツール使用✅ 100+
ストリーミング
ヒューマンインザループ
ローカルLLM対応
トレーシング(LangSmith)
プロダクション実績★★★★★★★★☆☆★★★☆☆
学習コスト中程度高い低い
ライセンスMITCC BY 4.0MIT
GitHub Stars100k+35k+23k+

LangGraph:ステートフルなAIエージェントワークフロー

LangChain v0.2以降のエージェント構築にはLangGraphの使用が推奨されています。LangGraphはDAGではなくサイクルのあるグラフとしてエージェントのフローを定義でき、条件分岐・ループ・人間の承認ステップを自然に表現できます。

from langgraph.graph import StateGraph, END
from typing import TypedDict, Annotated
import operator

class AgentState(TypedDict):
    messages: Annotated[list, operator.add]
    tool_calls: list

workflow = StateGraph(AgentState)
workflow.add_node("agent", call_model)
workflow.add_node("tools", call_tools)
workflow.add_conditional_edges(
    "agent",
    should_continue,
    {"continue": "tools", "end": END},
)
workflow.add_edge("tools", "agent")
workflow.set_entry_point("agent")
app = workflow.compile()

LLMエージェント・AI自動化ツールはLLMツールカテゴリ(/categories/llm-tools)で一覧でき、ワークフロー自動化ツールはDevOpsカテゴリ(/categories/devops)でも探せます。

FAQ

Q. LangChainとLangGraphの違いは何ですか?

A. LangChainはコンポーネント(LLM・PromptTemplate・OutputParser・Tool)を「チェーン」として繋ぐフレームワークです。LangGraphはLangChainの上に構築されたエージェントオーケストレーション層で、サイクルのあるワークフロー(ループ・条件分岐・ステート管理)をグラフとして表現します。2024年以降の新規プロジェクトではLangGraphを使うことが推奨されています。

Q. AutoGenのマルチエージェントはどんなユースケースに使いますか?

A. 「コードを書く→テストする→バグを修正する→レビューする」のような複数のロールが必要なタスクに最適です。実際のユースケースとして: ソフトウェアチームのシミュレーション(PM・デベロッパー・QA)・研究論文の査読・複雑な数学的証明の生成などがあります。

Q. ローカルLLM(Ollama)でエージェントを動かせますか?

A. はい。LangChain・CrewAIともにOllama経由でローカルLLMをバックエンドとして使えます。ただし複雑なツール使用・マルチエージェント連携には指示追従能力が高いモデル(Llama 3.1 70B以上・Mistral Large等)を推奨します。7Bモデルは簡単なタスクには使えますが、複雑なエージェントタスクでは信頼性が低下します。

Q. AIエージェントの実行コストをコントロールするには?

A. トークン使用量の上限設定(LangChainのmax_tokens)、ループの最大反復回数の設定(AutoGenのmax_consecutive_auto_reply)、安価なモデルをツール呼び出しに使いGPT-4oを最終回答のみに使う「モデル階層化」が効果的です。LangSmithでトークン使用量をモニタリングすることも重要です。

Q. CrewAIはLangChainより使いやすいですか?

A. CrewAIはより宣言的なAPIで、エージェントの「役割・目標・バックストーリー」を定義するだけでチームが動き始めます。LangChainは柔軟性が高い分、学習コストも高いです。プロトタイピングの速度ならCrewAI、本番環境での柔軟なカスタマイズや詳細なトレーシングならLangChainが優れています。

まとめ

ユースケース推奨ツール
汎用LLMアプリ・RAGLangChain
マルチエージェント・コード生成AutoGen
チーム型タスク自動化CrewAI
ステートフルエージェントLangGraph

関連外部リソース

他の記事も読む

Let's Build Together

OSS導入、自社だけで悩まない。

ツール選定から構築・運用・AI活用まで、オープンソースラボ運営元のClasslessが伴走します。初回のご相談は無料です。