* 目次 [#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: 初版作成