RPAやAIは新しいソフトウェアスタックになるのか?
§1. ソフトウェアスタックとは
ソフトウェアスタックは、システムやアプリケーションの構築・運用において使用されるソフトウェア要素やプロトコル要素をブロックに見立てて、その集合を図として表現したものです。
通常、利用者(ユーザ)に近い方を上、ユーザから見えない方(ITインフラ)を下にレイヤ状に並べて描きます。ソフトウェアスタックだと意識する・しないに関わらず、みなさんも一度は目にしている図だと思います。
もっともシンプルなソフトウェアスタックは次のように書くことができます。
ハードウェアは物理的なサーバやネットワーク機器を含みます。ネットワークそのものやデータセンターを含むこともあります。OSはWindows、Linux、macOSなど。ミドルウェアはアプリケーションが利用する汎用的なソフトウェア。Webサーバ、データベース、メッセージングシステムなどが含まれます。アプリケーションはこれらのレイヤの上に作られ、ビジネス固有の処理とユーザインタフェースを提供します。
§2. 複数のSaaSを抽象化するRPA
RPAの主な目的は業務の自動化ですが、2つ以上のアプリケーションをまたいで処理を行うケースも多くあります。例えば、システムAからデータをダウンロードし、エクセルで集計し、結果を別のシステムBに登録するといったケースです。
システムAやBとRPAのインタフェースは画像スクレイピングを使う方法や、システムAやBが用意するAPIを呼び出す方法もあります。システムAやBとRPAのインタフェースがどのようになっていても、ユーザに見えるのはRPAがワークフローを自動で処理しているということのみで、システムAやB、それらとのインタフェースを通常、意識するわけではありません。
この時、RPAがシステムAやBを隠蔽する(抽象化する)という言い方をします。ソフトウェアスタックで説明すると、RPAワークフローというレイヤが新しく登場することによって、その下の、複数のアプリケーションが抽象化されます。
§3. AIアシスタントも複数のSaaSを抽象化する
コンピュータに「スケジュール調整しておいて」といえば、あとはコンピュータが自分の代理として様々なタスクを片付け、最後に「10日の13時で調整しておきました」と調整結果だけ返してくれるアイデアは、コンピュータが登場した頃からありました。
ChatGPTのようなテキスト系生成AIはタスクを処理するものではありませんが、その応用として、予めLLMにAPIリストを渡しておき、あるタスクを依頼すると、そのタスクにあったAPIをLLMが自動で選択、実行、結果を返すという研究・実装例は既にあります。また、開発中のAIアシスタントの中には、複数のアプリケーションやWebサイトにアクセスし、データを参照したり更新したりといったものもあるようです。
AIアシスタント | アシスト内容の例 | 参考URL |
---|---|---|
Gorilla (UC Berkeley and Microsoft Research) |
事前に保存されたAPIリストから適切なものを選び出す検索機能を有しており、自然言語クエリから意味的・構文的に正しくAPIを呼び出す。また、APIドキュメントのアップデートやバージョン変更にも対応できる。APIリストには1645APIが含まれている。 | https://gorilla.cs.berkeley.edu/ |
AutoGPT | 自然言語でゴールを与えると、それをタスクに分割し、各種ツールを自動実行しゴール達成を試みるAIエージェント。 | https://autogpt.net/ |
Leon | Github、Twitterなどのサイトステータスを順番にLeonがチェックするという例が挙げられている。 | https://getleon.ai/ |
Lindy | Zoomのセールスミーティングが終わったらSalesforceで「次のアクション」「契約額」をLindyが自動更新するという例が挙げられている。 | https://www.lindy.ai/ |
これらもソフトウェアスタック上で説明すると、AIアシスタントによって複数のアプリケーションが抽象化されるということができます。
§4. AIとRPAは同じポジションで競合するのか
複数のアプリケーションへのタスクを1つのワークフローとして処理するRPA、同様にユーザの望むタスクを自動処理するAIアシスタント、これらはソフトウェアスタックという点で同じポジションになります。ここで、両社の共通点と相違点、課題になりそうな点について整理しておきましょう。
AI | RPA | |
---|---|---|
共通 | 1つないし複数のアプリケーションへのアクセスを通じて、ユーザの求める処理を実行する。ユーザからアプリケーションの存在を隠蔽し抽象化する。 | |
相違 | 現在のAI一般に言えることだが、AIの処理や結果が、なぜ、そうなっているのか説明できないケースがある。(Explainable AIの研究は現在進行形で進んでいる) | ワークフローは人が一連の手続きとして定義するので、透明性はある。 |
既存アプリの変更、新しいアプリの登場といった変化にAI自身が対応できる可能性がある | 既存アプリの変更、新しいアプリの登場といった変化には、人による保守・メンテナンスが必要である |
§5. RPAやAIの新しい役割
このコラムでは、RPAワークフローやAIアシスタントを、アプリケーションとユーザの間に生まれる新しいソフトウェアスタックとして説明してきました。
RPAは業務自動化ツールとして定着した感がありますが、今後、その役割が変わるのか? 変わる先に説明したような新しいソフトウェアスタックを形成するような未来があるのか?今後も注目していきたいと思います。
本記事のカテゴリ :RPA技術コラム
PickUP
本記事に関連するCACのサービスやお役立ち情報をご紹介します。
RPA技術レポート無料ダウンロード
- 【コラム】WinActor ver7.5.0「シナリオ作成ガイド」で作ってみました
- 【コラム】 RPA導入・拡大の課題と解決 ―知っておきたい3つのTIPS
- 【コラム】RPA開発のポイント ―RPAを一人で始めて会社を巻き込む
- 【コラム】医療事務の現場 事務でRPAが求められる背景から対象業務、メリット、事例まで一挙解説!
- 【サービス】RPA開発/サポートサービス
- 【サービス】RPA+Oneソリューション
- 【サービス】RPA研修 自社開発イネーブルメントプログラム
- 【動画】CAC RPAセミナー オンデマンド
- 【資料ダウンロード】美しいコードをみると感動する、美しいワークフローの作り方|CAC RPA White Paper