Composio とは?

AI エージェント開発の分野において、ツール呼び出し(Tool Calling) は、大規模言語モデルを「チャットボット」から「賢いアシスタント」へと進化させる鍵となる機能です。しかし、エージェントに外部ツールを統合するのは常に頭痛の種でした。OAuth 認証、API レート制限、エラーリトライ、権限管理といった複雑な問題に対処する必要があるからです。

Composio は、まさにこの問題を解決するために生まれたオープンソースフレームワークです。「AI エージェントのためのアクションレイヤー(Action Layer)」 と称され、GitHub、Slack、Gmail、Notion、Jira などの主要アプリや、Hacker News、Reddit などのコンテンツプラットフォームをカバーする 500 以上の LLM 対応ツールを提供しています。

主な特徴

  • 1000 以上のアプリ統合:主要な SaaS ツールやコンテンツプラットフォームをサポート
  • ホスト認証(Managed Auth):OAuth トークンの更新や権限管理を自動処理
  • 多フレームワーク対応:LangChain、LlamaIndex、OpenAI Agents、CrewAI、AutoGen などにシームレスに統合
  • サンドボックス実行環境:安全なツール呼び出しの隔離
  • 並列実行:複数のツールを同時に呼び出し、エージェントの効率を向上
  • リアルタイムダッシュボード:ツール呼び出しのログやパフォーマンスを監視

なぜ Composio を選ぶのか?

従来の方法 Composio を使用
各ツールの OAuth フローを手動で実装 認証はコード 1 行で完了
API レート制限やリトライを自分で処理 組み込みのレート制限とエラー処理
フレームワークごとにアダプターコードを書く 統一された SDK インターフェース
デバッグが難しく、可観測性に欠ける 完全な呼び出しログとモニタリング

エンタープライズ級の AI エージェントプロジェクトにとって、Composio は数週間の統合開発時間を節約できます。個人開発者にとっては、迅速なプロトタイピングに最適な選択肢です。


Composio のインストール

Composio は Python と TypeScript の 2 種類の SDK を提供しており、プロジェクトの技術スタックに合わせて選べます。

Python のインストール

BASH
# pip を使用
pip install composio

# または poetry を使用
poetry add composio

OpenAI Agents フレームワークを使用する場合は、対応するプロバイダーもインストールする必要があります。

BASH
pip install composio_openai_agents openai-agents

TypeScript/Node.js のインストール

BASH
# npm を使用
npm install @composio/core

# yarn を使用
yarn add @composio/core

# pnpm を使用
pnpm add @composio/core

OpenAI Agents 統合用:

BASH
npm install @composio/openai-agents @openai/agents

API Key の取得

  1. Composio Dashboard にアクセスしてアカウント登録
  2. 新規プロジェクトを作成し、API Key を取得
  3. 環境変数を設定:
BASH
export COMPOSIO_API_KEY="your-api-key-here"

クイックスタート:最初の AI エージェント

Hacker News の最新動向を検索できるシンプルなエージェントを作ってみましょう。

Python の例

PYTHON
import asyncio
from agents import Agent, Runner
from composio import Composio
from composio_openai_agents import OpenAIAgentsProvider

# Composio クライアントを初期化
composio = Composio(provider=OpenAIAgentsProvider())

# ユーザー ID を取得(認証の分離用)
user_id = "user@example.com"

# Hacker News ツールを取得
tools = composio.tools.get(
    user_id=user_id,
    toolkits=["HACKERNEWS"]
)

# エージェントを作成
agent = Agent(
    name="HackerNews Agent",
    instructions="あなたは Hacker News のアシスタントで、最新の技術動向を知る手助けをします。",
    tools=tools,
)

# エージェントを実行
async def main():
    result = await Runner.run(
        starting_agent=agent,
        input="今日 Hacker News で最も注目を集めている技術スレッドは何?",
    )
    print(result.final_output)

asyncio.run(main())

TypeScript の例

TYPESCRIPT
import { Composio } from '@composio/core';
import { OpenAIAgentsProvider } from '@composio/openai-agents';
import { Agent, run } from '@openai/agents';

// SDK を初期化
const composio = new Composio({
  provider: new OpenAIAgentsProvider(),
});

const userId = 'user@example.com';

// ツールを取得
const tools = await composio.tools.get(userId, {
  toolkits: ['HACKERNEWS'],
});

// エージェントを作成
const agent = new Agent({
  name: 'HackerNews assistant',
  tools: tools,
});

// 実行
const result = await run(agent, 'What is the latest hackernews post about?');
console.log(JSON.stringify(result.finalOutput, null, 2));

