Who Runs The Agent — 後編

モデルは、エージェントではない。 AIエージェントは
「誰が」動かしているのか

エージェント性は、モデルを包むコード=ハーネスに宿る。
では、そのループはどこまで自分で書き、
どこから既製品に乗るのか。

2026年6月 読了 約10分 2部作の後編

動かしているのは、
中心のモデルではない。
外側のリングだ。

前編の結論はこうだった。モデルはステートレスな「次の一手関数」で、計画も記憶も持たない。「計画→実行→観察→改善」を回しているのは、モデルを包む外側のコード(ハーネス)のほうだ——と。

すると、実務の問いが立つ。各プロバイダは既に何らかのハーネスを取り入れている。だとすると、自分で組もうとしたとき——ハーネスの上に、さらにハーネスを重ねることになるのか。

この記事が答える問い

ハーネスの上に、
さらにハーネスを重ねることになるのか?

結論を先に言う。重なるかどうかは「どの層に乗るか」で決まる。タスクの種類ではない。三章で解いていく。各章は前の章を前提に進む。

Ch.01

ハーネスの「階段」

重なるのはどの層か

Ch.02

買うか、書くか

判断軸はループの性質

Ch.03

2種のクッション

思考と画像生成の違い

あなたの設計 — 目標・ツール・分岐 ハーネス=ループ(実行・記憶・繰り返し) モデル=次の一手関数

動かしているのは、中心のモデルではなく、外側のリング。

前編 — 「次の単語を選んでいるだけ」の先にあるもの の続き

Chapter 01

ハーネスには
「階段」がある

「ハーネスにハーネス」が本当に起きるのはどの層か。層を三つに分けると、重なる場所と重ならない場所がはっきりする。重なりが起きるのは、このうち一つに乗ったときだけだ。

① モデル本体

エージェント的に振る舞うよう事後学習されている。だがこれは「ループ」ではなく、ループに合う形へ研がれた関数の挙動だ。コードとしてのハーネスではない。

② プロバイダの部品

tool useの形式、構造化出力、停止理由。ループを回す道具を渡しているだけで、ループ自体は回さない。生のMessages APIは、ツール呼び出しを返すが実行はしない。実行も次の往復も、あなたのコードの仕事だ。=生APIなら「あなた=唯一のハーネス」。

③ プロバイダのハーネス製品

コーディングエージェントなどがこれにあたる。ここで初めて「ループが既に存在する」。実行もリトライも繰り返しも、製品の中で回っている。

だから二重ループが現実に起きるのは、③に乗ったときだけだ。①+②に直接乗る(=生API)なら重なりはなく、あなたのループが最初で唯一になる。「プロバイダが既にハーネスを取り入れている」と感じるものの正体は、ほとんどが①と②——ループそのものではなく、ループを支える部品と、ループに合うよう訓練された挙動。だからそれを包んでも、定義上は二重ループにならない。

図 A — 上るほど「自分が書く範囲」が縮む

生API Agent SDK 特化製品 朝刊エージェント Claude Code ← 制御・自由度 手軽さ →
自分が書く範囲 既製で提供される

私はどちらもやっている。朝刊エージェント(Lambda+Claude API)は生API直叩き=自分でハーネスを書いた、重なっていない。Claude Code は Anthropic のハーネスに乗った=自分では書いていない。問題は「重なるか」ではなく「どの高度に乗るか」の選択だ。

第1章の結論。重なるのは特化製品(③)に乗ったときだけ。——では、どの高度に乗るかは、何で決めるのか。

Chapter 02

買うか、書くか

判断軸は「タスクの種類」ではない。そのタスクのループが安定しているか、実行時に形が変わるか——これが乗る/書くを分ける。二つの例が、ちょうど両極になる。

ディープリサーチは、ループの形がどのタスクでもほぼ同じだ(検索→読む→評価→足りなければまた検索→統合)。パターンが安定しているから、特化した完成品にしやすい。だから既製品が成立し、買ってくる選択が合理的になりやすい

ダイナミックワークフローは、「動的」がまさに、固定ループに収まらないという意味だ。何をするかが実行時の状況で変わるなら、それは既製のテンプレに最も入りにくい部分で、定義上あなたの要件に固有になる。汎用基盤の上に、分岐と状態遷移を自分で書くことになる。

図 B — ループの性質が「乗る/書く」を決める

ループが安定(同じ手順の反復) 実行時に形が変わる(動的)
買う・乗る
書く・自作
ディープリサーチ 手順が安定
ダイナミックWF 実行時に変わる

