GitHub Copilotの試行第二弾として、Visual Studio CodeのAgentモードでの開発を試してみた。
開発したプロダクト
自宅の全館空調システム (エアコン) を制御するためのシステムを開発した。MicroPython (Raspberry Pi Pico 2Wを想定) 上で動くエアコン制御用のアプリケーションと、温度設定を変更するためのWebアプリケーションの構成となっている。
Agent活用方針
まずは素のモデルでどこまでできるかを見るために、AGENTS.mdやSKILL.mdなしで開発を行った。極力1回の指示で進められるように、ある程度まとまった単位で要件整理してインプットしている。
また、必要に応じて通信仕様書等の参考文書をコンテキストに追加している。
プロンプト例(実際に使用したプロンプトとは異なる)
下記の要求に従ってアプリケーションを実装してください。
機能要求
- 下記のエアコンの動作設定を表示・変更するWebアプリケーション
- 動作モード:停止、自動定常、自動セーブのいずれか
- …
- 部屋は下記の8つ
- リビング
- …
実装要求
技術スタック
- Next.js
- Server Action
- Tailwind CSS
インフラ
- Cloudflare Workersにデプロイする。
- ストレージにはCloudflare Workers KVを利用する。
その他
- ファイルを適切に分割して、コードの保守性を高めること。
- 必要に応じてリファクタリングをすること。
感想など
- AGENTS.mdなしでもおおむね期待通りの動きをした。細かい実装ルール等は毎回プロンプトに入れるのが面倒なので、AGENTS.mdは少しずつでも記述をしていけると良い。
- デザインはかなり簡易的なものとなっている。一度ブラッシュアップを試みたが、あまり納得の行く結果は得られず、画像でデザインを指示したり、SKILL.mdを活用して改善したい。
- 実装の一部にUDPでの通信(ECHONET Lite)を行う処理があったが、PDFの仕様書をコンテキストに入れることで、ワンショットでほぼ完璧なクライアントを実装できた。自分で実装していたらMicroPythonでどう実装するか調べるところからスタートであったので、かなりの時間を節約できた。
- 同様に、Cloudflare(wranglerコマンド)も全く使った経験はなかったが、ほぼAgent任せでデプロイまで実行できている。
- クライアント(MicroPython)アプリケーションは、E2EテストやPC上でMicroPythonのランタイムを用意できていない(単体テストでは通常のPythonを利用している)問題がある。このため、適切な検証条件を与えられず、自力での動作確認・デバックに時間がかかった。