coleam00/ottomator-agents
主な特徴
- 60以上の実装済みAIエージェント
- 複数プラットフォーム対応(n8n、Python、Voiceflow)
- 多様なLLMプロバイダーサポート
- RAG、知識グラフ、MCP統合
- Docker完全対応
- トークンベースの利用システム
- 豊富なテンプレートとサンプル
- WebSocket/SSE対応のリアルタイム処理
- Supabase/PostgreSQL統合
リポジトリ解析: coleam00/ottomator-agents
基本情報
- リポジトリ名: coleam00/ottomator-agents
- 主要言語: Python
- スター数: 2,951
- フォーク数: 1,133
- 最終更新: 活発に更新中
- ライセンス: MIT License
- トピックス: ai-agents, llm, openai, anthropic, n8n, pydantic-ai, mcp, rag
概要
一言で言うと
oTTomator Live Agent Studioは、様々なAIエージェントを作成、共有、実行できるオープンソースのエコシステムで、教育とコミュニティ駆動の開発を通じて最先端のAI技術を誰でも利用可能にすることを目的としています。
詳細説明
oTTomator Live Agent Studioは、AIエージェント開発のためのマーケットプレイスと教育プラットフォームを兼ねた革新的なシステムです。n8n、Python、Voiceflowなど複数のプラットフォームで構築された60以上のAIエージェントが含まれており、RAGシステム、知識グラフ、Web検索、ドキュメント処理、ソーシャルメディア管理など幅広い用途に対応しています。
すべてのエージェントはオープンソースで提供され、開発者は既存のエージェントから学び、独自のエージェントを構築できます。トークンベースの利用システムにより、商用利用も可能です。OpenAI、Anthropic、Ollama、Google Geminiなど主要なLLMプロバイダーをサポートし、柔軟な統合が可能です。
主な特徴
- 60以上の実装済みAIエージェント
- 複数プラットフォーム対応(n8n、Python、Voiceflow)
- 多様なLLMプロバイダーサポート
- RAG、知識グラフ、MCP統合
- Docker完全対応
- トークンベースの利用システム
- 豊富なテンプレートとサンプル
- WebSocket/SSE対応のリアルタイム処理
- Supabase/PostgreSQL統合
使用方法
インストール
前提条件
- Docker(推奨)またはPython 3.10+
- LLMプロバイダーのAPIキー
- データベース(Supabase推奨またはPostgreSQL)
- 環境変数設定
インストール手順
# 方法1: サンプルPythonエージェントから開始
cd ~sample-python-agent~
# Dockerビルド
docker build -t my-agent .
# 環境変数設定
cat > .env << 'EOF'
LLM_PROVIDER=openai
LLM_API_KEY=your-api-key
LLM_MODEL=gpt-4o-mini
DATABASE_URL=your-database-url
EOF
# コンテナ起動
docker run -p 8001:8001 --env-file .env my-agent
# 方法2: n8nエージェントのインポート
# 1. n8nインスタンスにアクセス
# 2. ワークフローメニューから「Import from File」
# 3. 対象のJSONファイル(例:Agent_Node_Sample_Agent.json)を選択
# 4. 必要な認証情報を設定
# 方法3: ローカル開発
pip install -r requirements.txt
python sample_supabase_agent.py
基本的な使い方
Hello World相当の例
# 最小限のエージェント実装
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
import os
app = FastAPI()
class AgentRequest(BaseModel):
query: str
user_id: str
request_id: str
session_id: str
class AgentResponse(BaseModel):
success: bool
output: str
@app.post("/agent")
async def run_agent(request: AgentRequest):
# トークン検証
auth = request.headers.get("Authorization")
if not auth or not validate_token(auth):
raise HTTPException(status_code=401)
# シンプルな応答
return AgentResponse(
success=True,
output=f"Hello! You asked: {request.query}"
)
実践的な使用例
# RAGエージェントの実装例
import asyncpg
from openai import AsyncOpenAI
from datetime import datetime
class RAGAgent:
def __init__(self):
self.openai = AsyncOpenAI(api_key=os.getenv("LLM_API_KEY"))
self.db_url = os.getenv("DATABASE_URL")
async def process_query(self, request: AgentRequest):
# コネクションプール作成
pool = await asyncpg.create_pool(self.db_url)
try:
# 会話履歴取得
history = await self.get_conversation_history(
pool, request.session_id
)
# ベクトル検索で関連文書取得
context = await self.search_documents(pool, request.query)
# LLMに問い合わせ
messages = self.build_messages(history, context, request.query)
response = await self.openai.chat.completions.create(
model="gpt-4o-mini",
messages=messages,
temperature=0.7
)
# 履歴保存
await self.save_message(
pool, request.session_id,
request.query, response.choices[0].message.content
)
return AgentResponse(
success=True,
output=response.choices[0].message.content
)
finally:
await pool.close()
高度な使い方
# MCPエージェントアーミー(複数エージェント統合)
from mcp import MCPClient
import json
class MCPAgentArmy:
def __init__(self):
self.agents = {
"slack": SlackMCPAgent(),
"github": GitHubMCPAgent(),
"airtable": AirtableMCPAgent(),
"todoist": TodoistMCPAgent()
}
async def delegate_task(self, task: str):
# タスクを分析して適切なエージェントを選択
selected_agents = self.analyze_task(task)
results = []
for agent_name in selected_agents:
agent = self.agents[agent_name]
result = await agent.execute(task)
results.append({
"agent": agent_name,
"result": result
})
# 結果を統合
return self.synthesize_results(results)
# ストリーミング対応エージェント
from fastapi.responses import StreamingResponse
import asyncio
@app.post("/agent/stream")
async def stream_agent(request: AgentRequest):
async def generate():
async for chunk in agent.process_streaming(request):
yield f"data: {json.dumps({'chunk': chunk})}\n\n"
await asyncio.sleep(0.01) # バックプレッシャー制御
yield "data: [DONE]\n\n"
return StreamingResponse(
generate(),
media_type="text/event-stream"
)
ドキュメント・リソース
公式ドキュメント
- README.md: プラットフォーム概要とエージェントリスト
- 各エージェントのREADME: 個別の実装詳細
- サンプルエージェント: テンプレートとベストプラクティス
サンプル・デモ
- ~sample-n8n-agent~: n8nワークフローテンプレート
- ~sample-python-agent~: FastAPI Pythonテンプレート
- base_python_docker: 基本Dockerイメージ
チュートリアル・ガイド
- エージェント作成ガイド
- LLMプロバイダー統合
- データベース設定
- デプロイメント手順
- トークンシステムの仕組み
技術的詳細
アーキテクチャ
全体構造
oTTomator Live Agent Studioは、複数のエージェントタイプをサポートする統一プラットフォーム。各エージェントは独立したマイクロサービスとして動作し、標準化されたインターフェースを通じて通信。
ディレクトリ構成
ottomator-agents/
├── base_python_docker/ # 基本Dockerイメージ
├── ~sample-n8n-agent~/ # n8nテンプレート
├── ~sample-python-agent~/ # Pythonテンプレート
├── agentic-rag-knowledge-graph/ # 高度なRAG実装
├── mcp-agent-army/ # MCPマルチエージェント
├── pydantic-ai-*/ # Pydantic AIエージェント群
├── crawl4AI-agent*/ # Web爬虫エージェント
├── n8n-*/ # n8nワークフローエージェント
└── [その他60+エージェント]
主要コンポーネント
-
認証レイヤー: Bearerトークン検証
- 場所: 各エージェントのミドルウェア
- 標準ヘッダー:
Authorization: Bearer <token>
-
データベース統合: 会話履歴管理
- Supabase(推奨)
- PostgreSQL(直接接続)
- ベクトル検索(pgvector)
-
LLM統合: プロバイダー抽象化
- 環境変数による設定
- 複数プロバイダー対応
- ストリーミング対応
技術スタック
コア技術
- 言語: Python 3.10+(主要)、JavaScript(n8n)
- フレームワーク:
- FastAPI(REST API)
- n8n(ワークフロー)
- Voiceflow(会話型)
- 主要ライブラリ:
- OpenAI SDK
- Anthropic SDK
- Pydantic(データ検証)
- asyncpg(DB接続)
開発・運用ツール
- ビルドツール: Docker(マルチステージビルド)
- データベース: Supabase、PostgreSQL、Neo4j
- ベクトルDB: pgvector、Pinecone
- デプロイ: Docker、Kubernetes対応
設計パターン・手法
- マイクロサービスアーキテクチャ: 各エージェントが独立
- プロバイダー抽象化: LLM切り替え可能
- 非同期処理: asyncio活用
- ストリーミング: SSE/WebSocket
データフロー・処理フロー
- クライアントリクエスト → エージェントAPI
- トークン認証 → リクエスト検証
- 会話履歴取得 → コンテキスト構築
- LLM処理 → レスポンス生成
- 履歴保存 → クライアント応答
API・インターフェース
公開API
標準エージェントAPI
- エンドポイント:
/agent
- メソッド: POST
- 認証: Bearer Token
- リクエスト:
{
"query": "ユーザーの質問",
"user_id": "user-123",
"request_id": "req-456",
"session_id": "session-789"
}
ストリーミングAPI
- エンドポイント:
/agent/stream
- メソッド: POST
- レスポンス: Server-Sent Events
設定・カスタマイズ
環境変数
# LLM設定
LLM_PROVIDER=openai
LLM_API_KEY=sk-...
LLM_MODEL=gpt-4o-mini
LLM_BASE_URL=https://api.openai.com/v1
# データベース
DATABASE_URL=postgresql://...
SUPABASE_URL=https://...
SUPABASE_KEY=...
# 認証
AGENT_SECRET_TOKEN=...
拡張・プラグイン開発
- カスタムツール追加
- 新LLMプロバイダー統合
- データソース接続
- UI/UXカスタマイズ
パフォーマンス・スケーラビリティ
パフォーマンス特性
- 非同期処理による高並行性
- ストリーミングレスポンス
- コネクションプーリング
- キャッシング戦略
スケーラビリティ
- 水平スケーリング対応
- ステートレス設計
- ロードバランシング対応
- キュー処理(長時間タスク)
制限事項
- トークン制限(プラットフォーム側)
- LLMレート制限
- データベース接続数
- メモリ使用量(大規模コンテキスト)
評価・所感
技術的評価
強み
- 豊富な実装例(60+エージェント)
- 複数プラットフォーム対応
- 活発なコミュニティ
- 包括的なLLM統合
- 実践的なテンプレート
- MITライセンス
改善の余地
- ドキュメントの統一性
- テストカバレッジ
- エラーハンドリングの標準化
- モニタリング機能
向いている用途
- AIエージェント開発の学習
- プロトタイピング
- 業務自動化
- カスタマーサポート
- コンテンツ生成
- データ分析・研究
向いていない用途
- 大規模エンタープライズ(そのまま)
- リアルタイムクリティカルシステム
- 高セキュリティ要件
- オフライン環境
総評
oTTomator Live Agent Studioは、AIエージェント開発における最も包括的なオープンソースエコシステムの一つです。60以上の実装例は、単なるサンプルコードを超えて、実際に動作する本格的なアプリケーションレベルのエージェントです。
特筆すべきは、多様性と実用性のバランスです。シンプルなチャットボットから、知識グラフを活用した高度なRAGシステム、マルチエージェント協調システムまで、現代のAI開発で必要とされるほぼすべてのパターンが網羅されています。
教育的価値も高く、各エージェントのコードは理解しやすく構造化されており、ベストプラクティスが自然に学べます。また、トークンベースの商用利用モデルにより、学習から実運用まで一貫したプラットフォームとして機能します。
2,951のスター数と1,133のフォーク数が示すように、コミュニティも活発で、継続的な改善と新機能の追加が期待できます。AI開発者にとって、学習リソースとしても、実用的な開発基盤としても、非常に価値の高いプロジェクトと評価できます。