自律型AIエージェントのご紹介

本記事は、当社オウンドメディア「Doors」に移転しました。

約5秒後に自動的にリダイレクトします。

このたびブレインパッドは、LLM/Generative AIに関する研究プロジェクトを立ち上げ、この「Platinum Data Blog」を通じてLLM/Generative AIに関するさまざまな情報を発信をしています。
今回は、自律型AIエージェントの機能や動作についての説明とあわせて、AIエージェントをいくつかご紹介します。



こんにちは。アナリティクスサービス部の江本です。

昨年2022年11月末にChatGPTがリリースされてから半年もたたずして、自律型AIエージェントが続々とリリースされ大きな話題を呼びました。

今では様々な自律型AIエージェントが存在しており、その多くはウェブブラウザを通して簡単に試すことができるようになっています。

本記事では、自律型AIエージェントの機能や動作について説明し、さらにいくつかのエージェントをご紹介します。

自律型AIエージェントとは

自律型AIエージェントは、与えられたゴールに対してLLMを用いて必要なタスクの定義および行動計画を生成します。

計画に沿ってタスク実行し、その結果をもとにバグ修正や新たなタスクが必要と判断されたら行動計画を修正します。そして、当初の目的が達成されたと判断されるまで行動・評価・修正を自律的に繰り返します。

これまで様々な自律型AIエージェントが開発・公開されており、機能は様々ですがおよそ共通している事として

  • ユーザはエージェント名や役割、達成したいゴールを入力するだけでよく、プロンプト開発は不要
  • タスクの実行や評価・修正の様子を逐次UIに表示する
  • LLMだけでなくウェブ検索やファイル操作などを必要とする複合的なタスクを処理することができる

といった特性があります。

具体的なタスク処理の雰囲気を掴むために、今回はBabyAGIの仕組みをご紹介し、実際にゴールを与えて、タスク処理の様子をお見せします。

BabyAGIとは

BabyAGIはYohei Nakajima氏によって開発されたAIエージェントで、2023/4/3にリポジトリ公開されました。

ユーザから与えられたゴールに対して、BabyAGIは以下のステップを踏んで4つのエージェントを使いながらタスクを処理していきます。

  1. Task Creation Agentがゴールからタスクを生成する
  2. Task Prioritization Agentがタスクリストに優先順位をつける
  3. タスクリストの中から最初のタスクを取得し、Execution Agentに渡してタスク実行する
  4. 実行結果と元々のゴールをTask Creation Agentに与えて新たなタスクを生成する
  5. 以降、全タスク終了するまでステップ3~5をループする

また、タスクとその実行結果のペアをMemory(ベクトルデータベース)に保存し、Context Agentを通じて関連度の高いコンテクストをタスク実行時に参照しています。

BabyAGIフローチャート
BabyAGIのタスク処理フローチャート。公式Paperから引用

以下実装コードです。現在はクラスにリファクタリングされており、こちらは書き換えられる前の古いバージョンのコードですが1ファイルに処理が閉じたコードとなっており、短く理解し易いものとなっております。

https://github.com/yoheinakajima/babyagi/blob/79bf9676ccc9d0371f2e3471d2808fe2da6b02ab/babyagi.py

以上がBabyAGIの仕組みの概要となります。140行にも満たない非常に短いコードでAIエージェントの自律的な動作が実現しています。

自律型AIエージェントに関連する後続プロジェクトでBabyAGIからインスピレーションを受けたものは多く、この分野に大きな影響を与えています。

インスピーレーションを与えたプロジェクト:https://github.com/yoheinakajima/babyagi/blob/main/docs/inspired-projects.md

BabyAGI(BabyDeerAGI)を使ってみる

BabyAGIは外部のLLMとベクトルデータベースを利用したシンプルな構成であり、ウェブ検索機能などは実装されておりません。

このBabyAGIをベースとして機能の強化やパフォーマンスを改善するための改変版BabyAGIとしてBabyBeeAGI、BabyCatAGIなどが開発されています。

今月6/7にもBabyDeerAGIと呼ばれるmodがリリースされました。User Input Agentの追加やタスクの並列処理が実装されており、Google Search APIも利用できるようになっています。

BabyDeerAGI(およびBabyAGI)はYoshiki Miura氏開発のウェブUIで実行することができます。

https://github.com/miurla/babyagi-ui

上記githubのコードから自身のローカル環境上にウェブUIを構築することができますが、現在下記のデモサイトで無料で試すことも可能となっております。

https://babyagi-ui.vercel.app/ja

(SerpApiチームがオフィシャルスポンサーとなっており、デモサイトで発生分のsearch APIのクレジットを提供してくれているとのことです)

今回はこのデモページを利用させていただきます。ウェブUIはChatGPTとよく似たサイト構成となっております。

BabyAGI-UI画面
ダークモード表示に設定したBabyAGI-UI画面

設定方法は簡単で、ページ内の設定ボタンからOpenAIのAPIキーを入力してモデルとエージェントを指定すれば、あとはゴール入力するのみです。

ここでは、次の設定・ゴールをセットしてみます。

  • モデル:OpenAI gpt-3.5-turbo
  • エージェント:BabyDeerAGI
  • ゴール:2023年3月頃から注目を集めている自律型AIエージェントに関する調査記事を書く

しばらくすると、ゴールに対して4つのタスクリストが生成されました。

BabyDeerAGIにゴールを与えて実行し、タスク処理が開始した際の画面

タスク洗い出しが終わったあとは、ウェブUI上でタスクの処理が自動的に進行し、その進捗状況がリアルタイムで表示されます。

全てのタスクが終了した後、実行結果を.txtファイルとして保存することが可能です。以下、保存したテキストファイルの内容を各タスクごとにお見せします。

はじめのタスクは調査記事を検索するもので、以下のようにタスク結果報告書が返ってきました(テキストが長いため途中で切れています。)

## 🔍 次のタスク
1. 自律型AIエージェントに関する調査記事を検索する - **[🔍 web-search]**

## ✅ タスクの結果
報告書

この記事では、「Auto-GPT」という新しいプログラムについて説明されています。このプログラムは、「ChatGPT」という技術を使用して、自己完結型のAIアシスタントを作成することができます。

Auto-GPTは、ユーザーからの継続的な指示なしで複雑なタスクを実行することができます。ユーザーの仕様に基づいてコードブロックを生成し、ソフトウェア開発プロジェクトを管理することもできます。

Auto-GPTは、iOSとAndroidの違いなどのトピックに関する研究などのタスクにも使用することができます。タスクの結果はテキストファイルに保存され、簡単に参照することができます。

Auto-GPTは、ウェブ開発者、ポッドキャストの研究者、および他の特定の役割によって使用されることができます。このプログラムはまだ実験段階にあり、不正確な情報を生成したり、間違いを com る可能性があります。

Auto-GPTを使用するには、GitとPythonのインストールが必要であり、ユーザーはOpenAIからAPIキーを取得する必要があります。Auto-GPTの使用には潜在的なコストがかかり、APIキーには使用制限があります。

Auto-GPTの代替として、「AgentGPT」というプロジェクトがあります。AgentGPTは、インストールを必要とせずにウェブブラウザで動作する類似のプロジェクトです。AgentGPTはAuto-GPTよりも進んでいませんが、自己完結型のAIエージェントができることについて基本的な理解を提供することができます。

このテキストは、私たちの目標と現在のタスクに関連する情報を提供しています。関連する情報は以下の通りです:

- ソニーAIとPolyphony Digital(PDI)は、「Gran Turismo Sophie(GT Sophie)」AIエージェントを発表しました。
- GT Sophieは、新しい深層強化学習プラットフォームを使用して、ソニーAI、PDI、およびソニー・インタラクティブ・エンタテインメント(SIE)によって開発された自己学習型のAIエージェントです。
- GT Sophieは、PlayStation 4のゲーム「Gran Turismo Sport」でAIを活用した新しいゲーム体験を提供し、世界のトップドライバーと競争するために訓練されています。
- GT Sophie

