AI・機械学習
エージェントはモデルではない
Agent Is Not the Model (code.joejag.com)
要約
この記事は、AIシステムにおける「エージェント」と「モデル」という用語の区別を明確にすることを目的としています。モデルはコアとなる計算機能を提供し、エージェントはそれを活用するためのインターフェースやロジックを提供する役割を担います。この区別を理解することで、AIシステムの改善や問題解決がより効果的に行えるようになります。
全文翻訳
私はしばしば、人々がエージェントとモデルという言葉を同じ意味で使い、Claudeをどちらか一方として参照するのを聞きます。そのため、より正確な会話ができるように、ここで使用している用語に関する簡単なリファレンスを書いておくと役立つと思いました。まず、目指している方向性を示す図から始めましょう。
エージェントシステム
ハーネス
推論サービス
モデル
エージェントシステムはいくつかのレイヤーで構成されています。そのコアはモデルです。Sonnet、Opus、Geminiのようなものです。これらは膨大な量のテキストとデータでトレーニングされており、最終的には、特定の配線方法で結ばれた浮動小数点数の大きな集合体です。
最先端のモデルは、ほとんどの人がローカルでフルスケールで実行するには計算コストが高すぎます。ほとんどのローカルマシンが持つRAMよりもはるかに多くのRAMが必要です。そのため、どこかで実行する必要があります。その場所が推論サービスです。AWS BedrockやAnthropicのAPIのようなサービスです。推論サービスはAPIコールを受け取り、モデルにフィードし、使用状況に応じて料金も追跡します。サービスは推論エンジンでモデルを実行しますが、それはまだかなり基本的なものです。テキストを入力して、テキストを出力します。最初に起動したときのChatGPTがどのように機能したかを考えてみてください。
その対話レイヤー、つまりAPIと対話するための良い方法を提供するものがハーネスと呼ばれます。最も単純な形では、それは単なる軽量ラッパーです。あなたが知っている他のハーネスには、Claude DesktopやClaude CLIがあります。そして、ここで興味深いことが起こります。
MCPやSkillsのような機能はどうでしょうか?それらは主にハーネスレイヤーの一部です。モデルは、MCPサーバーやSkillについて固有に知っているわけではありません。ハーネスが、それにどのようなコンテキストやツールを公開するかを決定します。
したがって、それらをすべてまとめると、エージェントシステムとは、ハーネス、入力を処理するためのツールとロジックのセットであり、推論サービスを呼び出し、それがモデルを実行します。それだけです。それがスタック全体です。
現実世界の例
あなたが使用している可能性のある一般的なツールのスタックの内訳を次に示します。
エージェントシステム | ハーネス | 推論サービス | モデル
---|---|---|---
Claude Desktop | Claude Desktop (UI + MCP + ローカルロジック) | Anthropicの推論サービス | Sonnet / Opus / Haiku
Claude CLI | Claude CLI (ツール解析 + ファイルI/O) | Anthropicの推論サービス | Sonnet / Opus / Haiku
Cursor | Cursorエディタ (コンテキスト組み立て + ツールルーティング) | Cursorの推論レイヤー (様々なプロバイダー) | Sonnet / GPT / Gemini / etc.
ChatGPT | ChatGPT UI (履歴 + オーケストレーション) | OpenAIの推論サービス | GPTモデル
LangChainで構築したカスタムエージェント | あなたのLangChainコード (プロンプトテンプレート + ツール定義) | あなたが選択したプロバイダー (Bedrock, OpenAI, etc.) | あなたが選択したモデル
パターンに注目してください。ハーネスはあなたのロジックが存在する場所です。推論サービスはモデルを実行するホストされたレイヤーです。モデルはテキストを生成する数学的なものです。
同じモデル、例えばSonnetは、完全に異なるハーネスを持つ複数のエージェントシステムで使用できますが、ハーネスが入力の形状を整え、出力を解釈するため、異なる動作をします。
比喩をこねる時間
家を建てていると想像してみましょう。現場には建設クルーがいます。彼らは設計図を取り、資材を注文し、機器を扱い、順序を決定します。彼らは実際に地面に触れることができる唯一の人たちです。コンクリートを流し込んだり、釘を打ったり、そういうことです。しかし、何か問題が発生して、彼らが頭脳を必要とした場合、彼らは建築家に電話します。しかし、彼らは建築家に直接話すことはできません。彼らは自分たちを雇用している会社を通さなければなりません。会社はスケジュールと請求を処理します。そして、建築家は非常にこだわりがあります。あなたは彼に簡単な指示を与え、彼はあなたに紙の設計図を返します。それ以上はありません。
クルーはハーネスです。彼らは外部の世界に実際に触れ、建築家の設計図を行動に変えることができる部分です。会社は推論サービスです。ロジスティクスとコストを処理するゲートウェイです。そして、建築家はモデルです。純粋で、制約があり、狭い仕事に優れています。
したがって、Claude CLIのようなものを使用する場合、CLIはハーネスです。それはAnthropicの推論サービスを使用し、そのサービスはSonnetとOpusのモデルを実行します。
興味深い含意:モデルが賢くなるにつれて、SkillsやMCPのような今日のハーネスロジックの一部は、あまり役に立たなくなる可能性があります。現在ハーネスを構築している方法は、古くならないかもしれません。
結論
用語を明確にしましょう。
モデル - 入力トークンを出力トークンに変換する数学的関数。
推論サービス - モデルを実行し、使用状況を追跡するホストされたサービス。
ハーネス - 入力を整形し、出力を解釈し、外部の世界に触れるロジック。
エージェントシステム - これら3つが連携して動作するもの。
「私のモデルがこれをやっている、あれをやっている」と言うとき、私たちは通常、ハーネスがオーケストレーションしていることについて話しています。モデル自体は、私たちが呼び出すことができる不可解な数学的オブジェクトにすぎません。
そして、その区別は重要です。なぜなら、何か問題が発生した場合、または改善したい場合、どこを見ればよいかを知る必要があるからです。
モデルが悪い答えを出していますか?おそらく、ハーネスから提供されるコンテキストが悪いのでしょう。
遅すぎる、または高すぎるのはなぜですか?それはおそらく推論サービスか、その下のコンピューティングでしょう。
ツールを正しく使用していませんか?ハーネスがそれらを間違った形式でフォーマットしているか、応答を正しく解析していない可能性があります。
レイヤーの名前を付けられると、そのレイヤーを修正できます。それが正確さのポイントです。それは pedantic であることではありません。それは、物事をより速く、より効果的に改善できる能力についてです。
症状 | 可能性のあるレイヤー
---|---
悪い推論/知識 | モデルまたはハーネスから提供されるコンテキスト
コンテキストの欠落 | ハーネス
ツールが利用できない | ハーネス / ツール連携
ツール呼び出しが不正な形式 | ハーネスまたはモデル
ツールが正しく実行されない | ツール / ハーネス
遅い推論 | 推論インフラストラクチャ
高コスト | モデル選択 / 推論サービス
同じモデルが異なる動作をする | ハーネス / コンテキスト / ツーリング