Skip to main content
Glama

マルチエージェント開発自動化システム — エージェント型CI/CDパイプライン

FastAPI、Claude搭載エージェント、Model Context Protocol (MCP) を使用した自動化されたエージェント型CI/CDパイプラインで、GitHubのプルリクエストを自動分析し、ユニットテストを実行し、ファイルをリントします。

プロジェクトアーキテクチャ

devagent/
├── agents/             # Claude-powered agents
│   ├── base_agent.py      # Base agent with tool execution loop
│   ├── reviewer_agent.py  # Reviewer agent parsing PR diffs
│   └── prompts.py         # System prompts
├── app/                # FastAPI application
│   ├── api/routes/        # API endpoints (health)
│   ├── services/          # Claude integration service
│   ├── config.py          # Settings and environment config
│   └── main.py            # FastAPI main entrypoint
├── mcp_server/         # MCP Server
│   ├── server.py          # MCPServer registration and endpoints
│   └── tools/             # MCP tools (fetch_pr_diff, lint, run_tests, search)
├── tests/              # Test suite (pytest)
│   ├── test_agents.py
│   ├── test_health.py
│   └── test_mcp_tools.py
├── .env.example        # Environment template
├── .gitignore          # Git ignore files
└── requirements.txt    # Python dependencies

Related MCP server: code-review-mcp-server

機能とMCPツール

  • BaseAgent: ツール呼び出しループを実行し、Anthropic API (Claude 3.5 Sonnet) を使用してコードベース情報を再帰的に収集します。

  • ReviewerAgent: PRの差分に対してコードレビューを実行し、正確性のバグ、セキュリティ脆弱性、コード品質の問題を探します。

  • MCPツール:

    • fetch_pr_diff: GitHub PRの変更ファイルとパッチを取得します。

    • search_codebase: パターンまたはテキスト検索を使用してローカルファイルを検索します。

    • run_tests: 対象リポジトリ内でpytestを使用してユニットテストを実行します。

    • lint_code: 対象ファイルに対してRuffリンターを実行します。

インストールとセットアップ

  1. リポジトリをクローンします(GitHubにプッシュした後)。

  2. 仮想環境を作成してアクティブ化します:

    python -m venv .venv
    # Windows:
    .venv\Scripts\activate
    # Linux/macOS:
    source .venv/bin/activate
  3. 依存関係をインストールします:

    pip install -r requirements.txt
  4. 環境変数を設定します: テンプレートから.envファイルを作成し、キーを入力します:

    cp .env.example .env

    ANTHROPIC_API_KEYと、必要に応じてGITHUB_TOKENを追加します。

プロジェクトの実行

FastAPIアプリの実行

uvicorn app.main:app --reload

APIドキュメントにはhttp://localhost:8000/docsでアクセスできます。

MCPサーバーの実行

MCPサーバーを直接実行するには:

python mcp_server/server.py

テストの実行

すべてのテストを実行してシステムが動作することを確認するには:

python -m pytest

Related MCP Connectors

Related MCP Servers