最近、Antigravityというツールを使って開発を進めています。
試行錯誤の毎日ですが、現在は同じプロジェクト内で「計画用のチャット」と「実装用のチャット」を分けて進行してみることにしました。 役割を明確に分けることで、少しでもスムーズに進んでくれればという期待からです。
今回は、私が普段AIに指示を出す際に気をつけていることと、 それでも直面してしまう壁、そして今後の対策について、少し書き留めておこうと思います。
AIに指示を出す際に気をつけていること
計画用のチャットでは、まず「絶対にコーディングさせない」ように、最初にきつく指示を出しています。 いきなり手を動かすのではなく、まずは設計図を作ることに専念してもらうためです。
その際、セキュリティに配慮したアーキテクチャにすることはもちろんですが、 必ずWEBで最新の動向やトレンドを収集し、新しい手法を取り入れるようにお願いしています。
ただ、「WEBで調べて」と伝えるだけでは、AIは自己判断ですぐに検索をサボろうとします。 手持ちの知識だけで適当に答えようとするので、 「自分の中にある知識だけで答えようとしないで」と、念押しするようにしています。
いざ実装に入るときも、全てを一気に作らせることはしません。 機能ごとに、着実に段階を踏んで実装してもらいます。
また、エラーが起きた際に対応できるよう、 自己テストと自己修復のループが回せるように、あらかじめエージェントとしっかり相談してルールを決めています。
それでも訪れる「無限修正編」の疲労
これだけ事前準備をして、慎重に進めているつもりなのですが。 結局のところ、うまく動かなかったり、何度も何度も修正が必要になったりして、非常に疲れます。
段階を踏んで実装してもらっていても、一度AIが迷走を始めると厄介です。
何度修正を依頼しても、一発で直ることは少なく、いわゆる「無限修正編」に突入してしまいます。 ひどい時には、普通に動いていたはずの部分までお試しで修正し始め、 コード全体がぐちゃぐちゃになってしまうことも珍しくありません。
直すたびに別の場所が壊れていくのを見ていると、思わずため息が出ます。
今後、迷走を防ぐために試そうと思っていること
このままでは身が持たないので、いくつかやり方を変えてみようと考えています。
まず、コードの設計そのものの見直しです。 機能ごとにフォルダを分けるなどして、AIにとっても私にとっても、 「どこを修正すべきコードなのか」がわかりやすい設計にしておけば、少しはマシになるかもしれません。
次に、バックアップの徹底です。 1つの段階をクリアするごとに必ずバックアップを取り、 AIが暴走してコードがぐちゃぐちゃになったときに、すぐに元の状態に戻せるようにします。 基本中の基本ですが、これが一番確実な防衛策のような気がしてきました。
また、エラーの原因を追及しやすくするための仕組みづくりも必要です。 どこで、どのようなエラーが発生しているかを辿れるように、ログ出力をしっかりしておけば、 修正すべきポイントの予想がつきやすくなるはずです。
最後に、これは私自身の課題ですが、 ブラウザで操作するシステムを作る場合は、ブラウザの検証機能をしっかり使えるようになる必要性を感じています。 エラーの原因がどこにあるのか、自分でも当たりをつけられるように、少し勉強しておこうと思います。
おわりに
AIは非常に便利ですが、完全に任せきりにできる魔法の杖ではないようです。 ツールを使いこなすための環境づくりや、こちら側の歩み寄りも必要なのだと痛感する日々です。
焦らず、少しずつ改善を重ねていこうと思います。 また何か進展があれば、ここに書くことにします。