読書記録『その仕事、AIエージェントがやっておきました。』二章まで

今日は読書記録の一環として、西見公宏氏著の『その仕事、AIエージェントがやっておきました。』を読みつつその要約や感想などを書いていく。

今日は第二章まで。

買った経緯・読む前の印象

X(旧Twitter)を見ていたら広告か何かで流れてきたのが目に入った。生成AI系の文脈だった気がするが、「AIエージェント」という単語にはキャッチーさがある。
自分が「AIエージェント」という単語に持つイメージとしては、個別タスクに特化されている近年の生成AIサービスに対して一段階上のレベルであり、例えば①複数のタスクに対する汎化性能がある②ユーザーによる指示を待たずにエージェント自ら自発的行動を行う 等の機能を持っていることが想起される。

実際にはどのような内容であるのかは読んでみないと分からないが、初版2023/12/29出版ということで、自律AIに関する最新の情報が手に入ることを期待して購入。

第一章 あなたの仕事がAIエージェントで変わる

本書ではAIエージェントのざっくりとした定義として「人がいちいち指示をしなくとも、自分でやることを考えて、様々なツールを活用して目標に向かってタスクをこなしていくAIの仕組み」と述べている。

ChatGPTとの対比もされており、ChatGPTはあくまで「指示待ちAI」の域を出ていないという主張だ。以前のプログラミング言語ベースの指令に比べ、ChatGPTは自然言語ベースでの指令が可能になった点において革新的だったが、根本的な「指示待ち」である部分に変化はない。
それを改革するのが自ら行動を行うことができるAIエージェントである、ということだ。

現在あるAIエージェントの例として"GPT Researcher"というオープンソースアプリケーションが紹介されている。
Githubリンクは以下。
github.com

自分としてはAIエージェントがどれほど価値ある存在なのかは実際に自分で体感してみるのが早いと思っているので、本を読むのを中断してこのGPT Researcherを触ってみた方が早いかな…。

データベースとAIエージェントの接続

「自社データベースを管理しているもののそれを活用できている企業は少なく、AIエージェントとデータベースを連携させることで活用コストを軽減できる」という記述があった。確かにAIエージェントが自発的にデータベースから有用な知見を抽出してくれるのであればそれは有意義なことだと思う。
具体的なサービス名としてはAirtableやkintoneというものが挙げられていた。
Airtableとは「便利なクラウドデータベースサービス」のようであり、これそのものはAIエージェントと関係ないが、「Airtable AIエージェント」で検索してみると活用事例のような記事がいくつか出てくる。具体的な活用手法については本には書いていなかったので、踏み込んで理解したい場合は別途自習が必要そうだ。
kintoneの方は、「アプリ開発プラットフォーム」の一種であり、自然言語アプリ開発をできることを謳っているようだ。こちらは月額780/1500円で利用できる比較的わかりやすそうなサービスだったので、一回自分で触ってみるのが早そうだ。

こういう本を読んでいて思ったが、やはり概括的な情報をインプットするよりも、具体的なソースやサービスを自分で触ってみて体感するプロセスを踏まないと実態を理解するのは難しいなと感じる。

第二章 AIエージェントとはなにか

第一章でAIエージェントの便利さについて言及し、読者の興味を引いた所で具体的な構造の説明に入っている。

まず最初に述べられているのは「ChatGPT」を始めとするチャット型AIの能力限界について。ChatGPTはいわゆるプロンプトエンジニアリングにより、複雑で高度なプロンプトを与えることでかなり専門的な質問にも回答を生成できるようになっている。
しかしプロンプトエンジニアリングというハードルが障壁となり、結局利便性に限界が生じてしまう、ということだ。高品質な回答を要求すればするほど、ユーザーが要求されるプロンプト技術が高まり、学習コストも生じていく。これがチャット型AIの活用における課題。

これに対しAIエージェントは、あくまで大規模言語モデルの持つ「汎用的な知的能力」をベースにしながらも、それを自律的なエージェントとして構築するという仕組みになっている。
例として挙げられているのがAutoGPT。
github.com
これもPythonで実装されたオープンソースプロジェクトであり、自分で触ってみることができそうだ。

また、本書の中ではAutoGPTはあくまでブームの火付け役であり、これをベースとして試作された様々なAIエージェント開発の流れそのものが重要だと述べられている。いくつかの事例の紹介。
インターン:指定されたデータベース内のすべてのテーブルの役割を理解し、タスクに応じて自動的にSQLを作成、タスクの完了時にSlackチャンネルで報告。


・Webサイトの自動構築
・BabyAGI:タスク駆動型、というらしい。140行という短いコードで実装されたことが反響を呼んだ。
github.com
最新のBabyAGIであるところのBabyFoxAGIには、自己改善機能が追加されており、完了したタスクについての振り返りをデータベースに保存することで、次のタスクリストを作成する際により良いものを生み出すことができるという仕組みだそうだ。実際どの程度性能向上に寄与しているのか想像するしかないが、ワクワクする。
・Generative Agents:この論文は話題になったのもあり自分も見たことがあったが、本書でも紹介されていた。
arxiv.org
複数のAIエージェント同士の組み合わせによる創発的協働に関する報告。エージェントには初期の記憶が与えられ、それをもとに役割を振る舞う。エージェントが自己の役割(例えば、子を持つ父親であるとか)に従った社会的行動を行なった、という報告だ。
・ChatDev:AIエージェント同士の協働によって架空のソフトウェア開発会社を作ってしまおうという試み。
github.com
これは自分は知らなかったが結構すごいなと衝撃を受けた。Generative Agentsとは違いこちらは具体的な「ゴール」がある上で、最終的には成果物(ソフトウェア)が完成されているようだ。しかも「テスト」というプロセスが含まれているおかげでバグの発見もきっちり行われている。全ての工程が終了し成果物が完成するまでの時間は7分程度だったということだ。これによって作成される成果物がどの程度使えるものなのかは本書を読んでいる上では不明だが、もしそれなりのクオリティのものが生み出せるのであればまさに革命的と思わざるを得ない。

第二章の内容はこれにて終了。AIエージェントという仕組みについては「どうせまともなクオリティのアウトプットができる段階になってなさそうだよな〜」という漠然とした感想を持っていたが、ChatDevを見ると自分の認識が少し甘かったような気がしている。
あと、まだ二章までしか読んでない段階で既に触ってみたいリポジトリがいくつか出てきている。
論文を読んでる時にも思うことなのだが、ある論文を読むために参照されている別の論文を読む必要が出てきたりして、芋づる式にその範囲が無限に広がっていってしまい収拾がつかなくなることがある。これどうにかしないとダメだよな。個人的工夫が必要な領域。

眠くなったので今日はここまで。次回は三章から読んでいく。