同じ「ハーネス」でも、左に寄るタスクは乗るもの、右に寄るタスクは書くものになる。判断はタスク名ではなく、ループが反復で固まるか/状況で形が変わるかで引く。

トレードオフは単純だ。生API=最大の制御、ただしループ・リトライ・コンテキスト管理を自前で再実装。SDK/フレームワーク=楽だが、相手のループの前提を継承し、自分の要件がずれた瞬間に「相手のデフォルトと戦う」コストが出る。これが"重ねる"の本当の痛みで、ループが二つになって両方をデバッグする羽目になる。

第2章の結論。安定なら乗る、動的なら書く。——では、思考モデルや画像生成で感じる「ワンクッション」は、この階段のどこに足されるのか。じつは別の軸だ。

Chapter 03

「ワンクッション」には
2種類ある

ここは混ざりやすい。思考モデルと画像生成では、増える「クッション」の中身がまったく別ものだ。一方は深さ方向、もう一方は横方向のハンドオフ。

シンキングモデルのクッションは、モデルの内側に増える。出力の前に思考トークンを生成してから答える。だがあなたのループから見れば、依然として1回の関数呼び出しだ。「文脈を入れる→(中で考える)→返ってくる」で、往復の回数は変わらない。ハーネスの段は増えていない。増えたのは関数の中の深さで、外の段数ではない。

画像生成は、層が増えるというより、モードが別系統だ。テキストLLM(次トークン予測)と、画像モデル(多くは拡散=ノイズを消していく。前編で触れた「別系統」)は、そもそも違う仕組み。だから一枚生成するとき、しばしば「LLMが指示を画像モデル用のプロンプトに翻訳→画像モデルが生成」という、別エンジンへの受け渡し(ハンドオフ)が挟まる。境界をまたいでいる。

図 C — 同じ"ワンクッション"でも、軸が直交する

深さ方向(思考モデル)

文脈 関数(1回の呼び出し) 思考… トークン 答え 往復は1回のまま/中が深くなる

横のハンドオフ(画像生成)

あなたの 指示 LLM →翻訳 別系統の境界 拡散 モデル 別エンジンへ受け渡し/境界をまたぐ

左は1つのエンジンの中で深くなる(往復は不変)。右は別エンジンへ渡す(段が増えるのではなく境界をまたぐ)。二つの"クッション"は直交する軸で、シンキングは左、画像生成は右。

画像で勝手が違って感じる理由は、層の数ではなく、この境界にある。指示が一度別の表現に翻訳されるので、言葉のニュアンスがそのまま効かない。フィードバックの形も違う——テキストは「次の一語」を連続で調整できるが、拡散は一枚を一気に作るので途中で軌道を細かく直しにくい。

そして決定的なのが前編の検証可能性だ。コードは自動採点できるが、「いい画像か」は自動で点をつけられない。採点表が無いから、テキストで慣れた「対話で寄せていく」やり方で詰めきれない。

Conclusion

境界は、動く

三章——階段・買う/書く・2種のクッション——に共通する一点がある。境界はどれも固定ではない。プロバイダはハーネスを上へ食い込ませている(サーバ側でのツール実行、組み込みメモリ、SDKでのループ提供)。ネイティブにマルチモーダルなモデルが普及すれば、図Cの翻訳ハンドオフも消えていく方向にある。

つまり「自分で書く範囲」(図Aのテラコッタの帯)は年々縮み、その分だけ"重ね"や"ハンドオフ"の発生面も動く。固定の汎用原則はない。判断は、再発明の手間 vs フレームワークと戦う手間を、タスクごとに天秤にかけるだけだ。

このループは安定か
実行時に形が変わるか

安定なら乗る。動的なら書く。

新しいエージェント案件を見たら、まずこう問う。そして半年ごとに「いま何が既製で降りてきたか」を測り直す。一度引いた線を固定しないこと自体が、原則だ。

前提が動いている注記

この記事の層・製品の地図は、2026年央のスナップショットだ。プロバイダがハーネスを上へ食い込ませる速度は速く、半年で塗り替わりうる。「いま自分で書くしかない範囲」も、来年には製品が降りてきているかもしれない。固有名や境界の位置は前提が動く——だからこそ、結論を「定期的に測り直す」に置いた。

連作: 機械認知 2部作(全2回)

  1. 1.「次の単語を選んでいるだけ」の先にあるもの
  2. 2.AIエージェントは「誰が」動かしているのか(この記事)