エージェントはモデルではない:AIスタックの4層を正確に理解する
Agent Is Not the Model
AIエージェントとモデルを混同していませんか?この記事は、エージェントシステムを構成する「モデル」「推論サービス」「ハーネス」の3層を明確に定義し、それぞれの役割と具体例を解説します。Claude DesktopやCursorなどの実例を通して、同じモデルでもハーネス次第で動作が変わることを示し、問題が発生した際にどの層を修正すべきかの診断表も提供します。
モデル自体は、私たちが呼び出すことのできる、不可解な数学的オブジェクトに過ぎません。
HNでの議論
34- agentdev001
この投稿は「細かいことを言うつもりはないが...」というコメントで締めくくられているので、細かいことをいくつか言わせてもらう。
「実世界の例」の表の中で、
「Claude Desktop」には現在、Claude、Claude Cowork、Claude Codeという3つのハーネスが含まれている。
「Claude CLI」は、おそらくClaude Code CLIのことを指していると思われる。これは、時々「Claude CLI」と呼ばれる'ant CLI'とは別物だ。
「Cursor」はそのどれでもあり得るが、'Cursor Agents'、'Cursor Cloud Agents'、'Cursor CLI'、そしてvscodeフォークが今何と呼ばれているかは、それぞれ別物だ。このブログ記事の文脈では問題ないかもしれないが、どのことを指しているのかが明記されていない。
「ChatGPT」はChatGPTのウェブインターフェースのように聞こえる。OpenAIのデスクトップアプリは'ChatGPT Desktop'という名前で、現在は'ChatGPT work'と'Codex'(Codex Desktop。TUIではないが、実質的にTUIをラップしてアプリ内蔵ツールを通じて機能を提供している)を内蔵している。ChatGPTのウェブインターフェースのハーネスは、設定やサブスクリプションレベル(リモートサンドボックスなど)によって多少変わると思う。さらに、どの「ChatGPT」製品を使っているかによって利用可能なモデルに違いがある(instant/liveなど、5.6以外のluna/terra/solスイート)。
推論サービスは、より正確には「デフォルトの推論プロバイダー」と言える。
また、この投稿にはAI生成っぽい匂いがする。
- azath92
モデルとエージェントの区別を提供することが目的なら、この例では「エージェントシステム」が重すぎる役割を担っていると思う。
この区別をしようとするときに私が使う有用な拡張は、アプリケーション(cursor)-> 時にはオーケストレーターと再開やチェックポイントなどのQOL機能を含む -> 単一または複数のエージェント(cursor agents)-> 単一または複数のエージェントインスタンスを実行(cursor内の単一エージェント)-> サービスAPI -> モデル、という階層だ。
これは、エージェントが、私たちがエージェントを使うアプリケーションと混同されるのをよく見かけるという混乱に対処するためのもので、記事が解こうとしているエージェントとモデルの混同とは別のものだ。
- 6keZbCECT2uB
面白いのは、claude codeでは「エージェント」を設定でき、それはプロンプトプリセットと設定の一部で構成されていることだ。あるいは、サブエージェントは、コンテキストウィンドウの内容が異なる(多かれ少なかれフォーク)ことを除けば、フォアグラウンドエージェント(通常オーケストレーターと呼ばれる)と設定上区別がつかないことがある。
私の意見では、広く使われていて曖昧さのない用語があるなら、それを使うべきだ(ハーネス、モデル)。説明が必要な曖昧な用語があるなら、使わないようにすべきだ。言語はコミュニケーションのためのものだから。
- yaaaaam
エージェントは、一般的には、誰か/何かの代わりにタスクを実行するもののことだ。
- rwoerz
> エージェントシステムはいくつかの層で構成されている。
なぜ「層」なのか?マルチエージェントシステム(MAS)[1]の構成要素は「エージェント」と呼ばれている。ちなみに、ソフトウェア工学では提喩的な意味の拡散は珍しくない。