次のタスクは要約です。先ほど行った検索収集結果から関連する記事を要約します。

## 🤖 次のタスク
2. 検索結果から関連する記事を要約する - **[🤖 text-completion]**

## ✅ タスクの結果
Auto-GPTは、ChatGPT技術を使用して自己完結型のAIアシスタントを作成するプログラムです。ユーザーの指示なしで複雑なタスクを実行し、コードブロックの生成やソフトウェア開発プロジェクトの管理も可能です。また、iOSとAndroidの違いなどの研究タスクにも使用できます。タスクの結果はテキストファイルに保存され、参照が容易です。ただし、まだ実験段階であり、不正確な情報や間違いを生成する可能性があります。使用にはGitとPythonのインストールが必要であり、APIキーの取得と使用制限もあります。代替としてAgentGPTがありますが、こちらはインストール不要でウェブブラウザで動作し、基本的な理解を提供します。

次は要約結果から重要な情報を抽出します。先程の要約の時点ですでに重要な情報が抽出されているようで、ここでは箇条書きに整理している程度の処理となっています。

## 🤖 次のタスク
3. 重要な情報をピックアップする - **[🤖 text-completion]**

## ✅ タスクの結果
Auto-GPTは、ChatGPT技術を使用して自己完結型のAIアシスタントを作成するプログラムです。
Auto-GPTは、ユーザーの指示なしで複雑なタスクを実行し、コードブロックの生成やソフトウェア開発プロジェクトの管理も可能です。
Auto-GPTは、iOSとAndroidの違いなどの研究タスクにも使用できます。
タスクの結果はテキストファイルに保存され、参照が容易です。
Auto-GPTはまだ実験段階であり、不正確な情報や間違いを生成する可能性があります。
Auto-GPTの使用にはGitとPythonのインストールが必要です。
Auto-GPTの使用にはAPIキーの取得と使用制限があります。
代替としてAgentGPTがありますが、こちらはインストール不要でウェブブラウザで動作し、基本的な理解を提供します。

最後は、1,2,3の内容をもとに最終的な調査記事に内容を仕上げるタスクです。最終成果物はAuto-GPTとAgentGPTについて紹介する記事となりました。

## 🤖 次のタスク
4. 最終的な調査記事を作成する - **[🤖 text-completion]**

## ✅ タスクの結果
2023年3月頃から注目を集めている自律型AIエージェントに関する調査記事

最近、注目を集めている自律型AIエージェントについて調査しました。その中で、「Auto-GPT」というプログラムが特に注目されています。Auto-GPTは、ユーザーからの指示なしで複雑なタスクを実行することができる自己完結型のAIアシスタントです。このプログラムは、「ChatGPT」という技術を使用して開発されており、ユーザーの仕様に基づいてコードブロックを生成したり、ソフトウェア開発プロジェクトを管理したりすることができます。

Auto-GPTは、ウェブ開発者やポッドキャストの研究者など、さまざまな役割の人々によって使用されることが期待されています。このプログラムはまだ実験段階にあり、不正確な情報を生成したり、間違いをする可能性があることに注意が必要です。

Auto-GPTを使用するには、GitとPythonのインストールが必要です。また、OpenAIからAPIキーを取得する必要があります。ただし、Auto-GPTの使用には潜在的なコストがかかる可能性があり、APIキーには使用制限があります。

Auto-GPTの代替として、「AgentGPT」というプロジェクトも存在します。AgentGPTは、インストールを必要とせずにウェブブラウザで動作する類似のプロジェクトです。AgentGPTはまだ開発が進んでいないものの、自己完結型のAIエージェントについて基本的な理解を提供することができます。