上記のコードを実行すると、エージェントは自動的に Hacker News API を呼び出し、最新の投稿を取得して要約を返します。API 認証やデータ解析を手動で処理する必要は一切ありません。


応用機能:複数ツールの統合

Composio の真価は、エージェントに複数のツール能力を同時に与えられる点にあります。以下はより複雑な例で、GitHub の Issue を管理し Slack 通知を送るエージェントを作成します。

複数ツールエージェントの設定

PYTHON
from composio import Composio
from composio_openai_agents import OpenAIAgentsProvider

# 初期化
composio = Composio(provider=OpenAIAgentsProvider())
user_id = "dev-team@company.com"

# 複数のツールキットを取得
tools = composio.tools.get(
    user_id=user_id,
    toolkits=["GITHUB", "SLACK"],
)

# DevOps エージェントを作成
agent = Agent(
    name="DevOps Assistant",
    instructions="""
    あなたは DevOps アシスタントで、以下のことができます:
    1. GitHub リポジトリの Issue 状態を確認
    2. 新しい Issue や Pull Request を作成
    3. Slack チャンネルに通知を送信

    重要な Issue の更新があれば、自動的にチームに通知してください。
    """,
    tools=tools,
)

実際のユースケース

シナリオ 1:自動化された Issue 追跡

PYTHON
async def monitor_issues():
    """重要な Issue を監視しチームに通知"""
    result = await Runner.run(
        starting_agent=agent,
        input="""
        composiohq/composio リポジトリで 'bug' ラベルが付いており、7 日以上返信がない Issue を確認し、
        そのリストを #engineering Slack チャンネルに送信してください。
        """,
    )
    print(result.final_output)

シナリオ 2:CI/CD 通知ボット

エージェントは GitHub Actions の実行状況を監視し、ビルドが失敗した際に自動的に Issue を作成し、関係者に通知することができます。


認証管理:Composio の最大の強み

従来のエージェント開発では、OAuth 認証が最も面倒な部分の一つでした。Composio はホスト認証(Managed Authentication)によってこの問題を完全に解決しました。

認証フローの比較

従来の方法: 1. Google Cloud Console でアプリを登録 2. OAuth 同意画面を設定 3. 認可コード交換を処理 4. トークン更新ロジックを実装 5. 資格情報を安全に保存 6. 権限取り消しに対応

Composio を使用:

PYTHON
# 認証フローを開始するにはコード 1 行だけ
connection = composio.connections.initiate(
    user_id=user_id,
    app_name="gmail",
)
# ユーザーが OAuth 承認を完了すると、Composio がトークンを自動管理

サポートされる認証タイプ

  • OAuth 2.0:Google、GitHub、Slack、Notion など
  • API Key:OpenAI、Anthropic、Stripe など
  • Basic Auth:一部のレガシーシステム
  • JWT:カスタムサービス

Composio はトークンの更新、スコープ管理、安全な保存を自動的に行います。あなたのエージェントコードはこれらの詳細を気にする必要はありません。


主要フレームワークとの統合

Composio はフレームワーク非依存のツール層として設計されており、あらゆる AI エージェントエコシステムに簡単に統合できます。

LangChain 統合

PYTHON
from composio_langchain import ComposioToolSet

toolset = ComposioToolSet()
tools = toolset.get_tools(apps=["github", "slack"])

from langchain.agents import initialize_agent
agent = initialize_agent(
    tools=tools,
    llm=your_llm,
    agent_type="zero-shot-react-description"
)

CrewAI 統合

PYTHON
from crewai import Agent, Task, Crew
from composio_crewai import ComposioToolSet

toolset = ComposioToolSet()
github_tools = toolset.get_tools(apps=["github"])

researcher = Agent(
    role='GitHub Researcher',
    goal='GitHub のトレンドプロジェクトを分析',
    tools=github_tools,
    backstory='あなたはオープンソースプロジェクトのアナリストです',
)

AutoGen 統合

PYTHON
from composio_autogen import ComposioToolSet

toolset = ComposioToolSet()
tools = toolset.get_tools(apps=["notion", "gmail"])

# ツールを AutoGen エージェントに渡す
assistant = ConversableAgent(
    "assistant",
    llm_config={"config_list": config_list},
    function_map=tools.get_function_map(),
)

実践事例:インテリジェントカスタマーサポートエージェントの構築

完全なインテリジェントカスタマーサポートエージェントを構築しましょう。これは以下のことができます: 1. ナレッジベース(Notion)の検索 2. サポートチケットの作成(Jira) 3. メール返信の送信(Gmail)

