ハーネスは、1 回のモデル呼び出しではなく、エージェントとして振る舞わせるループです。
ハーネスは、モデルの周囲でターンごとに行う作業を担います。プロンプトの組み立て、メモリの読み込み、ツールの選択、ツール結果の処理、応答のストリーミング、メッセージの永続化、続行するか止めるかの判断です。
このループは Agents SDK ランタイム の上に自前で構築できます。Project Think のような意見付きハーネスを使うこともできます。
ハーネスは Agents SDK ランタイムの上に載ります。
- ランタイム は、エージェントに耐久性のある基盤を提供します。
Agentクラス、状態、セッション、ルーティング、WebSockets、スケジューリング、fibers、オブザーバビリティ です。 - ハーネス は、エージェントの振る舞いを提供します。モデル呼び出し、プロンプト構築、ツール選択、ストリーム処理、メモリ戦略、ライフサイクルフックです。
ランタイムは「このエージェントはどこで動き、どう耐久性を保つか」に答えます。ハーネスは「各ターンでエージェントは何をするか」に答えます。
モデル呼び出し、メッセージ形式、ツールループ、UI プロトコルを完全に制御したいときは、自前のハーネスを構築します。Agents SDK の低レベル API を直接組み合わせる場合に適しています。
メモリ、ワークスペースツール、ストリーミング、ライフサイクルフック、サブエージェント RPC、耐久性のあるチャット復旧のデフォルトが欲しいときは、Project Think を使います。
Project Think
組み込みツール、永続メモリ、ライフサイクルフック、ストリーミング、サブエージェント RPC を備えた、意見付きチャットエージェントハーネスです。
ハーネスは通常、次を担います。
- プロンプト構築 — システムプロンプト、メモリ、取得したコンテキスト、ターンごとの指示。
- モデル実行 — Workers AI、OpenAI、Anthropic、Gemini、その他プロバイダーへの呼び出し。
- ツールのオーケストレーション — サーバーツール、クライアントツール、MCP ツール、承認フロー、ツール結果後の継続。
- メッセージの永続化 — ユーザー、アシスタント、ツールメッセージの保存と再再生。
- ストリーミングと復旧 — クライアントへの応答ストリームと、切断や Durable Object の退避後の再開。
- 拡張ポイント — ターン、ステップ、ツール呼び出し、復旧イベントの前後フック。
Agents SDK ランタイム
Agent クラスの上に、自前のハーネスを直接構築します。
セッション
ターンをまたいで会話コンテキストとメモリを保存します。
fibers による耐久実行
Durable Object の退避後も、長時間のエージェント処理を復旧します。