Quick answer: エージェントの請求額をもっとも手早く膨らませる方法は、エージェントにエージェントを生成させることです。一つのユーザーリクエストが木構造になり、その木には自然な大きさがありません。だから DeepSeek Harness は委譲を単なる機能ではなく、明示的な限界を伴うシームとして扱います。 サブエージェントは組み込みではなくシーム 委譲は ctx.subagents...

DeepSeek Harnessのサブエージェント:コストを掛け算する委譲

Updated August 16, 2026 · first published August 16, 2026

エージェントの請求額をもっとも手早く膨らませる方法は、エージェントにエージェントを生成させることです。一つのユーザーリクエストが木構造になり、その木には自然な大きさがありません。だから DeepSeek Harness は委譲を単なる機能ではなく、明示的な限界を伴うシームとして扱います。

サブエージェントは組み込みではなくシーム

委譲は ctx.subagents を通ります。実装がちょうど一つに定まるシェル実行器とは違い、サブエージェントのプロバイダは名前付きで登録され、複数が共存できます。ドキュメントは六つの転送方式を挙げています。インプロセス生成とフォーク(親のコンテキストを通じた通常のエージェント)、リモート配備用の ACP ブリッジ、Codex、Claude Code、そして SDK ベースの実装です。

コストの観点では、子の値段はそれを生成したプロバイダ次第だということになります。インプロセスでフォークされたエージェントと ACP ブリッジ越しに起動されたリモートエージェントは、呼び出し側のコードでは同じに見えて、請求はまったく別物です。

二つの委譲モード、二つのコスト特性

モードコスト特性
ワンショット子を生成し、プロンプトを送り、結果を待ち、破棄する有界で、親のターンに帰属できる
継続可能常駐アクティベーションを持つ永続的なバックグラウンドセッション開放的で、ターンをまたいで累積する

ワンショットは、終端結果の Promise を伴う実行ハンドルに解決されます。継続可能な子はより重く、継続マネージャがアイデンティティを予約し、子を構成し、すべてのターンを子のインボックス経由で順序付けます。プロバイダが提供するのは初期生成メタデータだけです。アクティベーションには三つの状態があります。実行中、待機中(静止しているが未完了の子アクティベーションを保持)、そして確定です。生きたアクティベーションがない状態でメッセージが届くと、永続化されたセッションからのコールドレジュームが起きます。

コールドレジュームは、皆が忘れる費目です。状態はログから再構成されるため、入力トークンはログの大きさに比例します。たまにしか話しかけない長寿命の子は、常時走っている子よりメッセージあたり高くつくことがあります。

能力は静かにではなく、大きな音で失敗する

ハーネスは要求された能力をプロバイダに照らして検証し、黙って無視するのではなく型付きエラーで拒否します。起動時の能力は出力スキーマ、深さ制限、ツールフィルタ、ペルソナをカバーし、リクエストオプションと一対一で対応します。プロバイダが対応しない指定は起動時に判明し、請求書で判明することはありません。

深さには上限があり、その上限は迂回できない

委譲の深さはセッションヘッダに永続化され、ランタイムのフィールドは大きい方の値を追跡します。したがってコールドレジュームで深さを下げることはできません。導出された深さが maxDepth または安全整数の範囲を超える場合、起動は拒否されます。

三つの子を生成し、その各々がさらに三つを生成する親は、一つのユーザーリクエストを十三のエージェントに変えています。深さ上限は、自分でサイズを決めたファンアウトと、後から発見したファンアウトとの違いです。

発見は安く、配送は権威を持つ

listChildren() はライブを優先したコーパスを、三層の高速化(ウォーターマークキャッシュ、次に射影チェックポイント、次に永続層の検査)で返します。listDescendants() は先行順で走査し、親と深さの位置を付け足します。どちらもエージェントレジストリやアクティベーション、プロバイダを参照せず、メッセージ配送が権威であり続けます。コスト帰属の観点では、木をいつでも安く列挙できるということです。

結果は停止理由を伴う

出力は最後の非空アシスタントメッセージ、あるいは蓄積されたテキストストリームです。任意の構造化出力は要求スキーマに照らして検証されます。stopReason はマージ拡張可能なユニオンで、completed、aborted、error、max-tokens、refusal を取ります。completed 以外はすべて部分出力を意味し、エラーのツール結果へ写像されます。支払い済みで、未完了です。

測るべきもの

  1. 親ターンあたりの子の数と、ユーザーリクエストあたりの子孫の数。
  2. 観測された最大深さと、設定された上限の対比。
  3. コールドレジュームされた継続可能な子の割合と、再開時のログサイズ。
  4. 停止理由の分布。max-tokens や error の比率が高ければ、それは支払い済みの未完了作業です。

Related


Want this applied to your own LLM spend? FinOps LLM runs a free audit of your AI costs and shows where the savings are. Book free audit →

Back to research