コラム 「RPAの気になる話」

WinActorで生成AI連携  ~シナリオひな型作成機能におけるプロンプト検証の実例と比較まとめ~【連載第二弾】

2025.07.23

WinActor ver7.5から追加された、WinActorの生成AIを使ったシナリオひな形生成機能について、3回にわたって連載コラムでお届けしております。
「生成AIへの入力プロンプトの書き方を工夫して理想に近いシナリオを生成したい」と考えている方は是非ご覧ください。
連載コラム
第1回. WinActor ver7.5の生成AI連携機能でシナリオ作成してみた
第2回. プロンプトを2パターン試してみた(今回)
第3回. プロンプトを再実行してみた結果とこれまでのまとめ

はじめに

第2回では、1で試した入力プロンプト(以下、基本プロンプトと記載)を簡易化したり構造化したりすることでシナリオの精度に影響があるかどうか確認し、シナリオ生成における生成AI利用の考慮すべき点を考察していきます。

尚、本記事では基本プロンプトの記述内容を簡易化したものを、簡易プロンプト、構造化したものを、構造プロンプトと表記します。

モデルは基本プロンプトと同じGPT-4o miniを使用しています。

簡易プロンプト試行観点(費用とシナリオの質)

シナリオ生成には生成AIの利用料が発生します。出来る事なら利用料を抑えつつ、イメージに近いシナリオを生成したいものです。プロンプトの文字数を減らすことで使用トークン数が減り、費用削減につながる可能性があります。プロンプトの情報が不足すると、生成されるシナリオの質にも影響が出ることが考えられます。簡易プロンプトによるシナリオを基本プロンプト版と比較しながら、費用と結果のバランスを考慮して利用する際の留意点を確認していきます。

構造プロンプト試行観点(シナリオの質とプロンプト記述の注意点/工夫)

本機能で生成するシナリオを求める精度に近づけるため、入力プロンプトの工夫に悩む人も多いのではないでしょうか。、プロンプトを構造化すると指示が明確になり、生成AIの理解を助け、より一貫性のある出力を得やすくなります。WinActorのシナリオ生成においても同様かどうか、今回は構造プロンプトによるシナリオを基に確認していきます。

確認に際しては、基本プロンプトによるシナリオに見られた改善箇所、具体的には部品やプロパティ設定の一貫性の無さや不適切な箇所(同類操作の部品間でプロパティの設定にバラツキが生じた点や、意図した部品が生成されなかった点など)に着目します。プロンプトの書き方の注意点や工夫についても考察したいと思います。

各パターンのプロンプト実行の結果

以降は、簡易プロンプトと構造プロンプトそれぞれの実行結果を基本プロンプトと比較し、結果について気になった点をピックアップして説明します。

簡易プロンプト

プロンプト

シナリオと同じフォルダにあるExcelファイル「経費申請データ.xlsx」を開く。
Edgeブラウザを起動し、経費精算システムの画面を開く。
ExcelファイルのA列からH列の値を取得して経費精算システムに入力する。
取得した往復の値が〇の場合、経費精算システムの「往復」欄にチェックを入れる。
「交通機関」欄は、取得した値と同じラジオボタンを選択する。
追加ボタンをクリックして明細を追加し、全ての追加が完了したら、申請ボタンをクリックする。

生成されたシナリオ画像

【処理概要①】Excelを開いて、経費精算システムのページを表示する

クリックして見る

 

【処理概要②】経費精算システムへ入力するデータをExcelから取得する(繰り返し処理:前半)

クリックして見る

 

【処理概要③】Excelから取得した値を基に経費精算システムの各入力欄を操作し、明細を追加する。全ての明細の追加が完了するまで繰り返す。(繰り返し処理:後半)

クリックして見る

※基本プロンプト版では生成された、Excelから取得した値をシステムの各項目へ入力する処理は生成されなかった。

 

【処理概要④】申請ボタンをクリックし、Excelとブラウザを閉じシナリオを終了する。

クリックして見る

生成されたシナリオの結果のまとめ

プロンプトの記述内容を簡易化したにもかかわらず、料金の大幅削減にはつながりませんでした。一方、処理に関しては主要な機能の一部が欠落しました。

処理の変化 ◆主要な機能の一部が欠落した

✓ 経費精算システムの各項目に入力する処理(値の設定)が追加されていない。

基本プロンプト版シナリオ

簡易プロンプト版シナリオ

料金の変化 ◆プロンプトの記述内容を簡易化した結果について、文字数の減少幅に対して、トークン数及び料金の大幅な削減には至らなかった。

✓ 基本プロンプトと簡易プロンプトの文字数と料金の増減を比較したところ文字数は36%減、料金は18%減にとどまった。
尚、料金の削減は出力(シナリオ生成)のトークン数が減った事によるもので、入力(業務手順を示すプロンプト)のトークン数の影響ではない。
詳しくは下表をご覧ください。

料金比較表

