AIエージェント階層PMシステムのGit基盤選択

投稿日: 2025年6月16日
カテゴリ: 技術選択, AIエージェント, Git
タグ: Forgejo, GitLab, AI, MCP, C4モデル


概要

C4モデルベースの階層AI PMシステム構築に向けて、Git基盤の技術選択を実施。当初GitLabを検討していたが、詳細な比較検討の結果、**Forgejo安定版**を採用することに決定した。本記事ではその選択過程と技術的根拠をまとめる。

プロジェクト背景

階層AI PMシステムとは

C4モデル(Context, Container, Component, Code)に基づく4階層のAI PMシステム:

各レベルのAI PMが適切なコンテキストを保持し、階層間で情報を圧縮・伝達することで、大規模プロジェクトの管理負荷を分散する。

Git基盤の重要性

Git基盤候補の比較

検討対象

  1. GitLab CE/EE
  2. Gitea
  3. Forgejo
  4. GitBucket?

基本性能比較

項目GitLabGiteaForgejoGitBucket?
容量5GB200MB150MB150MB
起動時間5-10分30秒20秒45秒
メモリ使用量2-4GB50-200MB40-150MB50-200MB
言語RubyGoGoJava/Scala
アーキテクチャモノリシック軽量軽量軽量

MCP対応状況

サーバーMCP対応対応状況
GitLab×未対応
Gitea公式gitea-mcp
Forgejo公式forgejo-mcp
GitBucket?非公式実装のみ

AIエージェント機能比較

*WebHook?・通知機能

機能GitLabGiteaForgejoGitBucket?
WebHook?イベント数30+20+20+12
リアルタイム通知×
WebSocket?対応×
高度フィルタリング×

*Web UI・コメント機能

機能GitLabGiteaForgejoGitBucket?
Word-level Diff×
範囲選択コメント×
下書きコメント×
API完全性

*図表・Markdown対応

機能GitLabGiteaForgejoGitBucket?
Mermaid図表
LaTeX数式
GitHub? Flavored Markdown

GitLabが重い理由

アーキテクチャの根本的違い

GitLab: モノリシック・全部入りシステム

GitLab = Git + CI/CD + Registry + Security + Analytics + 
         Project Management + Issue + Wiki + Container Registry + 
         Kubernetes + Monitoring + ...

Gitea/Forgejo: 軽量・特化システム

Gitea/Forgejo = Git + Issue + PR + CI/CD(軽量) + Wiki

技術スタック比較

技術要素GitLabGitea/Forgejo
言語Ruby on RailsGo
DB必須PostgreSQLSQLite可
Redis必須○ 必要× 不要
Sidekiq○ 必要× 不要
Elasticsearch○ 高機能用× 内蔵検索
デプロイ複数コンテナ単一バイナリ

Gitea vs Forgejo の違い

運営体制の違い

項目GiteaForgejo
運営主体Gitea Limited (営利企業)Codeberg e.V. (非営利団体)
設立2016年2022年10月 (フォーク)
商業化企業向けサービス展開完全非営利
意思決定企業主導コミュニティ主導

技術的差異

項目GiteaForgejo
容量200MB150MB (25%軽量化)
起動時間30秒20秒
テレメトリオプトアウト可完全なし
プライバシー基本的強化済み
Federation計画中ActivityPub?実装中

フォーク理由

Giteaへの懸念:

  1. 商業化への不安(Gitea Limited設立)
  2. 透明性の低下(企業内意思決定)
  3. プライバシー懸念(テレメトリ追加)

Forgejoの解決策:

  1. 完全非営利保証(ドイツ非営利法人格)
  2. プライバシーファースト(テレメトリ完全削除)
  3. 革新的機能(Federation・AI統合実験)

最終選択: Forgejo安定版

採用理由

*1. 軽量性

*2. セキュリティ・プライバシー

*3. AIエージェント最適化

*4. 将来性・持続可能性

技術スタック構成

階層AI PMシステム技術スタック:
├── Git基盤: Forgejo安定版
├── AI統合: MCP + Claude + forgejo-mcp  
├── 階層構造: C4モデル(Context→Container→Component→Code)
├── 記憶システム: Qdrant(ベクトル検索) + Neo4j(グラフDB)
├── コンテキスト圧縮: Atlas手法
└── 図表対応: Mermaid + LaTeX数式

セキュリティ考慮事項

AI開発環境のセキュリティ要件

  1. データ機密性: AI開発データ = 企業機密・知的財産
  2. 通信秘匿性: 階層PM間通信 = 戦略・技術情報
  3. 監査可能性: AI意思決定プロセスのトレーサビリティ

Forgejoの安全設計

# 完全プライベート設定例
DISABLE_TELEMETRY=true
OFFLINE_MODE=true  
DISABLE_GRAVATAR=true
DISABLE_FEDERATED_AVATAR=true
LOCAL_NETWORK_ALLOWLIST=192.168.0.0/16,10.0.0.0/8

実装準備

Docker起動コマンド

# セキュア設定でのForgejo起動
docker run -d \
  --name=forgejo-secure \
  -p 3000:3000 \
  -v /path/to/data:/data \
  -e DISABLE_TELEMETRY=true \
  -e OFFLINE_MODE=true \
  codeberg.org/forgejo/forgejo:stable

MCP設定

{
  "mcpServers": {
    "forgejo": {
      "command": "forgejo-mcp",
      "args": ["-t", "stdio", "--host", "http://localhost:3000"],
      "env": {
        "GITEA_ACCESS_TOKEN": "your_token"
      }
    }
  }
}

参考情報

発音

Forgejo: フォルゲヨ (for-GEH-yo)
語源: エスペラント語で「鍛冶屋」の意味

関連リンク

まとめ

AIエージェント階層PMシステム構築において、Git基盤としてFORGEJO安定版を選択した。軽量性・セキュリティ・AI統合機能・持続可能性のバランスが最適であり、C4モデルベースの階層構造システムに理想的な基盤となる。

当初検討していたGitLabと比較して、容量1/30・起動時間1/15という圧倒的な軽量性を実現しながら、AIエージェントに必要な機能をすべて備えている。

今後は、Forgejoをベースとした階層AI PMシステムの詳細実装を進めていく予定である。


関連記事:

更新履歴:

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS