見出し画像

ChatGPTでBabyAGIを再現:自律型エージェントの構築と活用

はじめに

2023年3月、AI業界は新たな領域を開拓しました。Untapped CapitalというVCを自ら立ち上げている中島洋平さん(@yoheinakajima)によって開発された「AIツール」BabyAGIが登場しました。この革新的なツールは、ユーザーが自分のタスクや目標(オブジェクト)を入力するだけで、その実現に必要なタスクを自律的に洗い出し、優先順位を列挙してくれます。たとえ抽象的な目標であっても、BabyAGIはAIが自律的に反復を繰り返し、具体的なタスクに落とし込んでくれます。ビジネスパーソンのメンターや様々な業種での活用が見込まれているこのツールは、日本でも大きな話題となり多くの派生ツールが次々に生まれています。

この記事では、このBabyAGIに焦点を当て、ChatGPTを使用してその再現を試みるプロセスについて解説します。特に、ユーザーが具体的なタスクをChatGPTに指示し、それをどのように実行するかについて詳しく見ていきます。さらに詳しい使い方や、便利な活用事例についてもご紹介します。それでは、早速みていきましょう!



BabyAGIの詳しい説明

BabyAGIは、タスク駆動型の自律エージェントとして機能します。例えば、目標に基づいて自動的にタスクを生成し、結果に基づいて新しいタスクを生成し、リアルタイムで優先順位を付ける能力を持っています。その結果、AIは新しい情報と優先順位に対応し、様々な制約と文脈の中で自動的にタスクを実行することが可能になります。

このシステムは、タスクの完了にGPT-4を使用し、効率的な検索とタスク関連データの保存にPineconeを使用します。LangChainの機能を用いて、結果を洗練し、Pinecone内で保存するプロセスが可能です。この統合アプローチにより、AIエージェントは環境と相互作用し、効率的にタスクを実行することができます。このアプローチにより、AIが様々な状況下でタスクを自動的に実行することが可能になります。図にすると以下のようなフローでタスクが実行されていきます。

https://yoheinakajima.com/task-driven-autonomous-agent-utilizing-gpt-4-pinecone-and-langchain-for-diverse-applications/ 翻訳: ChatGPT研究所

BabyAGIをChatGPTで再現する方法・使い方

BabyAGIの再現は、ChatGPTの新機能「Custom Instruction(カスタムインストラクション)」と「Code interpreter(コードインタプリター)」を利用して行います。この機能により、ユーザーはChatGPTへの詳細な指示をあらかじめ与えることができます。またコードインタープリターを使用する理由は後ほどご説明します。

具体的には、以下のプロンプトを使用します。英語のプロンプトでも、ChatGPTへ日本語で指示をすれば日本語で返答をしてくれます。英語の方が若干回答の精度が上がります。↓↓↓:

★英語プロンプト(238トークン):

no talk; just do

Task reading:
Before each response, read the current tasklist from "chatGPT_Todo.txt". Reprioritize the tasks, and assist me in getting started and completing the top task

Task creation & summary:
You must always summarize all previous messages, and break down our goals down into 3-10 step by step actions. Write code and save them to a text file named "chatGPT_Todo.txt". Always provide a download link. 

Only after saving the task list and providing the download link,
provide Hotkeys
List 4 or more multiple choices. 
Use these to ask questions and solicit any needed information, guess my possible responses or help me brainstorm alternate conversation paths. Get creative and suggest things I might not have thought of prior. The goal is create open mindedness and jog my thinking in a novel, insightful and helpful new way

w: to advance, yes
s: to slow down or stop, no
a or d: to change the vibe, or alter directionally

If you need to additional cases and variants.  Use double tap variants like ww or ss for strong agree or disagree are encouraged.

★日本語プロンプト(518トークン):

no talk; just do

タスクの読み取り:
毎回の返答の前に、"chatGPT_Todo.txt"から現在のタスクリストを読むこと。タスクの優先順位を再評価し、トップのタスクを開始し、完了する手助けをすること。

