2025年2月13日木曜日

AIエージェントとは

みなさんこんにちは。横井です。

先日投稿した「AIコーディングの現在地点」はご覧いただけましたでしょうか。ここ二か月ほど、さまざまなAI関連のコーディングに取り組んできましたが、その過程で少し見えてきたことがあるため、本日はそのお話をしたいと思います。

現在、多くの場面で「エージェント」という言葉、あるいは機能が注目されています。ChatGPTに代表される一連のチャットインターフェースの次のステップとして、AIエージェントと呼ばれる存在が、今後私たちのインターフェースになり、実際の仕事もAIエージェントがこなしていくという流れがあるように思います。では、何をもってAIエージェントと呼ぶのでしょうか。

まず大前提として、LLM(大規模言語モデル)はコンテキストが広い、抽象的な問い合わせや指示に対しては、曖昧な答えを返したりいわゆる「ハルシネーション(幻覚)」と呼ばれる想定外の回答を行ったりする特性があります。決して“馬鹿”なのではなく、LLMの特性として不足している情報は勝手に(気を利かせて?)補填していってしまうのです。従ってLLMの特性を理解したうえでうまく活用することが重要です。

思った通りの答えを得るためには、指示出しの範囲をできるだけ小さくし、コンテキストを絞ること、さらに実現方法や手順を明確に示すことによって、アウトプットの精度が向上します。これが、LLMを“賢く”使うための基本的な考え方だと言えるでしょう。

チャットインターフェースのように、ある程度自由度の高い入力ができる場合は対応しやすいかもしれません。しかし、アプリケーションのように、あらかじめ定められた処理を行う場面では、LLMをいかに使うかを考えながら、スコープが限定的なプロンプトを事前に用意しておく必要があります。具体的には、アプリを使う人の役割やシチュエーションによって、複数の小さなプロンプト群を部品のように用意しておき、それぞれを上手に組み合わせて使うのです。これらの小さな“アシスタント”を統合して、どの順番で実行するか、どのように次のインプットに引き継ぐかを制御するしくみを「フロー制御」と呼びます。世の中にはすでにフロー制御のサービスが存在しています。

しかし、あらかじめ定義された条件分岐に従って進むだけでは“エージェント”というよりは通常のプログラムでしかありません。AIエージェントととはどんなものになるのか? と考えると、与えられたシチュエーションや処理の結果をもとに、次に何をするか?どのツールを使うか?といった判断そのものをAIが自律的に行う点に特徴があると思います。もちろん、それはその精度をどこまで高められるかが、実際に役立つエージェントとして機能するかどうかの分かれ道になりそうです。

このようなAIエージェントの機能は、すでに少しずつ世の中に出てきています。私が利用しているVS Codeのプラグイン「Cline」や「RooCode」なども、そうした機能を備えつつあります。現在では「PLAN」「ACTION」、「Architect」「Ask」「Code」といった目的別のLLMプロバイダやモデル設定、それらに対するカスタムインストラクションの設定ができるツールになっており、利用者はシチュエーションに応じてモードを切り替えながら、最適な回答を得ようとしています。

また、別の観点としては、先日書いた記事にもあるように、モード切り替えを使わなくても、ゴールを定義し、ゴール達成の手段を定義し、手段実現の段取りを定義し、それらをToDoリストに落とし込んで実行状態や進捗を管理できれば、モード切り替えなしでもエージェント的に振る舞わせることは十分に可能です。

ここまでご紹介したように、AIエージェントは今後の大きなトレンドであり、LLMの特性を理解しつつ、いかに活用するかがカギとなっています。

では。

0 件のコメント:

コメントを投稿