基本プロンプト 簡易プロンプト 結果
文字数 340文字 217文字 36%減
123文字
料金
(見積ベース)
合計:0.11円
合計:0.09円
入力:0.768(トークン数)*0.0226円(/1000トークン) ≒ 0.02円
出力:0.759(トークン数)*0.0906円(/1000トークン) ≒ 0.07円
18%減
0.02円
トークン 合計:1,819トークン 合計:1,527トークン
内訳
Processed Prompt Tokens(入力トークン数):768
Generated Completion Tokens(出力トークン数):759
19%減
△292円

※1000トークン当たりの単価は、2025年4月時点の料金計算ツールに基づいています。
料金計算ツール | Microsoft Azure

構造プロンプト

プロンプト

以下の#フローと#条件を基に、シナリオを生成する
#フロー

  • Excelファイルを開く。
  • ブラウザを起動し、経費精算システムの画面を開く。
  • Excelファイルの各列の値を取得し、経費精算システムの各欄に入力もしくは選択する。
  • 追加ボタンをクリックして明細を追加する。
  • 全ての明細の追加が完了したら、申請ボタンをクリックする。
  • Excelファイルを保存しないで閉じる。

#条件

  • 使用するExcelファイル:シナリオと同じフォルダにある「経費申請データ.xlsx」
  • Excelファイルのレイアウト:1行目はタイトル、2行目以降はデータが記載されている
  • A列【使用日】、B列【金額】、C列【往復】、D列【交通機関】、E列【区間From】、F列【区間To】、G列【訪問先】、H列【摘要】
  • Excelファイルのデータ数だけ明細の追加を繰り返す
  • ブラウザはEdgeを使用する
  • 経費精算システムの選択において「往復」欄は、C列【往復】が〇の場合チェックボックスにチェックを入れる
  • 経費精算システムの選択において「交通機関」欄は、D列【交通機関】の値と同じラジオボタンを選択する

生成されたシナリオ画像

処理概要①】Excelを開いて、経費精算システムのページを表示する。

クリックして見る

【処理概要②】経費精算システムへ入力するデータをExcelから取得する。(繰り返し処理:前半)

クリックして見る

【処理概要③】取得した値を経費精算システムの各項目へ入力し、明細を追加する
全ての明細の追加が完了するまで繰り返す。(繰り返し処理:後半)

クリックして見る

【処理概要④】申請ボタンをクリックし、Excelとブラウザを閉じシナリオを終了する。

クリックして見る

生成されたシナリオの結果まとめ

プロンプトの記述内容を構造化しても改善されなかった箇所が見られました。
また、プロンプト記述における注意点や工夫の観点も得られました。

構造化しても改善しなかった箇所 ◆構造化に伴いプロンプトの記述内容で「#フロー」と区別して「#条件」を明示したが、 基本プロンプトのシナリオと同様の改善箇所が見られた。

✓ 「18_Excel関連」の同類操作の部品の間で、同じプロパティ設定項目の設定状態にバラツキがある点は改善せず

例①ファイル名が設定されている

例②ファイル名が設定されていない

✓ プロンプトの「#条件」に「ブラウザはEdgeを使用する」旨を記述したが、プロパティ設定項目「ブラウザ名」や「ブラウザ種類」は設定されず。

クリックしてみる

プロンプトの書き方の注意点や工夫 ◆広義に解釈される言葉はできるだけ避け、実際の動作そのものを表す用語を使って、プロンプトを記述する。

✓ 様々に解釈し得る曖昧な言葉で記述された箇所は、適切でない部品で生成された。

    • 構造プロンプトで「選択において」という記述を含めた「往復」欄の操作は、「リスト選択」の部品が生成された。一方で、「選択において」という記述が含まれない基本プロンプトにおいては、適切な部品「クリック」が生成された。
    • 基本プロンプトと構造プロンプトいずれも「選択する」という表現で操作内容を記述した「交通機関」欄の操作は、「リスト選択」の部品が生成された。

[結果について]
「選択する」という言葉はアイテムを選ぶ行為全般を指すため、クリック操作を「選択する」と表現してしまうケースも起こり得る。
しかし、生成AIは「選択」に含意されるクリック操作を理解できず、言葉の直接的な意味を基に「リスト選択」を生成したと推測される。
このことから、画面操作説明の文脈においては、様々に解釈し得る曖昧な言葉ではなく、「ドロップボックスからリスト選択する」や「チェックボックスをマウス左クリックする」といったように、実際の動作そのものを表現するよう意識すると、具体的で分かりやすい指示となり、シナリオに適切な部品が生成される可能性が高まると考えられる。

プロンプトはこちら

構造プロンプト版シナリオ(往復欄)

構造プロンプト版シナリオ(交通機関欄)

必要最低限の部品を生成させる可能性を高めるには、対象業務のインプットとアウトプットに関する情報(操作対象や形式の詳細)をプロンプトの記述内容に含める。

✓ アウトプット対象(システム画面の入力項目)の情報が欠落した箇所は、シナリオ内で該当処理が不足した。
システム画面の入力先の項目名を示さなかった操作は、入力用の部品が一部(※使用日・金額)しか追加されなかった。

プロンプトはこちら

✓ インプットの形式(Excelファイルの表形式のフォーマット)に関する情報が充実した箇所は、データ構造を考慮した処理/設定が追加された。

例① 読み込み行のカウントアップと解釈できる処理が見られる。
繰り返しグループ内の一連の処理の最後に追加された部品のプロパティ項目に「値⇒」の設定値として「2, 行数+1」が設定されていた。「2, 行数+1」について、「行数」はデータの読み込み開始行を格納する変数を、「2」は「行数」の初期値を示しており、「行数+1」はExcelの次のデータ行を読み込むための行カウントアップ処理を表していると解釈できる。
生成AIがシナリオ内にカウントアップ処理を追加しようとした可能性がある。
※「2, 行数+1」は「Excel操作(値の設定)」に設定されており、使われている部品自体は行カウントアップとして適切なものではない。

構造プロンプト版シナリオ

例② 読み込み対象のセル位置指定と解釈できる設定が見られる。
Excelファイルのセル値を取得する部品「Excel操作(値の取得)」のプロパティ設定項目「セル位置」に「2, A」や「2, B」のような値が設定された。
A1形式ではないため解釈に無理があるという指摘もあろうが、「2, A」は「列Aの2行目」のようにセル番地を表していると推測することもできる。

基本プロンプト版シナリオ

構造プロンプト版シナリオ

トークン数 合計:1,950トークン

内訳
Processed Prompt Tokens(入力トークン数):996
Generated Completion Tokens(出力トークン数):954

料金(見積ベース) 合計:0.11円

内訳
入力:0.996(トークン数)*0.0226円(/1000トークン) ≒ 0.02円
出力:0.954(トークン数)*0.0906円(/1000トークン) ≒ 0.09円

簡易プロンプトと構造プロンプトの比較まとめ

簡易プロンプトの結果を踏まえて

文字数の減少率に対して料金の減少率は50%にとどまりました。これにより、入力プロンプトの文字数を減らしてもトークン数および利用料を大幅に節約できるとは言えないことが分かりました。コストを抑えるために安易にプロンプトを簡易化する必要はなく、むしろ簡易化した操作は処理が欠落する可能性があることを念頭におく必要があります。

※シナリオひな形で全体的な処理の流れが生成されれば良い場合、細かな確認や修正を減らすために、詳細な操作ステップを省いた簡素な記述内容が適しているケースもあると考えられます。

構造プロンプトの結果を踏まえて

一般的に、プロンプトの記述内容を構造化することは生成AIから的確な回答を得やすくすることから、WinActorのシナリオ生成においても基本プロンプト(文章ベース)のシナリオから改善すると予想していましたが、今回は処理や設定に大きな改善が見られませんでした。

生成AIによる。コストや方法論など様々な考慮事項が想定されますが、それらに囚われすぎて意図が伝わらない内容になってしまっては本末転倒です。WinActorで実現したい動作や操作対象について、生成AIに誤解を生じさせない表現や用語で説明できていること、そして「RPAで何を(どこを)どのように操作するか」を必要最低限の手がかりで示すことが最も重要な観点になると考えます。

おわりに

生成AIによるシナリオ生成のためのプロンプトについて、記述のポイントを述べてきましたが、実際のところ求められるシナリオのクオリティは個々によって様々に異なります。そのため、入力(プロンプト記述内容)と出力(シナリオ)の分析、仮説検証を繰り返していくことが必要です。その際、例えば「プロンプトで記述した操作の8~9割程度は対応操作の部品が生成され、うち5割程度はプロパティが設定されているのが理想」といったように、本機能で生成されるシナリオについて自分なりの品質基準を明確にできていれば、基準に到達できるようなプロンプトの工夫と改善ができるようになり、記述のコツを掴めるようになってくるでしょう。

さて、そんな試行錯誤を繰り返すにあたり気になるのが、同じプロンプトを再実行した場合に結果がどのくらい変化するか、という点です。次回は再実行した結果を紹介し、連載コラムの最終回としてWinActorの生成AI連携機能によるシナリオひな形作成の利用についてまとめたいと思います。

本記事のカテゴリ :RPA技術コラム

ジャンル:RPA開発

PickUP

本記事に関連するCACのサービスやお役立ち情報をご紹介します。

RPA技術レポート無料ダウンロード

美しいコードをみると感動する、美しいワークフローの作り方
美しいコードをみると感動する、美しいワークフローの作り方
ダウンロード ダウンロード
RPA導入・拡大につまずかない3つのTIPS(2020年10月 PDF保存版)
RPA導入・拡大につまずかない3つのTIPS(2020年10月 PDF保存版)
ダウンロード ダウンロード
RPAってそもそも何!?まずは使ってみよう編
RPAってそもそも何!?まずは使ってみよう編
ダウンロード ダウンロード