コンテンツにスキップ

Remote SWE Agents

Remote SWE Agents は、AI による自律型のソフトウェア開発エージェントの実装例です。このエージェントは専用の開発環境内で動作し、ユーザーの PC を拘束することなく開発作業を行います。

AWS 上でセルフホスト型OSSソリューションとして提供され、Devin、OpenAI Codex、Google Jules などのクラウドベースの非同期コーディングエージェントと同様のエクスペリエンスを実現します。

主な機能

  • 完全自律型のソフトウェア開発エージェント - AI を活用した開発ワークフロー自動化
  • Web ベース管理インターフェース - セッション管理とリアルタイムモニタリングのための Next.js ウェブアプリ
  • 包括的な API - プログラムによる統合とセッション制御のための RESTful エンドポイント
  • AWS サーバーレスサービスによる稼働 - メンテナンスコストを最小限に抑制
  • システムを使用しない間は固定費用なし
  • 効率的なトークン使用量 - プロンプトキャッシュとミドルアウト戦略による最適化

パラメーター

  • NotificationEmailAddress
    • デプロイの開始・終了を通知するメールアドレスです。このアドレスは初期ウェブアプリユーザーとしても設定されます。
  • GitHubAccessTokenValue
    • GitHub の個人アクセストークン(PAT)で、エージェントが GitHub リポジトリにアクセスするために使用します。
    • 作成方法:GitHub Personal Access Tokenの作成
    • 必要なスコープ:repo, workflow, read:org
  • TargetEnv (デフォルト: Prod)
    • 環境名の設定です。複数の環境をデプロイしたい場合は、この値を環境ごとにユニークな値に設定してください。
  • AllowedIpV4AddressRanges
    • ウェブアプリにアクセス可能な IPv4 CIDR 範囲をカンマ区切りで指定します。
  • AllowedIpV6AddressRanges
    • ウェブアプリにアクセス可能な IPv6 CIDR 範囲をカンマ区切りで指定します。
  • WorkerAdditionalPolicies
    • ワーカーインスタンスに追加で付与する IAM マネージドポリシーをカンマ区切りで指定します。

前提条件

  • AWS アカウント
  • GitHub アカウント

デプロイ後の使用方法

デプロイ完了後、通知メールに記載された URL からウェブアプリにアクセスできます。初期ユーザー情報も同じメールアドレス宛に送信されます。

ウェブアプリでは以下の操作が可能です:

  • エージェントセッションの作成と管理
  • GitHub リポジトリとの連携
  • リアルタイムのエージェント活動モニタリング

Slack 連携のセットアップ(オプショナル)

Slack からエージェントと対話するための連携設定:

  1. Slack Bolt App の設定: 通知メールに記載された API エンドポイントを使用して Slack Bolt App を設定します。詳細な設定方法はソリューションの README.md を参照してください。

  2. SSM パラメーターの更新: Slack アプリ作成後、以下の SSM パラメーターをアプリの認証情報で更新します:

  3. 設定の再デプロイ: CodeBuild コンソール から RemoteSweDeployment プロジェクトの新しいビルドを開始して Slack 設定を適用します。

デプロイが完了すると、Slack アプリにメンションしてエージェントと直接やり取りできるようになります。

コスト

Remote SWE Agents は、使用量に応じた従量課金モデルです。使用しない間のコストはほぼゼロで、セッション実行中のみ課金されます。使用されるリソースには EC2 インスタンス、EBS ボリューム、Bedrock API コールなどが含まれます。

architecture

追加リソース

その他の詳細は、ソリューションのREADME.mdをご覧ください。