以上が、2023年3月頃から注目を集めている自律型AIエージェントに関する調査結果です。Auto-GPTとAgentGPTは、それぞれ異なる特徴と利点を持っていますので、使用する際には適切な選択を行う必要があります。

最終出力として、全てのタスクが完了したあと実行したタスクリストが出力されます。

## 📝 タスクリスト
| ID | Status | Task  | Tool | Dependency | 
 | :-: | :-: | - | :-: | :-: | 
| 1 | ✅ | 自律型AIエージェントに関する調査記事を検索する | 🔍 |  |
| 2 | ✅ | 検索結果から関連する記事を要約する | 🤖 | 1 |
| 3 | ✅ | 重要な情報をピックアップする | 🤖 | 2 |
| 4 | ✅ | 最終的な調査記事を作成する | 🤖 | 1, 2, 3 |

## 🏁 完了
All tasks completed!

以上、BabyDeerAGIを使ったデモ紹介でした。

その他の自律型AIエージェント

BabyAGI以外にも様々な自律型AIエージェントが開発・公開されており、ここではそのうちいくつかのプロジェクトをご紹介します。

ゴールをタスク分解して自律的に処理を進める点においてはどのプロジェクトにおいても共通ですが、もちあわせている機能や特徴は様々です。

※ 以下でご説明する内容は当記事執筆時点での情報となります。 ここでご紹介する自律型AIエージェントは公開されてからまだ日が浅く、仕様変更やリファクタリングが盛んに行われているため今後内容が変わる可能性があります。

Auto-GPT

Auto-GPTは、ローカルPC上で動作する自律型AIエージェントです。

筆者ローカルPC上でAuto-GPTを立ち上げて、ゴールに「株式会社ブレインパッドの事業内容について調査し、400行程度に要約する。そのあと株式会社ブレインパッドに関連する画像を保存する。」を設定した際の出力画面

2023/3/30に公開されて以来非常に多くの注目を集めており、本記事執筆時点でのGithubスター数は140.0kとなっています。

Auto-GPTスター数推移。Githubより引用

Auto-GPTはLLMを使ったテキスト処理やGoogle検索に限らず、例えば

  • 長期記憶の保持
  • タスク実行に必要なpythonコードの作成・ローカル上への保存・実行
  • Huggingfaceのモデルを参照して画像生成やテキスト読み上げ

といった機能を備え、複雑なタスクに対応することができます。また、bing検索やSlack、Twitterなど様々なPlugin開発も行われており、更に多様なタスク処理が可能です。

特徴

  • 実行環境:CUI(ローカルPC上で動作。Dockerを使って環境構築可能)
  • 利用するLLMモデル:gpt-4、またはgpt-3.5-turbo
  • OpenAI APIキー:必要(検索をともなう場合はGoogle Search APIキー、Huggingfaceを利用する場合はそちらのアクセストークンも必要)
  • その他
    • 利用可能なpluginが豊富:https://github.com/Significant-Gravitas/Auto-GPT-Plugins
    • エージェントのアクション制御機能あり(タスク提案ごとに都度承認、n回まとめて自動承認(API利用料注意))
    • アクションに対してセルフフィードバックあるいはユーザフィードバックを与えることが可能

AgentGPT

AgentGPTはウェブUIを通して実行できるエージェントです。

AgentGPTウェブUI画面

ウェブUIが公開されており、ローカルPC上でのセットアップは不要でOpenAI APIキー無しでも動かせる(ただし処理回数制限あり)ためすぐに試すことが可能です。

画像生成機能があり、画像生成系のゴールを与えればウェブUI上で生成・閲覧できる点も特徴です。

公開されているウェブUIの無料アカウントの場合、一日に実行できるエージェント数は5と制限されていますが、ローカルPC上で構築した場合はエージェント数に制限はなく利用できます。

(ただしローカルPC上で構築した際はOpenAI APIキーは必須で、検索や画像生成を行う場合はそれに応じたAPIキーが必要です)

