先日は
今回の記事では、本書では触れられなかった
この
一方、最近の
このようなAIを賢く実現するには、人間の曖昧な指示から目的を推論したり、不定形なデータを処理したりするなどの高度な処理が必要です。そこには確かに自律エージェントの要素技術が応用されてはいますが、こうした特定の用途に特化したタイプのAIは
とはいえ、響きの良い言葉が本来の意味から離れ、流行りの技術に使われるのはよくある話です。一般のユーザーがAIに求めているのは汎用人工知能の実現ではなく、それぞれが直面する個別の問題解決であることの表れなのかもしれません。
本記事では、主に
AIエージェントを開発するツール
現在、さまざまな
こうした
しかし今では、GUI上でノーコードやローコードでAIエージェントを作れるツールやサービスがどんどんリリースされています。代表的なものを以下に挙げます。
- OpenAI GPTs
- Google Cloud: Vertex AI Agent Builder
- Microsoft Copilot Studio
- IBM watsonx Orchestrate
- Dify.
AI
こうしたAIエージェント開発ツールは大きく2種類のアプローチに分かれます。
- RAGベース
- ワークフローベース
それぞれのアプローチについて見ていきましょう。
RAGベースのAIエージェント開発アプローチ
RAG
RAGベースのAIエージェントを作成するツールとして最も代表的なのがOpenAI GPTsです
RAGはコンテキストの候補となるデータがあれば構築できるため、データを蓄積するタイプのアプリケーションと好相性です。GoogleのNotebookLMは、GoogleドライブやGoogleドキュメントを前提としたRAGベースのAIエージェントツールと考えることができます。また手前味噌ながら筆者の属するサイボウズでも、クラウドアプリ開発サービスのkintoneにRAGベースのAIエージェント作成ツールを準備しています。
RAGベースのAIエージェントビルダーがあれば、様々な知識に特化したAIエージェントを作れますから、多くの要望に答えられそうです。しかし、AIエージェントへの要望は知識だけではありません。高まるAIへの期待に応えられるような、自由度の高いAIエージェント開発ツールがワークフローベースのアプローチになります。
シナリオベースのチャットボット開発
ここでワークフローベースのAIエージェント開発ツールについて解説したいところですが、その位置づけを理解するために、まずはシナリオベースのチャットボット開発について説明しておきます。
LLMが登場する以前、カスタマーサポートなどで利用されていたチャットボットの多くは、シナリオベースのチャットボットビルダーを使って構築されていました。チャットボットビルダーとは、プログラミング知識の少ない人でもローコード
例えば、オンラインショッピングで注文状況を確認するチャットボットをシナリオベースで開発する場合、以下のような会話が想定されます。チャットボットビルダーでは、このような会話シナリオをフローチャート形式で記述することでチャットボットを構築できます。
- ユーザー:
「注文状況を知りたい」 - チャットボット:
「注文番号を教えてください」 - ユーザー:
「1234567890です」 - チャットボット:
「注文番号1234567890の配達状況は 『出荷準備中』 です。配達予定日は12月3日です」
ユーザーがこのシナリオに常に完全に沿ってくれればいいですが、
この例からも、シナリオベースのチャットボットは特定の問い合わせや手順が明確なサポート業務に適していますが、ユーザーの質問や表現が少しでも異なると対応できなくなるなど、柔軟性に乏しいという問題があることがわかります。
ワークフローベースのAIエージェント開発アプローチ
ワークフローベースのAIエージェント開発ツールは、イメージとしてはシナリオベースのチャットボット開発ツールの部品にLLMを追加したものになります。ワークフローベースでは、一般にRAGも部品の1つとして搭載されており、機能的にはRAGベースの上位互換になります。
LLMの搭載により自然な応答文を生成できるだけでなく、シナリオの分岐などの判断をLLMに任せられるようになり、チャットボットの汎用性が大きく高まりました。これまでなら表記揺れや省略に対応するために記述していた膨大なホワイトリストやルールもLLMに任せられるようになりました。また、すでにシナリオベースのチャットボット開発ツールを提供していたサービサーは以下のように、LLMの部品を追加するだけでそうした価値を提供できます。
ワークフローベースのAIエージェント開発ツールの多くはノーコードやローコードを謳っているものの、実際には、プログラミングを完全に避けるよりも、プログラミングにある程度頼ったほうがワークフローがシンプルになって構築しやすいです。これはAIエージェントの開発ノウハウがまだまだ整備中であることも大きな要因の1つと考えられます。今後レシピやベストプラクティスが整っていき、開発ツールもそれにあわせて拡張されれば解消されていくのかもしれません。しかし一般に、人間の要望もどこまでも大きくなっていくため、開発ツールの自由度を超えてしまう……ということにもなりそうです。
ところで、RAGベースでもそれなりのカスタムAIを構築することは十分可能なのに、ワークフローベースのような高い自由度があってもしょうがないのではないか、という疑問を持つ人もいるかもしれません。AIエージェントがどの程度の自由度を必要かを示す好例として、2024年の東京都知事選に出馬された安野たかひろ氏の質疑応答システム
「AIあんの」
この
AIエージェントに現在/今後求められる機能
AIエージェントはLLM技術によって大きく発展しましたが、現場で直接的に強く求められる技術であるからこそ、今後もかなり速いペースでさらなる発展を遂げることが予想されます。今後のAIエージェントに必須とされるであろう機能として、以下の3つが考えられます。
- ガードレール
- ハルシネーション対策
- 推論
(Reasoning)
ガードレール
ガードレールとは、プロンプトインジェクション
例えば差別やアダルト系などの質問や回答を抑制するには、OpenAIのModeration API
しかし例えば自社製品に関するサポートAIを公開した場合に、全く関係ないサービスや、自社にない製品に関する質問に間違って答えてしまうケースを抑制するにはそうした出来合いのフィルタでは間に合わないので、自前のガードレールを作成する必要があります。簡単にはLLMに
また、複数のLLMに回答を生成させるときに、異なるペルソナを割り当てるようなプロンプトにしたり、そもそものLLMのモデルを変更したり
やはりワークフローベースの強みは、こうした工夫を非専門家であっても試行錯誤しながら実現できる可能性がある点になるでしょう。
ハルシネーション対策
ハルシネーションはAIが誤った情報や論理を返す現象です
ハルシネーションの対策や検出はさまざまに研究されていますが、現在の技術でできるハルシネーション対策の一例として、回答を複数回生成して、それらの回答間に矛盾がないかを確認するというアプローチがあります。実はハルシネーションが起きるときは、同じプロンプトであっても生成される回答が毎回異なる
LLMによる推論(Reasoning)
そしてAIエージェントの発展の要素技術として、もう一つの大きなポイントはLLMによる推論
現在のAIエージェントでも
また2024年9月にリリースされたOpenAI o1は、LLMに推論を行わせ、その出力をまたLLMに入力して推論を繰り返させることで、ユーザーの目的や解くべきタスクを自律的に推測させて、論理的な回答の精度を大きく高めました。
LLMによる推論は当初から活用されていますが、従来はChatGPTのようなチャットAIが生成する回答文の中で推論を促していたのに対し、AIエージェントでは回答の裏側で推論を行わせて、その過程は必ずしも表に出てこない点が異なります。それはつまり、LLMによる推論を活用して賢くなるほど、回答の表示が始まるまでに時間がかかるようになるということです。
インターネットに代表されるIT技術のほとんどは速くて正確であることがとても重要視されてきましたが、ChatGPTはある程度以上に賢ければ遅くて正確でなくても良いという価値観の転換を起こしました。ただ遅いとは言っても、回答の表示はすぐ始まってましたから、読む速度以上で表示されれば待ち時間をあまり意識せずに済みました。
LLMによる推論を活用するには、
他にも、LLMによる推論を超高速化するという力技な解決方法もあります。Groq社のLPU
まとめ
AIエージェント