coleam00/ottomator-agents

⭐ 2,951 🍴 1,133 Python📄 MIT License GitHubで見る →

主な特徴

  • 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

データフロー・処理フロー

  1. クライアントリクエスト → エージェントAPI
  2. トークン認証 → リクエスト検証
  3. 会話履歴取得 → コンテキスト構築
  4. LLM処理 → レスポンス生成
  5. 履歴保存 → クライアント応答

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開発者にとって、学習リソースとしても、実用的な開発基盤としても、非常に価値の高いプロジェクトと評価できます。