* 目次 [#j259c683]
#contents

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

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

----

**概要 [#m19b1c15]

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

**プロジェクト背景 [#a0bb9278]

***階層AI PMシステムとは [#c232c623]

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

- Level 1 PM (Context): システム全体の戦略管理
- Level 2 PM (Container): システム間連携・技術選択
- Level 3 PM (Component): 機能要件・チーム調整  
- Level 4 Developer (Code): 実装・テスト

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

***Git基盤の重要性 [#l0af3803]

- MCP (Model Context Protocol) 対応必須
- WebHook・リアルタイム通知 でAI間連携
- 軽量・高速 でリソース効率化
- セキュリティ・プライバシー 重視

**Git基盤候補の比較 [#k787bd6a]

***検討対象 [#c0093d1e]

+GitLab CE/EE
+Gitea  
+Forgejo
+GitBucket

***基本性能比較 [#gc308a50]

|項目|GitLab|Gitea|Forgejo|GitBucket|h
|容量|5GB|200MB|COLOR(red):150MB|150MB|
|起動時間|5-10分|30秒|COLOR(red):20秒|45秒|
|メモリ使用量|2-4GB|50-200MB|COLOR(red):40-150MB|50-200MB|
|言語|Ruby|Go|COLOR(red):Go|Java/Scala|
|アーキテクチャ|モノリシック|軽量|COLOR(red):軽量|軽量|

***MCP対応状況 [#m0daec53]

|サーバー|MCP対応|対応状況|h
|GitLab|×|未対応|
|Gitea|○|公式gitea-mcp|
|Forgejo|COLOR(red):○|COLOR(red):公式forgejo-mcp|
|GitBucket|△|非公式実装のみ|

***AIエージェント機能比較 [#r00e4c47]

****WebHook・通知機能 [#w650bda8]

|機能|GitLab|Gitea|Forgejo|GitBucket|h
|WebHookイベント数|30+|20+|COLOR(red):20+|12|
|リアルタイム通知|○|○|COLOR(red):○|×|
|WebSocket対応|○|○|COLOR(red):○|×|
|高度フィルタリング|○|○|COLOR(red):○|×|

****Web UI・コメント機能 [#t16fb7fc]

|機能|GitLab|Gitea|Forgejo|GitBucket|h
|Word-level Diff|○|○|COLOR(red):○|×|
|範囲選択コメント|○|○|COLOR(red):○|×|
|下書きコメント|○|○|COLOR(red):○|×|
|API完全性|○|○|COLOR(red):○|△|

****図表・Markdown対応 [#c3463c1a]

|機能|GitLab|Gitea|Forgejo|GitBucket|h
|Mermaid図表|○|○|COLOR(red):○|△|
|LaTeX数式|○|○|COLOR(red):○|△|
|GitHub Flavored Markdown|○|○|COLOR(red):○|○|

**GitLabが重い理由 [#aff686ef]

***アーキテクチャの根本的違い [#uf06b621]

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

***技術スタック比較 [#xa30be0c]

|技術要素|GitLab|Gitea/Forgejo|h
|言語|Ruby on Rails|COLOR(red):Go|
|DB必須|PostgreSQL|COLOR(red):SQLite可|
|Redis必須|○ 必要|× 不要|
|Sidekiq|○ 必要|× 不要|
|Elasticsearch|○ 高機能用|× 内蔵検索|
|デプロイ|複数コンテナ|COLOR(red):単一バイナリ|

**Gitea vs Forgejo の違い [#x1c8ddb0]

***運営体制の違い [#m1dcc808]

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

***技術的差異 [#h5954fb2]

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

***フォーク理由 [#c1a29417]

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

Forgejoの解決策:
+完全非営利保証(ドイツ非営利法人格)
+プライバシーファースト(テレメトリ完全削除)
+革新的機能(Federation・AI統合実験)

**最終選択: Forgejo安定版 [#k93b8fe4]

***採用理由 [#p7f0b120]

****1. 軽量性 [#ic4dc7b2]
- 150MB: GitLabの1/30、Giteaより25%軽量化
- 20秒起動: GitLabの1/15〜1/30
- 低メモリ: 40-150MB使用

****2. セキュリティ・プライバシー [#m271d478]
- テレメトリ完全なし: データ漏洩リスクゼロ
- 外部通信最小限: 完全プライベート運用可能
- 迅速セキュリティ修正: コミュニティ主導の透明対応

****3. AIエージェント最適化 [#jdc3beb8]
- MCP完全対応: 階層AI PMシステム必須機能
- 豊富WebHook: 20+イベント + 高度フィルタリング
- リアルタイム通知: WebSocket内蔵
- API完全性: AI統合向け詳細API

****4. 将来性・持続可能性 [#x5b91f1a]
- 非営利保証: 商業化リスクなし
- コミュニティ主導: 透明性・持続性
- 革新的機能: Federation・AI統合実験
- オープンソース: ベンダーロックインなし

***技術スタック構成 [#y50e55cc]

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

**セキュリティ考慮事項 [#a45bf683]

***AI開発環境のセキュリティ要件 [#zbd10688]

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

***Forgejoの安全設計 [#c1295d5f]

 # 完全プライベート設定例
 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

**実装準備 [#ec81b961]

***Docker起動コマンド [#df614094]

 # セキュア設定での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設定 [#i541de2f]

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

**参考情報 [#x2bc58c0]

***発音 [#v16a4b29]
Forgejo: フォルゲヨ (for-GEH-yo)~
語源: エスペラント語で「鍛冶屋」の意味

***関連リンク [#t799e1ae]
- [[Forgejo公式サイト>https://forgejo.org/]]
- [[Codeberg (Forgejo運営)>https://codeberg.org/]]
- [[forgejo-mcp GitHub>https://github.com/goern/forgejo-mcp]]
- [[Model Context Protocol>https://modelcontextprotocol.io/]]

**まとめ [#yf915ae8]

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

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

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

----

関連記事:
- [[C4モデルによる階層AI PMシステム設計]]
- [[MCPを活用したAIエージェント統合]]
- [[コンテキスト圧縮とAtlas手法の実装]]

更新履歴:
- 2025-06-16: 初版作成
トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS