結論:本記事では「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使用)。
📚 公式リファレンス・出典