PYTHON
from composio import Composio
from composio_openai_agents import OpenAIAgentsProvider

# 初期化
composio = Composio(provider=OpenAIAgentsProvider())
user_id = "support-bot@company.com"

# カスタマーサポート関連ツールを取得
tools = composio.tools.get(
    user_id=user_id,
    toolkits=["NOTION", "JIRA", "GMAIL"],
)

# カスタマーサポートエージェントを作成
support_agent = Agent(
    name="Customer Support Agent",
    instructions="""
    あなたは会社のインテリジェントカスタマーサポートアシスタントです。ワークフロー:

    1. まず Notion ナレッジベースでユーザーの質問に対する答えを検索
    2. 答えが見つかった場合、Gmail でユーザーに送信
    3. 答えが見つからない場合、Jira でサポートチケットを作成し、
       テクニカルサポートチームに割り当て、Gmail でユーザーにチケット番号を通知

    友好的でプロフェッショナルな口調を保ってください。
    """,
    tools=tools,
)

# ユーザーの問い合わせを処理
async def handle_customer_query(customer_email: str, question: str):
    prompt = f"""
    顧客メール:{customer_email}
    質問:{question}

    ワークフローに従って処理してください。
    """

    result = await Runner.run(
        starting_agent=support_agent,
        input=prompt,
    )
    return result.final_output

このエージェントは webhook サービスとしてデプロイでき、メールフォームからの顧客問い合わせを自動的に処理できます。


パフォーマンス最適化のベストプラクティス

1. 並列ツール呼び出し

Composio は複数のツールの並列実行をサポートし、エージェントの応答速度を大幅に向上させます。

PYTHON
# 複数のデータソースを同時に照会
tools = composio.tools.get(
    user_id=user_id,
    toolkits=["GITHUB", "GITLAB", "BITBUCKET"],
)
# エージェントは 3 つのプラットフォームのプロジェクト情報を並列で照会可能

2. ツールキャッシュ

頻繁に呼び出される読み取り専用操作では、キャッシュを有効にすることで API 呼び出し回数を減らせます。

PYTHON
tools = composio.tools.get(
    user_id=user_id,
    toolkits=["HACKERNEWS"],
    cache_ttl=300,  # 5 分間キャッシュ
)

3. オンデマンドでのツール読み込み

すべてのツールを一度に読み込むのではなく、シナリオに応じて動的に選択します。

PYTHON
# 開発シナリオ:コード関連ツールのみ読み込み
dev_tools = composio.tools.get(user_id, toolkits=["GITHUB", "GITLAB"])

# オフィスシナリオ:生産性ツールのみ読み込み
office_tools = composio.tools.get(user_id, toolkits=["GMAIL", "NOTION", "SLACK"])

4. エラー処理

Composio には組み込みのリトライ機制がありますが、カスタムエラー処理を追加することもできます。

PYTHON
try:
    result = await Runner.run(agent, input)
except ToolExecutionError as e:
    print(f"ツール実行失敗: {e}")
    # フォールバック戦略:代替ツールを使用するか、親切なメッセージを返す

Composio vs その他のソリューション

機能 Composio LangChain Tools 自建統合
事前構築済みツール数 500+ ~50 0
ホスト認証 ✅ ❌ 自前で構築必要
多フレームワーク対応 ✅ LangChain のみ N/A
可観測性 ✅ 完全なダッシュボード 限定的 自前で構築必要
オープンソース ✅ MIT ✅ N/A
セルフホストオプション ✅ N/A N/A

本番環境では、Composio のホスト認証と可観測性は代替不可能な優位性を持っています。学習目的であれば、LangChain の組み込みツールで入門には十分です。


まとめ

Composio は AI エージェント開発の未来を体現しています。複雑さを抽象化し、開発者がインフラではなくエージェントのロジックに集中できるようにするのです。

コアバリュー

  1. 開発効率:数週間から数時間へ短縮
  2. 信頼性:ホスト認証と専門的にメンテナンスされたツール統合
  3. 拡張性:コードのリファクタなしで新しいツールを簡単に追加
  4. 可観測性:デバッグと最適化に役立つ完全な呼び出しログ

適用シナリオ

  • ✅ エンタープライズ級 AI エージェント製品
  • ✅ 複数ツール統合が必要な複雑なワークフロー
  • ✅ 迅速なプロトタイプ検証
  • ✅ 監査ログが必要な本番環境

次のステップ

AI エージェントの未来は行動能力にあります。そして Composio は、意図と行動をつなぐ架け橋なのです。