はじめに
OutSystems関係の投稿はだいぶ久し振りになります。
OutSystemsもAI活用のトレンドにシフトしてきており、
この度Agent Workbenchのハッカソンの開催があったためキャッチアップでアプリを作ってみました。
アドベントカレンダーの22日の記事として公開します。
Workbenchのわかりやすい記事は渡部さんがまとめてくださっています。
想定読者
・OutSystemsに関わるユーザ
・AI Agent作成に関わるユーザ
事前準備
・ODC環境の準備 (PE環境が今なら無償で利用可能です)
実装したアプリのアプローチ内容
課題 (Problem)
ワークフロー等で申請→承認が必要なケース。
入力項目・内容が多いケースの場合、承認者の承認に時間がかかっているケースが多い。そして年間にすると承認作業にかける時間は負荷になっている。
解決(Solution)
申請内容をAI要約して承認者の意思決定を効率化。
実装
Agentを組み込む画面を作成します
せっかくのODCなので「アプリ自動生成」ができるMentor機能を使います。
MentorにアップロードするファイルはGPTに作ってもらいました。
内容としては、要約がわかりやすい入力項目が多いフォームと一覧画面だけあれば良いのでシンプルな依頼を。
申請(20項目程度)→ 確認 → 承認 のシンプルな画面アプリを自動生成する。
承認画面の最上部に、申請内容を承認者が3秒で把握できる要約を表示する。
要約に使うプロンプトは管理画面なしで本要件内の既定値を利用し、必要に応じて後から編集可能なエンティティ項目として保持する。
色々画面ができるんですが、今回は下記だけあれば事足ります。
・一覧画面→要約内容を表示
・入力画面
・詳細画面→要約内容を表示
入力画面の保存処理の最後にRequestCreateOrUpdate内の最後にアクションを配置。

トリガーにしてWorkFlow側で作成したAgentを呼び出しています。
今回単一Agentなので今後の拡張性を考えてWorkFlowを採用しています。

続いてAgent
今回は要約するだけの機能なのでAgentは一個です。
AgentFlowで実装したのは下記です。
・GetGroundingData
入力されたデータを「JSONSerialize」で変換

・BuildMessages
「SystemMessage」と「UserMessage」にて今回の要約のプロンプトを設定。
プロンプトの内容は公開は控えます。
マークダウン形式で出力かつ、【申請概要】、【申請内容】、【確認事項】の各項目で要約を表示するプロンプトを設定しました。
AgentFlowの最後にプロンプトで出力した要約内容を保存。
SummaryAction内で実行。

出来上がった画面
・一覧画面
プロジェクト承認や懇親会費のワークフローをテストデータとして作成しました。

・AI Summaryのアコーディオンを押下後

Markdownで出力しているため、「Markdown Renderer」のForgeをアコーディオン内に設置しています。
実際の入力された詳細画面
これを上から下まで確認して承認するのはやっぱり辛い。
あくまでテストデータなので本当はもっと縦長になっているケースが多いと思われる。

終わりに
ハッカソン用に実装したため実装としてはかなりシンプルですが、これだけでも効果的なアプローチが可能になると思います。
あとはMentor機能でもう少しUIをVIBEコーディングで実装できたらなと思いました。(今後の願望)


