AIエージェント入門

Composio完全ガイド2026|AIエージェント100+ SaaS統合

Composio完全ガイド2026|AIエージェント100+ SaaS統合

この記事の結論

ComposioはAIエージェントとSlack・Gmail・Notion等1000+ツールをつなぐSaaS統合プラットフォーム。インストールからOAuth管理・LangChain連携・Triggers設定まで実装手順を解説する。

結論:本記事では「Composio完全ガイド2026」の定義・主要機能・実際の活用方法を、初心者でも理解できる形で体系的に解説します。

対象読者:本テーマに興味がある実務担当者・意思決定者。

読了後にできること:本記事の要点を踏まえて、自社や自分の状況に合わせた次のアクションを判断できます。



AIエージェントを本番運用しようとした瞬間に直面するのが「認証の壁」だ。SlackのOAuth、GmailのAPIキー、NotionのトークンをエージェントにどうSecureに渡すか――そのたびに独自実装を書いていては時間がいくらあっても足りない。

Composioはこの問題をまるごと解決するSaaS統合プラットフォームだ。GitHub Stars 28k超(2026年5月時点)、1000+ツールキット、OAuth/APIキー/JWTの自動管理、そしてLangChain・CrewAI・AutoGenへの直接組み込み。エージェントがSlackにメッセージを送り、Gmailを読み取り、GitHub Issueを作る、その全工程を数行のコードで実現できる。

本記事ではインストールから始め、Auth設定・Toolset構成・Triggers・マルチユーザー対応・セキュリティまで、実務で使える実装パターンを一通り解説する。

Composioとは何か

エージェント向けSaaS統合レイヤーの全体像

Composioはエージェント向けに設計されたSaaS統合レイヤーだ。大雑把に言えば「エージェントとあらゆるSaaS APIの間に立つ仲介プラットフォーム」で、以下を提供する。

  • 1000+ツールキット: Slack・Gmail・GitHub・Notion・Linear・Salesforce・Jiraほか
  • 認証の完全管理: OAuth 2.0フロー・トークンリフレッシュ・APIキー保管をComposioが担う
  • メタツールによる動的ディスカバリ: エージェントが実行時に必要なツールを検索・取得できる
  • Triggers: Webhook/Polling で外部イベントをエージェントに届ける
  • マルチユーザー対応: ユーザーごとに独立したOAuth接続を持てる

ライセンスとSDK対応状況

オープンソースで利用でき、Python・TypeScript双方のSDKが整備されている。

ライセンスはMIT、GitHubリポジトリは ComposioHQ/composio公式ドキュメントPyPI composioも整備されており、PythonとTypeScript両方のSDKが揃っている(Python 3.10+、Node.js対応)。

SmitheryとComposio――レジストリとAPIプラットフォームの違い

それぞれの位置づけと役割

当サイトでも解説したSmitheryはMCP Serverの「発見・管理レジストリ」だ。一方ComposioはSaaS APIへの「統合実行プラットフォーム」であり、役割が異なる。

機能比較表で見る違い

以下の表で両ツールの守備範囲を整理する。

Smithery Composio
主な役割 MCPサーバーの検索・インストール管理 SaaS APIへの統合・実行・認証管理
プロトコル MCP(Model Context Protocol) REST API + ネイティブツール + MCP
認証管理 サーバーごとに別途設定 OAuth/APIキーを一元管理
Triggers なし Webhook/Polling対応
マルチユーザー 基本単一ユーザー per-user OAuth対応
向いている用途 開発者ツールの接続・プロトタイプ 本番SaaS統合・顧客向けエージェント

実務での併用パターン

実務では「Smitheryでツールを発見し、Composioで本番統合する」という組み合わせが自然な流れになる。ComposioはMCPプロトコルにも対応しているため、Smithery経由で接続したMCPクライアントからComposioのツール群を利用することもできる。

インストールとクイックスタート

Python・TypeScriptのSDKインストール

まずパッケージをインストールする。フレームワーク統合用のサブパッケージも一緒に入れておくと後が楽だ。

# Python(コアSDK)
pip install composio

# LangChain統合
pip install composio-langchain

# CrewAI統合
pip install composio-crewai

# TypeScript(npm)
npm install @composio/core

環境変数とAPIキーの設定

SDKが認証情報を読み取れるよう、環境変数を設定する。

export COMPOSIO_API_KEY="your_composio_api_key"
export OPENAI_API_KEY="your_openai_api_key"  # LLM側のキー

最小構成コードで動作確認

最小構成のクイックスタート(Python)。

from composio import Composio

composio = Composio()

# ユーザーセッション作成
session = composio.create(user_id="user_123")

# 利用可能なツールを取得
tools = session.tools()

print(f"取得したツール数: {len(tools)}")

TypeScript版。

import { Composio } from "@composio/core";

const composio = new Composio();

// ユーザーセッション作成
const session = await composio.create("user_123");

// ツール取得
const tools = await session.tools();
console.log(`取得したツール数: ${tools.length}`);

Auth管理(OAuth / APIキーの自動処理)

OAuthフローの完全抽象化

ComposioがもっともエージェントのDXを改善するのがここだ。通常、SlackのOAuth 2.0フローを自前実装すると、認可URL生成・コールバック処理・トークン保管・リフレッシュ処理と数百行のコードが必要になる。Composioはこれを完全に抽象化する。

ユーザーにOAuth接続を促す場合のフロー(Python)。

from composio import Composio

composio = Composio()
session = composio.create(user_id="user_alice")

# Slack接続のURL生成
connection_request = session.connections.initiate("slack")
print(f"接続URL: {connection_request.redirect_url}")
# → このURLをユーザーに渡してSlack OAuthを完了してもらう

# 接続状態の確認
connections = session.connections.list()
for conn in connections:
    print(f"接続済み: {conn.toolkit} / ステータス: {conn.status}")

Brokered Credential Patternによるトークン分離

重要な設計原則として、LLM(エージェント)はユーザーのOAuthトークンを直接参照しない。ComposioがVaultでトークンを管理し、エージェントはComposio API経由でのみツールを呼び出す。これをbrokered credential patternと呼ぶ。

Toolset設定(Slack・Gmail・Notion・Linear)

ツールキットの命名規則と絞り込み

Composioのツールキットは TOOLKIT_ACTION という命名規則に従う。たとえばGitHubにIssueを作成するなら GITHUB_CREATE_ISSUE、Slackにメッセージをポストするなら SLACK_SEND_MESSAGE だ。

セッションから特定ツールキットのツールに絞り込む方法(TypeScript)。

import { Composio } from "@composio/core";

const composio = new Composio();
const session = await composio.create("user_alice");

// Slackツールキットのツールのみ取得
const slackTools = await session.tools({
  toolkits: ["slack"],
});

// 複数ツールキットをまとめて
const tools = await session.tools({
  toolkits: ["slack", "gmail", "notion", "linear"],
});

console.log("利用可能なツール:", tools.map((t) => t.name));

メタツールによる動的検索

エージェントが動的にツールを検索するメタツールパターンでは、LLMが実行時に必要なツールを発見できる。

from composio import Composio

composio = Composio()
session = composio.create(user_id="user_alice")

# メタツール経由でSlack関連ツールを検索
results = session.tools.search("Slackにメッセージを送信する")
for tool in results:
    print(f"発見: {tool.slug} - {tool.description}")

LangChain / CrewAI / AutoGen 連携

LangChain Agentへのツール組み込み

Composioの強みのひとつが主要AIフレームワークへのネイティブ統合だ。LangChain・CrewAI・AutoGen・OpenAI Function Calling に対応している。

LangChain Agent へのComposioツール組み込み。

from composio_langchain import ComposioToolSet
from langchain.agents import AgentExecutor, create_openai_tools_agent
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate

# ComposioのLangChain用ToolSet
composio_toolset = ComposioToolSet(api_key="your_composio_api_key")

# SlackとGmailのツール取得
tools = composio_toolset.get_tools(apps=["SLACK", "GMAIL"])

# LangChain Agentに組み込み
llm = ChatOpenAI(model="gpt-4o")
prompt = ChatPromptTemplate.from_messages([
    ("system", "あなたは業務効率化エージェントです。"),
    ("human", "{input}"),
    ("placeholder", "{agent_scratchpad}"),
])
agent = create_openai_tools_agent(llm, tools, prompt)
executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

result = executor.invoke({
    "input": "Slackの#generalチャンネルに本日のGmail未読件数を投稿してください"
})
print(result["output"])

CrewAI・AutoGenとの統合

CrewAI Agent との統合(composio-crewai使用)。

📚 公式リファレンス・出典



      

Need help moving from reading to rollout?

この記事を読んで導入イメージが固まってきた方へ

Uravationでは、AIエージェントの要件整理、PoC設計、社内導入、研修まで一気通貫で支援しています。

この記事をシェア

X Facebook LINE

※ 本記事の情報は2026年6月時点のものです。サービスの料金・仕様は変更される可能性があります。最新情報は各サービスの公式サイトをご確認ください。

関連記事