Antigravity システムアーキテクチャ・連携まとめ

DiscordVPS、ローカルPC(Antigravity)、Obsidian を連携させた自動化パイプラインの全体像と現在実装されている仕組みのまとめです。(2026年2月21日現在)

全体アーキテクチャ図

graph TD
    A[Discord] -->|メッセージ送信| B(VPS Hub: キューサーバー)
    B -.->|定期取得 Pull| C[Local Runner: poller.py]
    subgraph ローカルPC環境
        C -->|JSON保存| D(C:\\ai_work\\queue\\inbox)
        C -->|WebSocket送信: 8123番| E[ws_server.py]
        E -->|内部注入| F(Antigravity IDE: workbench.js)
        F -->|自律作業実行| G{作業完了}
    end
    G -->|結果・ログ生成| H[Result Aggregator / Importer]
    H -->|Markdown出力| I[(Obsidian Vault)]

各ツールの役割と実装済みの仕組み

1. Discord(指示の入り口)

  • 役割: ユーザーがスマホや外出先からでも、思いついたタスクを投げるためのUI。
  • 実装済みの仕組み:
    • Discordのチャットに書き込んだ内容をBotが拾い、VPS上のサーバー(Hub)へ転送する。
    • 作業の進捗(「受信しました」「IDEに注入しました」などのログ)を、Discordの特定チャンネル(例:#ai-log)に通知するWebhook連携。

2. VPS Hub(中継&キュー管理)

  • 役割: DiscordとローカルPC(Antigravity)が常時接続していなくても指示を取りこぼさないための、一時保管サーバー(郵便局)。
  • 実装済みの仕組み:
    • Discordから指示を受け取ってキューに溜め込み、ローカルPCからの「新しい指示はあるか?」という問い合わせ(/pull API)に対して指示を渡す。

3. Antigravity(作業の実行者)

  • 役割: 受け取った指示を元に、実際にコーディングやブラウザ操作などの自律エージェント作業を行うコアエンジン。
  • 実装済みの仕組み:
    • Local Runner (poller.py): VPSに定期的に問い合わせに行き、新着指示を取ってくるスクリプト。
    • JSON保存: 取得した指示を失わないよう、一旦 C:\ai_work\queue\inbox に保存する。
    • WebSocketバックドア: IDEの根幹ファイル([[workbench.js]])に、「ポート8123番でWebSocket通信を待ち受け、受信した指示をIDEのチャット入力欄に自動入力・Enter押下する」バックドアを埋め込み。これにより、外部から安定かつ瞬時に指示を叩き込めるようになっている(CDP依存からの脱却)。

4. Obsidian(知識・結果のデータベース)

  • 役割: Antigravityが完了した作業の報告書、作成したマニュアル、AIが抽出したログ・日記などを保存する最終目的地(Second Brain)。
  • 実装済みの仕組み:
    • Antigravityの作業結果や各種スクリプトが生成したMarkdownファイルを、直接ObsidianVault内(例: 02_Practical05_diary などの指定ディレクトリ)へ自動保存するインポーター機能(vault_importer.py 等による監視と移動)。