技術記事に戻る

Antigravityの使い方とsql機能付きの表計算アプリを作らせてみた

PythonAntigravityAIプロンプトエンジニアリング

Antigravityの使い方とsql機能付きの表計算アプリを作らせてみた

最近話題のAIコーディングアシスタント「Antigravity」を用いて、独自のアプリ開発に挑戦しました。本記事では、Antigravityの基本的な使い方から、実際にアプリを作らせてみて判明したAI駆動開発のリアルな課題について解説と検証を行います。

Antigravity(アンチグラビティ)とは?

Antigravity(アンチグラビティ)とは、自然言語による指示に基づいてソフトウェア開発プロセス全体を自律的に実行・支援する次世代のAIコーディングエージェントです。文字列の部分的な生成に留まる従来のAIアシスタントとは異なり、実装計画の策定、ソースコードの作成・編集、テストの実行までを統合的に処理します。AI駆動開発(AI-Driven Development)の中核を担い、エンジニアやクリエイターの生産性を劇的に向上させる革新的なツールとして注目を集めています。

Antigravityの基本的な使い方

Antigravityは、複数のファイルを横断して複雑なタスクを自律的にこなす強力なAIエージェントです。 作りたいものの仕様や要件を自然言語で伝えるだけで、AIが自律的に計画とコード作成を行います。対話を通じた要件の追加やフォルダ単位でのリファクタリングもでき、開発スピードを劇的に向上させます。

インストールはこちらからできます。 https://antigravity.google/?hl=ja

実践:SQL機能付きの表計算アプリの開発

Antigravityの実力を試すため、「SQLが使える表計算ソフト」の開発を依頼しました。完成したリポジトリは以下にて公開しています。

SQLSheet (GitHub)

開発にあたり、私が作成したプロンプトをそのまま引用します。


目的: Excel を超える「SQL 機能付き表計算ソフト」を Python で開発する。 重い処理は C++ 拡張で最適化できる構造を残す。

搭載する機能:

  • xlsx / xls / csv / sql ファイルを読み書きできる
  • 標準的な表計算ソフトの機能を実装(セル編集、数式、コピー、貼り付けなど)
  • CSV 読み込み時、デフォルトで先頭ゼロを消さない
  • 計算式で SQL を利用できる(例: =sql("select * from テーブル名"))
  • 任意のセル範囲に名前を付け、その名前を SQL のテーブルとして参照できる
  • SQL 実行結果をセルに展開できる -シート及び名前を付けたセル範囲の比較機能を実装。比較方法は同じ位置のセルを比較する位置指定とキー指定(列や合成キー)で比較する機能を標準で実装

成果物: 以下の順で出力すること:

  1. README.md(仕様書・使用手順)
  2. プロジェクトフォルダ構造
  3. main.py / app.py / ui.py の完全なコード
  4. 必要な依存関係一覧(requirements.txt 形式)
  5. C++ 拡張を追加できるようにするための拡張ポイントの説明

UI 要件:

  • 最小構成のデスクトップアプリ
  • セル編集
  • SQL 入力欄
  • SQL 実行ボタン
  • 結果表示テーブル

技術要件:

  • Python(PySide6 または Tkinter など GUI フレームワークは AI が最適と判断して選択)
  • SQL エンジンは SQLite を使用
  • C++ 拡張を追加できるように、処理分離された構造にする

検証方法:

  • 表計算ソフト上で 3×3 のセル範囲に名前を付ける
  • 別セルで =sql("select * from 名前を付けた範囲") を実行し、結果が表示されること

開発プロセス: 計画 → 実装 → テスト → 修正 → 再検証 の 5 段階で進めること。 テストが失敗した場合は、原因分析レポートを Artifacts として提示し、修正版コードを提案する。

制約: -仕様書は日本語で作成をお願いします。

  • 不要なファイルや過剰な構造を作らず、最小構成で開始する
  • ファイル間の整合性を保つこと

開発結果と「AIへの指示出し」の難しさ

コードの実行結果は、与えた指示の明確さによって明白に分かれました。

具体的な指示を出した「特定のセル範囲をSQLで参照する」や「計算式でSQLを使える機能」などは見事に実装できました。

下図のようにセル範囲に名前を付けて、SQLで参照することが可能です。 SQLSheetで選択した範囲にSQLで利用するテーブル名を付ける 計算式に[=sql("select * from waza w inner join person p on w.person_ID=p.ID")]と入力すると、personテーブルとwazaテーブルからsqlで取得できることを確認しました。
=sql("select * from waza  w inner  join person p on  w.person_ID=p.ID")でpersonテーブルとwazaテーブルからsqlで取得できることを確認

しかし、見ての通り機能不足なUIで、プロンプトの「Excel を超える」や「標準的な表計算ソフトの機能を実装」といった曖昧な指示については実装できず、結果として実用に耐える表計算アプリは作れませんでした。

原因とAI駆動開発のコツ

失敗の原因はひとえに「仕様の粒度が足りないから」です。 AIは「標準的な機能」といった暗黙の前提を人間のように察してはくれません。AI駆動開発する際にはプロンプトを工夫し、システム設計書のレベルで具体的な動作体系を言語化する必要があります。AIの能力を限界まで引き出すためには、私たち人間の明確な指示が不可欠と感じました。

使い方の具体例

Antigravityは様々な開発シーンで柔軟に活用できます。以下はその代表的な例です。

  • ゼロからの新規アプリ開発: 今回の表計算アプリのように、要件を伝えてプロトタイプの構築から動作検証までを短時間で一気に進めることができます。
  • 既存プロジェクトへの機能追加: 既存のコードを読み込ませ、特定画面の機能拡張や外部API連携を自律的に組み込ませることができます。
  • リファクタリングとテスト作成: 複雑化したコードベースを整理させたり、不足しているテストコードを自動で記述させることができます。

Antigravityの魅力

Antigravity最大の魅力は、「単一のコード生成」を超えた「自律的なエージェント能力」にあります。人間がファイルを作ってコードをコピー&ペーストするのではなく、AI自身がディレクトリ構造を把握し、ファイルの新規作成・編集、ターミナルでのコマンド実行までを代行します。これにより、開発者は手を動かすコーディングから解放され、「設計」と「AIのディレクション」に専念できるのが大きな醍醐味です。

メリット・デメリット

【メリット】

  • 圧倒的な開発スピード: 環境構築や定型処理の記述など、時間のかかる作業を即座に完了できます。
  • 自律的なエラー解決: テスト等でエラーが起きても自らエラーログを読み取り、修正案を適用して再検証する力を備えています。
  • 対話ベースの柔軟さ: チャット形式でいつでも手軽に機能変更やUIの微調整を試せます。

【デメリット】

  • プロンプト(指示)への強い依存: 本記事の事例のように「いい感じに」や「標準的な機能」といった曖昧な指示では、期待通りの品質になりません。
  • コードのブラックボックス化: 複数のファイルを横断して高速でコードが書き換えられるため、開発者自身が全体のロジックや意図を管理・把握しきれなくなるリスクがあります。

以上、Antigravityの紹介と使ってみたの感想でした。