
AutoGPTにプログラムを作成させてみる
AutoGPTはLLMによって駆動され設定した目標を自律的に達成することができるアプリケーションです。
これを利用して簡単なプログラムを自動的に作成させてみます。
準備
AutoGPTをセットアップ
こちらを参考にセットアップしました。
(2023年4月30日 追記:公式ドキュメントできたみたいです)
AIはWin11 WSL2 Ubuntu 上のDocker環境で実行しました。
AIが私のコンピューター上で任意のコマンドを実行できてしまい、セキュリティ的に少し怖いので、 dockerコンテナの中でのみ作業させるようにします。
auto_gpt_workspaceをマウント
AIのファイル操作は「/home/appuser/auto_gpt_workspace」フォルダで行われるので、ホストOSからファイル操作が見やすいようにdocker-compose.ymlを編集しておきます。
volumes:
- "./auto_gpt_workspace:/home/appuser/auto_gpt_workspace"
プログラムの自動作成
セットアップ
Auto-GPTを開始します。
$ sudo docker compose run auto-gpt
aiの名前を聞かれるので、「fizzbuzz」という名前にします。

次にAIの役割を説明します。

aiのゴールを入力します。5つまで指定できますが、今回は以下の1つだけ指定しました。
fizzbuzz.pyというファイルを作成し、Fizzbuzz問題を解決するPythonプログラムを記述する

すると、AutoGPTとのセッションが始まります。
Pythonファイルの作成
ここからが大変です。「NEXT ACTION: COMMAND = do_nothing」とあるので、次に何をすれば良いのか分からないようです。

いろいろなフィードバックをして、AIが自発的にpythonファイルを書き込むように誘導します。
まず、PLANの1つ目をそのままフィードバックしてみます。

ダメでした。「NEXT ACTION: COMMAND = do_nothing」のままです。
次に、日本語でやるべき作業を直接指定してみます。
「Pythonコードを作成し、fuzzbuzz.pyというファイルに保存してください。」

今度はよさそうです。「NEXT ACTION: COMMAND = write_to_file ARGUMENTS = {'file': 'fizzbuzz.py', 'text': "for i in range(…」となり、 pythonコードをファイルに書き込もうとしているのがわかります。
そのとおりにコマンドを実行してもらいたいのでyを入力。

「SYSTEM: Command write_to_file returned: File written to successfully.」とあり、ファイル書き込みに成功しました。
ファイルもちゃんと作成されています。


Pythonの実行
次のコマンドは「NEXT ACTION: COMMAND = execute_python_file ARGUMENTS = {'file': 'fizzbuzz.py'}」となっていて、作成したpythonファイルを実行しようとしています。

それでよいので、yを入力。

pythonファイルが実行されfizzbuzzが出力されました。
さらにセッションは続きますが…

これ以上やることはないのでnを入力して終了。

おしまい!
おまけ:開発状況
2023年4月24日現在、プルリクが約250個開いていました。一日に20件マージしても、2週間はかかりそうです。直近2週間は頻繁に更新され続けるということですね。
これだけプルリクが溜まっていると、他にも似たようなことを考える人がいるようです。docker-composeにAIの作業フォルダをマウントするプルリク送ろうと思いましたが既に存在しました。