AIエージェントにJavaを書かせていたら、Instructionsが「やるな」だらけになった

どうもTORAです。

仕事で、AIエージェントにJavaのコードを書かせています。

当然、そのまま好き勝手に書かせているわけではなくて、プロジェクトで決めている実装ルールをInstructionsに書いて、それを読ませた上で作らせています。

最初は僕も、Instructionsって「こういうふうに作ってください」っていうことを書くものだと思ってたんですよね。

この場合はこのクラスを使うとか、こういう処理はここに書くとか、ログはこう出すとか。

要は、AIにやってほしいことを書く。

でも実際に何回も作らせていると、だんだんそれだけじゃ足りなくなってきました。

「これは使わない」とか、「これはここに書かない」とか、「このやり方は禁止」とか。

気づいたら、「やってほしいこと」より「やるな」の方が増えてきたんですよね。

目次

動くんですよ、普通に

たとえば、こっちでは使わないことにしているやり方をAIが普通に使ってくることがありました。

トランザクションを僕らが置いてほしくないところに付けたり、SQLでSELECT *を書いたり、ログもこっちでは使わない出し方をしたり。

で、これがややこしいんですけど、別に全部が間違ってるわけじゃないんですよ。

動くんですよ、普通に。

Javaとして見れば、それでも別におかしくない。

ただ、僕らはそのやり方を選んでない。

システム開発って、同じことをやるにしても方法はいくつもあるじゃないですか。

AIはその方法をものすごくたくさん知っている。でも、その中で「このプロジェクトではこれにした」というところまでは、こっちが書かないと分からない。

ここは実際に使ってみて、結構大きいなと思いました。

書いてあるのに、そっち真似すんの

それで、AIが違うやり方をしてきたらInstructionsを直していきました。

最初はまだ、「この場合はこちらを使ってください」みたいに書いてたんです。

でも、それでも違う方を使うことがある。

あと、これはちょっと面白かったんですけど、Instructionsにはちゃんと書いてあるのに、近くに違う書き方をした既存コードがあると、そっちを真似することがありました。

「そっち真似すんの」と思って。

まあ人間でも、既存コードがあったら普通に参考にするので、考えてみれば分からなくもないんですけどね。

なので途中から、

「こっちを使う」

だけじゃなくて、

「こっちは使わない。代わりにこっちを使う」

まで書くようになりました。

それと、禁止だけ書いてもダメで、なぜそうしているのかとか、代わりにどうするのかも書く。

そこまで書くと、だいぶ言うことを聞くようになりました。

書いてなかったこっちも悪い

で、こういうことをずっとやってると、別のことにも気づいたんですよね。

AI向けに細かく書いたInstructionsって、人が読んでも普通に分かりやすいんです。

今までの開発ルールって、結構「まあこれは分かるよね」で済ませてるところがある。

経験ある人なら分かるし、既存コードを見れば察しもつく。でも経験が浅い人には分からないこともある。

AIはその辺を普通に踏んでくる。

だから「ああ、これ書いてなかったこっちも悪いな」ってなることが結構ありました。

今は、Instructionsって最初から完璧に作るものではないと思っています。

AIに作らせて、変なことをしたら人が見つけて、なんでそうしたのか考えて、必要ならInstructionsに戻す。

そんな感じで増えていきました。

最初は「何をやってほしいか」を書いていたはずなんですけどね。

今はむしろ、「何をやってほしくないか」の方を先に考えるようになっています。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

40代、IT業界20年弱。システム開発の仕事をしています。AIや開発、仕事やキャリアの話を中心に、ギター、音楽、革靴、デニム、腕時計など趣味のことも書きます。

目次