Intrect-io/OpenSwarm

OpenSwarm — Autonomous AI dev team orchestrator powered by Claude Code CLI. Discord control, Linear integration, cognitive memory.

OpenSwarm – AI搭載のCI/CDゲート

概要 – OpenSwarmは、プルリクエストやローカルのdiffに対して、大規模言語モデルによるレビューを導入するコマンドラインツール(およびGitHub Action)です。以下のことが可能です:

  • レビュー:OpenAI、OpenRouter、Claude、またはローカルホストのモデルを使用してコード変更をレビューします。
  • 修正:隔離されたサンドボックス内で確認された問題を修正し、結果を再レビューします。
  • 検証:マージを許可する前に、決定論的な検証(テストや型チェックの実行)を行います。
  • 知識の保持:リポジトリごとに知識を保持し、後の実行でより良いプロンプトが得られるようにします。
  • オプションでLinearと連携して課題を追跡し、Discord/Slack/Telegramに通知を送信します。

重要性 – 従来のCIは静的チェックのみを実行しますが、OpenSwarmはエージェント的なステップを追加します。これにより、変更を理解し、修正を提案・適用し、決定論的な検証が成功した場合にのみゲートを通過させます。手動のコードレビューサイクルを減らし、早期にバグを発見することを目指しています。また、実装には安価なモデル、診断には最先端モデルをルーティングすることでコストを低く抑えます。


コアコンセプト

コンセプト 説明
Provider LLMバックエンド(Codex/GPT, OpenRouter, Claude, ローカルのOllama/LM Studio, Atlas Cloud)。認証の自動検出やログインウィザードの実行が可能です。
Task backend 課題のメタデータをローカルのSQLite DBまたはLinear (OAuth) に保存します。
Sandbox Linuxサンドボックス (bubblewrap) またはmacOSサンドボックスにより、モデルが生成したコードを適用前に隔離します。
Deterministic verification リポジトリ全体のテストや型チェック(Node, Python, Rust, Goなど)をサンドボックス内で実行し、マージベースと比較して新たな障害が導入されていないことを確認します。
Daemon リポジトリのメモリ、Linear統合、通知を維持するオプションの常駐サービス。基本的なレビューゲートには不要です。

クイックスタート (CLI)

# グローバルインストール
npm install -g @intrect/openswarm

# 現在のdiffをレビュー(読み取り専用、変更なし)
openswarm review --path . --read-only

# 完全自動修正フロー:レビュー → 修正 → 再レビュー → 検証
openswarm review --max --fix --path .
  • openswarm init は、.env、config.yaml、およびオプションの openswarm.json(Linearマッピング)を作成する対話型ウィザードを実行します。
  • openswarm doctor は、プロバイダー、サンドボックス、依存関係が準備できているかを確認します。

CIでの使用 (GitHub Action)

steps:
  - uses: actions/checkout@v4
    with: { fetch-depth: 0 }
  - uses: actions/setup-node@v4
    with: { node-version: '22' }
  - id: review
    uses: unohee/OpenSwarm@main
    with:
      adapter: openrouter          # 使用するプロバイダー
      model: deepseek/deepseek-v4-flash
    env:
      OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
  • このアクションは decision と gate-ran の出力を返し、0(パス)または 1(拒否)で終了します。終了コード 2 は、ゲートが実行できなかった(例:クォータ超過)ことを示します。

主要コマンド (概要)

コマンド 目的
openswarm (デフォルト) モデルとのアドホックな会話のためのTUIチャットインターフェース。
openswarm review … diffに対してCIゲートを実行。--max はリポジトリ全体を監査、--fix はサンドボックス化された修正を適用。
openswarm fix … 言語固有のCIチェック(lint, testなど)を実行し、失敗を自動修正。
openswarm pr … オープンなプルリクエストと対話(ステータス、修正、レビュー、作成、マージ準備完了までの監視)。
openswarm exec … 単一のタスクまたはLinear課題パイプラインを実行(必要に応じて人間の承認を待機)。
openswarm check … コードベースをスキャンし、エンティティを登録、"bad-code-smell"パターンを検出、関数を注釈付け。
openswarm provider … アクティブなLLMプロバイダーの切り替えまたは表示。
openswarm doctor 環境、不足している依存関係、プロバイダー認証、サンドボックスの可用性を診断。

サンドボックスとセキュリティに関する注意

  • 読み取り専用モード (--read-only) がデフォルトです。モデルのツールセット内の変更ツールをすべて無効にします。
  • Linuxでは bubblewrap を使用します。CIランナーは bubblewrap をインストールし、非特権ユーザー名前空間を有効にする必要があります (sysctl kernel.apparmor_restrict_unprivileged_userns=0)。
  • レビュアーは一時的なチェックアウト上で実行され、ランナーの作業ディレクトリでは実行されないため、悪意のあるPRがアクション自身のコードを上書きするのを防ぎます。

ライセンスとコミュニティ

  • ライセンス: MIT
  • スポンサー: Atlas Cloud (組み込みの atlascloud アダプターとAPIクレジットを提供)。
  • ディスカッション: GitHub Discussionsは、ロードマップの投票や機能のアイデアに使用されます。
  • ベンチマーク: SWE-bench Liteハイブリッドモードで3/3の成功を主張し、コスト意識の高いルーティングラダー (L0–L6) を備えています。

OpenSwarmを検討すべき場合

  • すでにコード支援にLLMを使用しており、CIでのレビュー/修正ループを自動化したい場合。
  • 自動修正後にリポジトリのテストが成功した場合にのみ通過する決定論的なゲートが必要な場合。
  • OpenAI/OpenRouter/ClaudeのAPIキーの設定や、ローカルモデルサーバーの実行に抵抗がない場合。
  • オプションのLinear課題追跡や通知チャンネルが必要な場合。

制限事項 / 注意点

  • Linux上で動作するサンドボックス (bubblewrap) が必要です。CIイメージには追加のsysctl調整が必要な場合があります。
  • コスト意識の高いルーティングはプロバイダーの価格設定に依存します。すべての実行に最先端モデルを使用すると高額になる可能性があります。
  • デーモン(長期メモリ、Linear同期、通知用)はオプションですが、運用上の複雑さが増します。
  • このツールはTypeScript/Nodeで書かれています。Nodeを使用していないプロジェクトでも動作する可能性がありますが、テスト検出のための適切なアダプターが必要です。

結論 – OpenSwarmは、LLMがコード変更を自動的にレビュー、修正、検証できるようにする本格的なオープンソースのAI拡張CI/CDゲートです。サンドボックス実行環境を備え、Linearや通知サービスとのオプション統合も可能です。プルリクエストのワークフローにLLM駆動の自動化を組み込みつつ、決定論的な安全網を維持したいチームに適しています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト