AIエージェントのメモ
AIエージェントという言葉をよく聞くようになってきたので、自分なりに色々関連情報の整理です。あくまで個人的に(なるべく)フラットに書いてます。
AIエージェントの定義
そもそもAIエージェントって何?というところですが、結論よく分かりませんでした。定義ははっきり定まっていないのと、生成AIの盛り上がりとも重なり、バズワード化しているので、色々な人がポジショントーク的に、自分にとって都合の良いAIエージェントを定義しているのかなと感じました。ここでは、いくつか代表的な定義を紹介しておきます。
Artificial Intelligence: A Modern Approachによる定義だと「エージェントとは、環境を認識し、目標を達成するために自律的に行動する存在」と書かれています。よく紹介される定義ですが、これだけだとよく分からないですね。昔からあるエージェントの定義なので、強化学習とかの文脈で使われる、環境と相互作用するエージェントととらえるとしっくりするかもしれません。
Agent Design Pattern Catalogue: A Collection of Architectural Patterns for Foundation Model based Agentsでは、AIエージェントには18パターンあると書いてあります。いくつかパターンをみてみましたが「少し複雑なことをしたらエージェントということ?」と思いました。
各社がポジション取るために発信しているAIエージェントの定義はいくつかあります。Anthropicは
Building effective agentsという記事を公開しています。
OpenAIは、以下のような5段階のAIのレベルを定義していて3段階目にエージェントを定義しています。
- チャットボット:会話能力を持つAI
- 推論者:人間レベルの問題解決能力を持つAI
- エージェント:ユーザーに代わってアクションを取れるシステム
- イノベーター:発明や発見を支援できるAI
- 組織:組織全体の仕事を行えるAI
OpenAIがAIのレベルを5段階で評価、現在レベル1より引用
個人的には「面倒なことをやってくれるAI」は、みんなAIエージェントでいいんじゃないかなと思ったりしました。つまり、面倒なことはChatGPTにやらせようは、AIエージェントの本といっても過言ではないかもしれません(これが、ポジショントークってやつですね)。
AIエージェントの定義や概要についてかかれた情報
参考リンクです。
AIエージェントの例
以下具体的な、よくAIエージェントと呼ばれるようなものの具体例です。
AIエージェント
マルチエージェント
複数のエージェントがいると、AIエージェントっぽくはありますね。
AIサイエンティスト
PC操作
OSSのbrowser-use、Anthropicのcomputer use、OpenAIのOperatorなどあります。
browser-useを試してみた例です。
コーディング
コーディングするAIもエージェントと言われたりする気がします。自分も、最近はVS Codeエディタ拡張のClineをよく使っています。
関連論文
書籍
エージェントに関して、自分が読んだ本です。
LangChainとLangGraphによるRAG・AIエージェント[実践]入門 エンジニア選書
その仕事、AIエージェントがやっておきました。 ――ChatGPTの次に来る自律型AI革命
まとめ
AIエージェントについて気になって、色々調べてまとめていたのですが、結局よくわからなかったという内容でした。
エンジニアリング的には、結局重要なのは、どの技術でもそうですが「便利かどうか」「使えるか使えないか」ではないかなと思います。なので、個人的にはAIエージェントは「面倒なことをやってくれるいい感じのAI」と言い続けていきたいと思います。
関連記事
Discussion