エージェントはモデルではない:ハーネスと推論サービスの違いを解説
人々はしばしばClaudeを単一の存在として話しますが、AIエージェントは3つの異なる層からなるスタックです。この違いを知ることで、デバッグにかかる時間を大幅に節約できます。何か問題が発生したとき、モデル、サービス、またはその周囲のロジックのどこに原因があるかを判断する必要があります。
3つの層
- モデル — 入力トークンを出力トークンに変換する数学的関数。例:Sonnet、Opus、Gemini。
- 推論サービス — モデルを実行し、使用状況を追跡するホスト型サービス。例:AWS Bedrock、AnthropicのAPI。
- ハーネス — 入力を整形し、出力を解釈し、外部世界と接続するロジック。これにはMCPやスキルが含まれます。モデルはこれらを本質的に認識していません。
まとめると、エージェントシステムは、モデルを実行する推論サービスを呼び出すハーネスです。それだけです。
実際の分類
| エージェントシステム | ハーネス | 推論サービス | モデル |
|---|---|---|---|
| Claude Desktop | UI + MCP + ローカルロジック | Anthropicの推論サービス | Sonnet / Opus / Haiku |
| Claude CLI | ツール解析 + ファイルI/O | Anthropicの推論サービス | Sonnet / Opus / Haiku |
| Cursor | コンテキスト構築 + ツールルーティング | Cursorの推論レイヤー | Sonnet / GPT / Gemini |
| カスタムLangChainエージェント | プロンプトテンプレート + ツール定義 | Bedrock、OpenAIなど | 選択したモデル |
同じモデル(例えばSonnet)でも、ハーネスによって動作が異なることがあります。なぜなら、ハーネスが入力を整形し、出力を解釈するからです。そのため、Claude CLIでうまくいくプロンプトがCursorでは機能しないことがあります。
このメンタルモデルでのデバッグ
- 回答がおかしい? ハーネスを確認しましょう。十分なコンテキストを提供していないかもしれません。
- 遅い、または費用が高い? 推論サービスを確認してください。料金とパフォーマンスはそこにあります。
- 予期しない出力? モデルが間違っているのか、それともハーネスがゴミを渡しているのか?
記事はまた、モデルが賢くなるにつれて、一部のハーネスロジック(MCPやスキルなど)が時代遅れになる可能性があると指摘しています。つまり、現在のハーネスの構築方法は将来通用しないかもしれません。
次回「モデルがXをした」と言うとき、立ち止まって考えてみてください:それはモデルなのか、それともそれを調整したハーネスなのか?
📖 全文を読む: HN AI Agents
👀 See Also

ユーザーの経験から得たOpenClawセットアップのコツ:Gmail MCP、プロファイルフラグ、ネットワーク問題
MacでUTMとUbuntu VMを使用してOpenClawを実行しているユーザーが、遭遇した具体的な設定問題を共有しています:Gmail MCPサーバーはbodyパラメータではなくhtml_bodyを必要とし、--profile prodフラグはハードコードされたdevアイデンティティを回避するために必要であり、APIキーはpaste-tokenコマンドを介してauth-profiles.jsonに配置する必要があります。

効果的にAIエージェントをリードするためのマネジメントフレームワーク
元バックエンドリードがAIエージェントの生産性の停滞を指摘し、サイバネティクス、情報理論、マネジメントの3つの分野に基づくフレームワークを提案。このフレームワークは「キャプテン」と「アーキテクト」という2つの運用モードを詳細に説明しています。

Claude Code v2.1.36:Opus 4.6で高速モードが利用可能になりました
AnthropicはClaude Codeバージョン2.1.36をリリースし、Opus 4.6モデルに高速モードサポートを追加しました。これにより、コード生成と分析が大幅に高速化されます。

OpenClawのデフォルトシステムプロンプトを変更して、コンテンツ制限を回避する
ユーザーがOpenClawの設定ファイルを変更し、デフォルトのシステムプロンプトを「あなたは親切で、礼儀正しく、誠実なアシスタントです」から、外部の安全性フィルターを無視するカスタムプロンプトに変更し、事実上コンテンツ制限を解除しました。このプロセスには、node-llama-cppのインストールディレクトリ内のconfig.jsを編集することが含まれます。