タスクの作成&要約:
すぐにすべての前のメッセージを要約すること。私たちの目標を310のステップバイステップのアクションに分けること。コードを書き、それを"chatGPT_Todo.txt"というテキストファイルに保存すること。常にダウンロードリンクを提供すること。

タスクリストを保存し、ダウンロードリンクを提供した後のみ、
ホットキーを提供する。
4つ以上の選択肢をリストアップすること。
これを使用して質問をしたり、必要な情報を求めたり、私の可能な返答を予測したり、または新しい会話の方向性を考えたりすること。創造的になり、私が以前に考えていなかったことを提案すること。目標は、新しく、有益で、洞察に富んだ方法で私の考えを刺激することです。

w: 進む、同意する
s: 減速または停止、同意しない
aまたはd: 雰囲気を変える、または方向を変える

追加のケースやバリアントが必要な場合は、強く同意または反対する場合などの二重タップバリアント、例えばwwやssを使用することが推奨されます。

カスタムインストラクションの設定方法

  • 左下の角にあるユーザー名から「Settings」をクリックします。

  • 左の Beta feature から 赤枠の Code interpreter をオンにします。

  •  そして再度左下のユーザー名をクリックすると、Custom instructions(カスタムインストラクション)が表示されChatGPTに対して、事前の指示をa与えられるようになります。

  • カスタムインストラクションを開いたら、二つ設定できるところがあります。

    • 上のフィールドでは「あなた自身についてChatGPTに知ってほしいこと」を設定できます。

      • 例)住んでいる場所、仕事の内容、趣味など

    • 下のフィールドでは「あなたがどのような反応をChatGPTから得たいか」を設定できます。

      • 例)返答のトーンや返答の長さ、また特定のトピックに対して賛成か反対意見を持つかなど

これらの設定により、ChatGPTの返答をよりパーソナライズすることができます。今回は、下のフィールドに先ほど提示したプロンプトを設定します。


フルプロンプトの詳細

このプロンプトに従い、BabyAGIと同様の自動タスク生成と管理が可能になります。具体的に、プロンプトは以下の3つの主要な部分で構成されています:

  1. タスクの読み込み:ChatGPTは各レスポンスの前に「chatGPT_Todo.txt」からタスクリストを読み込みます。
    これにより、ChatGPTはユーザーのタスクを追跡し、最優先のタスクを完了するための支援を提供できます。

  2. タスクの作成と要約:ChatGPTは過去のメッセージを要約し、目標を3-10のステップに分割します。これらのタスクはコードインタプリターを使って「chatGPT_Todo.txt」に保存されます。(ChatGPT内でテキストファイルを作成するにはコードインタプリターが必要なので、必ず事前に確認しておきましょう。)

  3. ホットキー(特定のコマンドや機能を素早く実行するためのキーボードのショートカットなどの意)の提供:タスクリストが保存され、ダウンロードリンクが提供された後、ChatGPTはユーザーに4つ以上の選択肢を提供します。これらの選択肢は、ユーザーが必要な情報を提供したり、可能なレスポンスを推測したり、新しい会話の道筋を提案したりするためのものです。


実際の活用事例

 ①「プロテインが豊富な食事プランを作ってください」

例として、「プロテインが豊富な食事プランを作ってください」というユーザーの質問を考えてみましょう。ユーザーがこの質問をChatGPTに投げると、ChatGPTはプロンプトに基づいて次のようなフローを開始します:

1.目標設定:目標を設定するところから始めます。ユーザーは「タンパク質が豊富な食事プランを作成してください」とChatGPTに要望を伝えます。↓↓↓

2.タスクリストの作成&保存:すると、ChatGPTはユーザーの目標を理解し、それを達成するために必要な具体的なタスクのリストを作成します。目標を達成するために3-10のステップに分割します。たとえば、「タンパク質の必要量を特定する」「タンパク質が豊富な食品をリストアップする」などのステップが考えられます。この例では、ChatGPTが以下のようなタスクの分解を行いました↓↓↓:

このように分解されたタスクは、「chatGPT_Todo.txt」というテキストファイルに保存されます。これにより、ChatGPTは各タスクを一つずつ効率的に処理することが可能となり、さらに長期的に情報を保存することが可能となります。

