ワークフロー型生成AIエージェント開発から得られた実践的知見生成AIは、入力された情報に対して取るべき対応を自然言語で指示できるため、プログラムによる画一的な処理とは異なり、より柔軟な業務実行が可能です。中でも、難度が高く複雑なタスクを高い精度で実行可能な「生成AIエージェント」が注目を集めています。現在、生成AIエージェントは、AIが自律的にタスクを計画・実行する「自律型」と、定義された手順に沿って処理を進める「ワークフロー型」に大別されます。本記事では、後者である「ワークフロー型」エージェントの開発から得られた知見に基づき、その実践的なアプローチについて解説します。始めに始まりは「単純なロジック化が困難で、従来のプログラムでは自動化できずに人手に頼らざるを得なかった業務を、生成AIの活用によって効率化したい」という案件の相談を受けたことでした。これに対し、まずはChatGPTに代表される一問一答形式のプロトタイプを開発しました。非常にシンプルなサンプルで検証したところ、期待以上の成果が得られたため、本格的な実装と検証をスタートさせます。しかし、判断基準や確認事項が複雑化するにつれて、この単純な形式では対応が困難であることが明らかになりました。この方向性では無理だと判断し、方針転換したのが「ワークフロー型」のアプローチです。このアプローチを採用することで、途中、幾つかの課題にぶつかったものの、最終的には目標とする精度を達成することに成功しました。このようにワークフロー型エージェントは、熟練した専門家でなければ対応できないような複雑な業務を、生成AIに代替させる可能性を秘めています。ワークフロー型エージェントとはワークフロー型とは、端的に言えば「業務プロセスを複数のタスクに分解し、それらを定められた順序や条件分岐に従って連結させ、一連の処理として生成AIに実行させる仕組み」です。例えば、社内規定に関する問い合わせ対応業務は、以下のようなワークフローで表現できます。これは、人間が問い合わせ対応業務を行う際に、無意識的に行っている思考プロセスを図式化したものと言えます。生成AIに対し、このプロセスと全く同じ手順でタスクを遂行するように設計するのが、ワークフロー型の基本的な考え方です。一方で、こうした詳細な手順を指定せず、包括的な指示のみを与えてAIに処理を委ねるのが「自律型」エージェントです。自律型は、与えられたゴール(例:社内規定に関する問い合わせに回答する)に対し、AI自らが実行計画の立案、タスクの分解・実行、達成度の評価を自律的に行います。ワークフロー型の利点|一つのタスクへの集中生成AIへの指示、すなわち「プロンプト」を設計する上での基本は、以下の4要素を明確に定義することです。指示・ゴール(何をするのか)背景・目的(何のためにするのか)出力形式(どのような形式で出力するのか)参照データ(作業に必要な情報)これらの要素が「明確」かつ「端的」であるほど、生成AIは指示者の意図を正確に汲み取り、期待されるパフォーマンスを発揮しやすくなります。これは人間に対する指示と同様であり、指示内容の曖昧さは、期待される成果を得る上での阻害要因となります。この原則を踏まえ、先の問い合わせ回答の例に立ち返ってみます。一連のプロセス(問い合わせ受付から回答まで)を単一のタスクとしてプロンプト化しようとすると、複数の目的や参照データが混在し、指示が複雑化・曖昧化してしまいます。具体的に文字にするとこのようになります。「社員からの問い合わせを受けたら、まずどの分類の問い合わせかを判定し、その分類の規定集を開き、問合せに該当する条項を探して、条項に記載された内容に従い適切な回答を作成して社員に返す」いかがでしょうか。これを基本4要素に当てはめようとすると、かなり無理があることに気づくと思います。そこで、以下のようにタスクを分割します。社員からの問い合わせ内容を分析し、問い合わせのカテゴリ(人事/総務)を判定する人事関連の問合せなら人事の規定集を開く総務関連の問合せなら総務の規定集を開く開いた規定集の中から問合せに該当する条項を探す条項に記載された内容を基に適切な回答文を作成する 改めてそれぞれをプロンプトの基本4要素に当てはめてみてください。今度は各ステップで生成AIが実行すべき内容が明確になったはずです。この整理により、生成AIは各タスクに集中でき、結果としてプロセス全体の精度が向上します。また、判断のブレが生じる要因を最小化できると同時に、問題が発生した際も、どのタスクでエラーが生じたのかを特定しやすくなるという利点もあります。これがワークフロー型の利点であると共に、フロー設計の基本原則となります。エージェントの「育成」お気づきの通り、このフロー設計のプロセスは、業務マニュアルや作業手順書を作成する行為に酷似しています。これこそが生成AIの大きな利点であり、これほどに注目されている理由でもあります。専門的なプログラミング知識や特定のツールを必要とせず、自然言語(日本語の文章)で動作を指示できることは、活用のハードルを大きく下げています。そして、この「ワークフローを通して生成AIに指示を与える」ことは、あたかも、新入社員に業務を教えるプロセスに似ています。新入社員の育成と同じく、一度で完璧に動作するエージェントを構築できることはほぼありません。少し間違えたとしても、プロンプトやワークフロー(すなわち業務マニュアル)を改善し、曖昧な指示を具体化し、次は上手くできるように導いてあげる。このような反復的な改善プロセスこそが、ワークフロー型生成AIエージェントの能力を最大限に引き出す鍵であり、私たちがこれを「育成」と表現する理由です。開発における注意点ワークフローとは少し逸れるものもありますが、本開発の過程で、生成AIアプリケーションを構築する上で留意すべき、いくつかの実践的な教訓が得られましたのでご紹介しておきます。文字列のコピー能力への過信は禁物プロンプトで入力した特定の文字列を、一字一句違わずにそのまま出力させようとしても、生成AIが正確に再現しないケースが見られました。これは、生成AIがテキストを確率的に「生成」するモデルであるという基本特性に起因するため、ある程度は許容する必要があります。特に、一般的な言語表現から外れた固有名詞や、企業独自の製品コードのような特殊な文字列の羅列、桁数の多い数値の扱いにおいて、この傾向は顕著になります。したがって、完全な正確性が求められる文字列の転記に関しては、生成AIに依存するのではなく、従来のプログラムによるロジックで処理することを推奨します。 入出力の文字列長(トークン数)の制約生成AIが一度に処理できるテキスト量には、「トークン」という単位に基づく上限が存在します。近年のモデルではこの上限が大幅に拡張されていますが、それでもなお「トークン制限」を常に意識し、入出力を必要最小限に抑える工夫が重要です。トークン制限を超えると処理が失敗するだけでなく、トークン数は処理速度や従量課金制の利用料金にも直接影響します。我々の開発では、1つのタスクで処理するトークン数が多すぎるケースが発生したため、これに対応するためにタスクを分解した、ということもありました。過度なタスク分割への注意これまでタスク分割の有効性を解説してきましたが、必ずしも細分化が最善の策とは限りません。タスクを細分化すればするほど、生成AIとの対話回数が増加し、結果として処理時間とコストの増大を招きます。したがって、求められる精度を達成できるのであれば、複数のステップを一つのタスクに統合することも、効率的なアプローチと言えます。最後に現在、ワークフロー型エージェントは、市販されているもの、OSSで提供されているものを含み、複数のノーコード/ローコードツールが公開されています。これらを利用することで、専門的な知識がなくとも比較的容易に構築・検証することが可能です。本記事を機に、まずは試用からでも、その可能性を体験されることを推奨いたします。JASTでは、このような生成AIの活用に関するご相談から、お客様の具体的なご要望に応じたシステムの設計・開発、カスタマイズまで、幅広く対応しております。ご興味をお持ちいただけましたら、どうぞお気軽にお問い合わせください。