特徴

  • 実行環境:ウェブUI(ローカルPC上にUIサーバ構築も可能。Dockerを使った環境構築が可能)
  • 利用するLLMモデル:gpt-4、またはgpt-3.5-turbo、gpt-3.5-turbo-16k
  • OpenAI APIキー:不要(ただし、未入力だと処理できる回数が少ないためあったほうが良い)
  • その他
    • 出力結果をテキスト、PDF、画像で保存することができる
    • ゴール達成するまで、所定のループ回数を自動実行
    • 無料版は1日1アカウント5エージェント分まで実行可能(タスク実行も5まで)

Godmode

GodmodeはAuto-GPTとBabyAGIにインスパイアされたウェブプラットフォームで、Auto-GPT・BabyAGIを使って動作しています。

GodmodeウェブUI画面

こちらはウェブUIのみ公開されており、AgentGPTと同様OpenAI APIキーを用意せずに試すことができます(APIキー未入力の場合は処理回数制限あり)

AgentGPTとは違い、ゴールからタスクリストを生成した際に、どのタスクを実行するかユーザ側で選択することができます。

また、タスク処理を行う際にエージェントの考えとその根拠を示た上でユーザに承認を求める点はAuto-GPTと同様で、必要に応じてユーザフィードバックを与えることも可能です。

実行の様子は、以下の開発者ツイートのデモ動画をご覧いただくとわかりやすいです。

特徴

  • 実行環境:ウェブUI
  • 利用するLLMモデル:gpt-4、またはgpt-3.5-turbo
  • OpenAI APIキー:不要(ただし、未入力だと処理できる回数が少ないためあったほうが良い)
  • その他
    • 実行結果サマリをテキストファイルとして保存できる
    • エージェントのアクション制御機能あり(タスク提案ごとに都度承認、10分間は自動承認(API利用料注意))
    • アクションに対してユーザフィードバックを与えることが可能

SuperAGI

SuperAGIは自律型AIエージェントをウェブUIを通して作成・実行・管理できるようにするためのオープンソースフレームワークです。

SuperAGIウェブUI画面。公式ページから引用

ローカルPC上で動作する開発・実行フレームワークで、環境構築の方法や用意するAPIキーなどの情報はAuto-GPTと同様です。

SuperAGIではGoogle検索をはじめ、メール送信やSlack連携、DALL-Eを用いた画像生成など様々なツールが用意されており、ゴール設定の際にユーザ自身で利用するツールを選択することが可能です。

また、複数エージェントの並列実行やエージェントメモリ機能、複数ベクトルデータベースの利用などタスク実行を効率的に行う機能が用意されています。

実行の様子は、以下の公式デモ動画をご覧いただくとわかりやすいです。

動画では以下をゴールとして設定し実行しています。

  • 最新のAIトレンドを調査する
  • その調査サマリを複数宛先にメール送信をする
  • メールには特定のリンクを差し込む

www.youtube.com

特徴

  • 実行環境:ウェブUI(ローカルPC上にDockerを使った環境構築が可能)
  • 利用するLLMモデル:gpt-4、またはgpt-3.5-turbo、llama、mpt-7b-storywriter
  • OpenAI APIキー::必要(他、使うツールに応じて認証情報が必要:例Google検索→Google Search API)
  • その他
    • 利用可能なツールが豊富:https://github.com/TransformerOptimus/SuperAGI
    • ゴール達成するまで、所定のループ回数を自動実行
    • 複数エージェント並列実行をはじめ効率的な実行機能が豊富

おわりに

今回は自律型AIエージェントについて、いくつかご紹介させていただきました。

実際に本記事でご紹介したものや他のAIエージェントをgpt-3.5-turboを指定して利用してみましたが、いずれも利用までの準備や利用方法はとても簡単で、またOpenAI APIキーの料金もgpt-3.5-turboならば安いため、とても気軽に実験を繰り返すことができました。

まだ試したことがない方も、是非自律型AIエージェントを試してみてはいかがでしょうか。