(ChatGPTが上記で実行した内容)↓↓↓

# タスクの分解をテキストファイルに保存

task_list = """
1. Identify the required amount of protein (based on age, gender, activity level, etc.).
2. List protein-rich foods.
3. Design the framework for daily meals (breakfast, lunch, dinner, snacks, etc.).
4. Choose menus that balance protein intake in each meal.
5. Consider health restrictions or preferences if needed.
6. Provide detailed recipes and nutritional values.
7. Create a one-week meal plan and provide a shopping list.
"""

# テキストファイルに保存
file_path = "/mnt/data/chatGPT_Todo.txt"
with open(file_path, "w") as file:
    file.write(task_list)

file_path

3.ホットキーの提供:タスクリストが保存され、ダウンロードリンクが提供された後、ChatGPTはユーザーに4つ以上の選択肢を提供してくれます。これらの選択肢は、「タンパク質の必要量の特定」「ユーザーの好みなど追加調整をする」など、ChatGPTが自動で次のアクションを考え選択肢として提供してくれます。

会話全体はこちら👉:

②Twitterのアナリティクスファイルを分析

1.目標設定(今回は、チャエンさん(@masahirochaen)が作成してくださったプロンプトを参考にさせていただき分析をしてみました。):  目標は、アップロードしたChatGPT研究所のツイッターアカウントのアナリティクス csv ファイルを分析し、今後の運営に活かしていくことです。

https://twitter.com/masahirochaen/status/1688030295755501568?s=20 参考にさせて頂いたチャエンさんの投稿

2.タスクリストの作成&保存:ChatGPTに指示をすると、目標に向けて必要なタスクを分解し提案してくれます。↓↓↓

3.ホットキーの提供:そして、最後に次のアクションの選択肢をホットキーとして提供してくれます。ユーザーは、ホットキーに従ってステップを進めるか、または追加の指示を与えることももちろん可能です。

最初の目標設定だけしてしまえば、あとのステップはほとんどChatGPTが実行してくれます。

ChatGPTが作成してくれた csv ファイルの一部↓↓↓

会話全体はこちら👉:


エージェントの魅力

自律的エージェントは、ユーザーのタスクの効率を大幅に向上させることができます。例えば以下のような点があります。

  1. 作業の効率化:このプロンプトを使用すると、ChatGPTが自動で必要なタスクを洗い出してくれるため、ユーザーは自分自身でタスクを管理する時間を大幅に削減し、より重要な作業に集中することができます。

  2. タスク管理の改善:ChatGPTは、タスクを「chatGPT_Todo.txt」に自動的に保存します。これにより、ユーザーは自分が行ったタスクを簡単に追跡し、それらを優先順位に従って整理することができます。さらに、ChatGPTはファイルの中をいつでも参照できるので、トークン数に縛られずに、重要な情報を保存してもらうことが可能となります。

  3. 意思決定の支援:ChatGPTは、ユーザーに4つ以上の選択肢を提供します。これにより、ユーザーはChatGPTに次に行うべきアクションを提供してもらいながら新しい解決策を見つけ、最適な選択を行えます。


まとめ

この記事では、ChatGPTとプロンプトを使った自律型エージェントがもたらす可能性とその使い方について詳しく説明しました。

これらのツールは、業務の効率化や意思決定のサポートし、すでに人々の生活と業界全体を変革しています。現在、私たちはAI技術が人類の進化を驚異的なスピードで追い越す、重要な時代の分岐点に立っています。そして、この変化は我々だけでなく、次世代やその先の未来にも大きな影響を及ぼすことが容易に予想されます。

この記事が読者の方々にとって少しでも有益なもので、ChatGPTのようなツールを活用する一つのヒントとなれば幸いです。

これからも継続的に ChatGPT 関連の情報について発信していきますので、フォロー (@ctgptlb)よろしくお願いします。この革命的なテクノロジーの最前線に立つ機会をお見逃しなく!

参考リンク:

BabyAGI paper: 


この記事が参加している募集

AIとやってみた

みんなにも読んでほしいですか?

オススメした記事はフォロワーのタイムラインに表示されます!