見出し画像

AIエージェントにプログラミングをさせるとラクになれるのか?

はじめに

最近「AIエージェント」という言葉が流行り出していると感じております。「AIエージェント」とは何か?については前回の記事を参照ください。

前回の記事では、AIエージェント=自分の仕事を肩代わりさせるための「代理人」と整理しました。そのような仕事の一つとして、ここでは「プログラミング」に注目します。今回は

AIエージェントにプログラミングをさせると我々はラクができるのか?

について、考えていきます。


「AIエージェント」にプログラミングをさせる仕事は増える(はず)

私自身、将来的には「AIにプログラミングさせる」という働き方は今よりもっと増えてくるとは考えています。これは2年前にも似たようなことを考えていました。その時の記事は以下にあります。

ただ、現時点でAIに「丸投げ」ができるとも思っておりません。たとえば、プログラミング一つをとっても、AIに「もっといいコードを書け」と指示した結果、バグを埋め込む可能性が高まるという実験結果が示されています。

以下のグラフは、「もっといいコードを書いて」と伝えた場合にどれほどコード実行速度が向上したのかを表したもので、左が通常のプロンプトのみを使った場合、右がシステムプロンプトを併用した場合です。緑色の棒は正しいコードが出力されたことを示しており、赤色の棒はバグのあるコードが出力されたことを示しています。全体的に見ると、より良いコードを書くように促すと実行速度が向上するものの、バグがあるコードを生成するリスクも高まることがわかります。

AIに「もっといいコードを書いて」と繰り返し要求するとコードの実行速度は向上するがバグが増えるという報告 - GIGAZINE https://gigazine.net/news/20250106-llm-write-better-code-bugs/
「よいコード」とは何か?
(https://gigazine.net/news/20250106-llm-write-better-code-bugs/ より引用)

これは一つの実験ではありますが、これを見る限り、少なくとも現時点ではプロンプトに「よいコード書いといて」と頼むだけで事足りる世界にはなっていないことがわかります。

そもそも「良いプログラム」とは?

今回のテーマは、AIエージェントにプログラミングをさせるとラクができるかどうか? です。ここで重要なのは「ラクかどうか」ですが、人間側がラクをするためには、AI側に「良いプログラム」に書いてもらう必要がありそうです。では、そもそも「良いプログラム」とは何でしょうか?

プログラムの良し悪しは、「プログラムに求めること」の達成度が高いものと規定できそうですが、ここで

「プログラムに求めること」は、その時の状況によって大きく変わる

ということに気をつける必要があります。場合によっては処理速度の速さかもしれませんし、状況によっては保守性の高さかもしれません。それはユーザが求めている状況から決まりますが、大事なことは

唯一無二の軸などない

ということです。

上に示したAIに、「もっといいコード」を書かせる実験では、何度も指示を与えることによって

いつの間にか「良いところ」が入れ替わって

しまいました。また、この出力はどのモデルを使うかによっても変わってくることがわかっています。

私は、ChatGPTに「何か面白いゲームのコードを書いてほしい」と依頼することがよくある。ゲームの種類を具体的に指定するのではなく、ChatGPTが面白いと考えているゲームをつくってもらうのだ。本当に面白いゲームが一発で出てくることはまずないが、対話を通して改良していくことでそこそこ遊べるゲームが出来上がることもある。
いろいろ試してみて分かったのは、ChatGPTで利用するLLMによって挙動がかなり異なることだ。標準的な「GPT-4o」を選択した場合、割と面白い発想のゲームを生成してくれることがある。ただし、コードの品質は低い。そのままでは動かないことのほうが多い。
(中略)
一方、ChatGPTでLLMを「o1」に切り替えると、ゲーム自体はかなりつまらなくなる。プログラミングの解説用に書かれたサンプルゲームのような無味乾燥な内容になることが多い。例えていえば、間違いを恐れるあまり発想がガチガチに固まってしまった人のようだ。
それと引き換えにコードの品質は向上し、そのまま動くことが増える。o1が生成するコードであれば、一部の業務には利用できるかもしれない。

生成AIがぶち壊すプログラミングの「奥が深い症候群」、真のコード民主化が実現 | 日経クロステック(xTECH) 
https://xtech.nikkei.com/atcl/nxt/column/18/00682/011500175/

これは「同じプロンプトで同じ出力が得られるとは限らない」という生成AIならではの特性も加えて考えると、必ずしもAIエージェントに「良いプログラム」を書かせるのは簡単ではなさそうだということがわかります。

おわりに ~ 「良いプログラム」の定義が難しい

今回はAIエージェントにプログラミングをさせるとラクができるかどうかについて考えてきました。

ただ、結局のところ、AIエージェントにプログラミングをさせるとラクができるわけではなさそうです。その理由は

AIエージェントが書いたプログラムが「良いもの」かどうかがわからない

からで、その理由は

そもそも「良いプログラム」は一意に定義できるわけではないから

と言えそうです。

とはいえ、プログラミングにAIエージェントを使って生産性を上げたい場面は今後ますます増えていくと思われます。次回以降は、そのような場合には、何に意識を向ければよいかについて書いていこうと考えています。

(つづく)

いいなと思ったら応援しよう!

#ヒデ @hideh_hash_845
課金してくれるととても嬉しいです。シェアしてもらっても嬉しいです。「いいね」も嬉しいですし、フォローも嬉しいです。要するに、どんなことでも嬉しいです。

この記事が参加している募集