見出し画像

AIハーネス設計のSOTA構造(2026)

思考OSの次は、運用を回すOSである

これまで私は、AIをどう賢く使うかよりも、AIと人の思考をどう同期させるかに関心を向けてきた。
タスクをどう定義するか。
曖昧な依頼をどう仕様へ落とすか。
AIの応答をどう自分の思考の延長へ変えるか。
その延長で、私はずっと「思考OS」という言い方をしてきた。

ただ、2026年のいま、現場で本当に差がつき始めているのは、その一段下の層だと感じている。
AIがどう考えるかではない。
AIが、どの状態を持ち、どこで止まり、どう再開し、何を成果物として残し、誰の承認を通り、どのログを残し、どう改善されながら回り続けるか。その設計である。

主要ベンダの公式ドキュメントを並べると、この変化はかなりはっきり見える。

LangChain は agent frameworks / agent runtimes / agent harnesses を明示的に分離して整理し、Deep Agents を harness として位置づけている。

OpenAI は AgentKit を build / deploy / optimize という三分割で打ち出し、最適化の欄に datasets、trace grading、prompt optimizer を並べている。

Anthropic の Claude Agent SDK は、Claude Code を支える tools、agent loop、context management をそのまま SDK 化したものだと説明している。

さらに LangSmith は observability、evaluation、deployment を一体で扱うと明示している。つまり、2026年の中心は、単体モデルの知能比較ではなく、運用レイヤーの分離と再統合へ移っている。

私はこの変化を、思考OSの次に来るものとして捉えたい。
思考OSが解いてきたのは、AIに何を考えさせるかだった。
これから主戦場になるのは、その思考をどこに置き、どう引き継ぎ、どう検証し、どう改善するかである。
その運用機構を、私は AIハーネス と呼ぶ。

本稿は、「AIハーネス実装編」全体の見取り図にあたる。
ここで扱っているのは、個別ツールの使い方ではなく、AIを会話から仕事へ移したとき、何が設計論点として立ち上がるのかという全体像である。

後に本流骨格として整理する 4回路+証跡基盤 で見ると、本稿はその各論に先立つ上位の地図にあたる。
状態、制御、接続、評価、証跡という論点が、なぜ分けて設計される必要があるのか。なぜモデル単体の賢さだけでは実務運用が成立しないのか。そうした全体の構図を先に掴むための回である。

この先の #2〜 #5 では、ここで俯瞰した論点を、各回路ごとの実装課題として順に掘っていく。
つまり本稿は、実装編の入口であると同時に、後続の各論を読むための座標軸でもある。



第1章 なぜ、まだ多くのAI論は浅いのか

AIの議論は、いまでもしばしば三つの話に収束する。
どのモデルが賢いか。
どのプロンプトが強いか。
エージェントを何体に分けるか。
もちろん、どれも重要だ。だが、これらは主に 認知の入口 の話であって、運用の継続性 の話ではない。

実務で本当に苦しくなるのは、そこではない。
長いタスクの途中で文脈が膨らみ、前提が抜ける。
サブタスクは走ったのに、なぜその判断になったのか後から追えない。
ファイル編集や外部操作はできるが、承認境界が曖昧で怖い。
セッションを跨ぐと同じ説明を何度もやり直す。
出力はあるが、次のAIや次の人が引き継げる状態になっていない。
つまり壊れるのは、賢さより先に、継続性、可観測性、境界管理、状態設計 なのである。

この違いは、公式ドキュメントの力点を見ると分かりやすい。
たとえば LangGraph は、durable execution を前面に出し、失敗をまたいで長時間走れること、途中で止めて人の入力を待てること、短期記憶と長期記憶を含む stateful agent を作れることを核に置いている。interrupt は単なる UI 用の停止ではなく、永続化レイヤーに状態を保存した上で無期限に待機し、あとで正確に再開する仕組みとして定義されている。これは「AIが賢いか」よりも先に、「仕事が途中で死なないか」を設計しているということだ。

可観測性も同じだ。
OpenAI の Agents SDK は tracing を built-in で持ち、LLM の生成、tool call、handoff、guardrail、さらには custom event まで含む実行記録を集める。しかも tracing はデフォルトで有効になっている。LangSmith も、trace と run を基本単位にして、複数のトレースを project に束ね、マルチターン会話は thread としてつなぐ考え方を前提にしている。ここで見えてくるのは、エージェント開発がすでに「返答を得る作業」ではなく、「実行を観測し、比較し、改善する運用」へ移っているという事実である。

文脈管理も、もはやプロンプト職人芸ではない。
Anthropic は compaction を、長時間会話や agentic workflow のための推奨戦略として説明している。これは文脈上限に近づくと古い会話を自動要約し、古くなった情報を圧縮して、現在必要な焦点を保つ仕組みだ。prompt caching も、プロンプトの特定プレフィックスから再開できるようにして、反復タスクの時間とコストを削る前提機能として扱われている。Claude Code 自身も、古い tool output を先に掃除し、必要なら会話を要約する。さらに、永続ルールは会話履歴に頼らず CLAUDE.md に置けと明示している。ここで起きているのは、忘却をプロンプトの弱さとして片づけるのではなく、文脈をどう圧縮し、どこに恒久ルールを逃がし、何を fresh context に切り出すか を設計対象にした、という転換である。

境界管理も同様だ。
Anthropic の permission フローを見ると、tool 実行の可否は hooks、deny rules、permission mode、allow rules、canUseTool callback の順に評価される。subagent はそれぞれ独立した context window、個別の tool access、独立した permissions を持つ。hooks は Claude Code のライフサイクル上の特定地点で自動実行され、コマンドのブロック、通知、文脈再注入、監査などに使える。つまり「AIが暴走した」という現象の多くは、モデルの気分ではなく、承認経路、権限設計、フック配置の不備 として読み替えるべきなのである。

ここで、私は一つ言い切っておきたい。
多くのAI論が浅く見えるのは、モデルやプロンプトを軽視しているからではない。
問題を 認知の表面 だけで説明し、運用の背面 を見ていないからだ。

現場で頻発する症状を、少し言い換えてみる。

  • 「AIが忘れる」
    それは memory 設計、compaction、persistent rule、artifact 化の失敗かもしれない。

  • 「AIが危ない」
    それは permissions、hooks、guardrails、approval checkpoint の不足かもしれない。

  • 「AIが高い、遅い」
    それは prompt caching、offloading、summarization、tool catalog 設計の問題かもしれない。

  • 「AIが再現できない」
    それは tracing、thread、run、dataset、eval の欠如かもしれない。

つまり、いま問うべきなのは、
「どのモデルが一番賢いか」だけではない。
「どの運用機構なら、AIが継続して働けるか」である。

この視点に立つと、思考OSの次に必要なものは自然に見えてくる。
思考をうまく起動するだけでは足りない。
その思考を、途中で失わず、暴走させず、引き継ぎ可能な形にして、改善サイクルに接続しなければならない。
そのための器具が、ハーネスである。


第2章 2026年の分水嶺 Framework / Runtime / Harness の分離

2026年の分水嶺は、また新しい「すごいエージェント」が出てきたことではない。
どの層の問題を、どの道具が解いているか を、ようやく整理し始めたことだ。
少なくとも LangChain 陣営は、これを framework、runtime、harness という三層でかなり明確に言語化している。
framework は abstraction と integration、runtime は durable execution・streaming・human-in-the-loop・persistence、harness は predefined tools・prompts・subagents を含む batteries included の運用機構として整理されている。
しかも同じ整理の中で、OpenAI Agents SDK は framework 側、LangGraph は runtime 側、Claude Agent SDK や Deep Agents は harness 側に置かれている。

この三分割は、単なる分類遊びではない。
どこで設計の責任が変わるかを示す、かなり実務的な地図である。

まず Framework は、エージェントをどう表現するかの層だ。
モデル、ツール、エージェントループ、ミドルウェア、構造化出力のような抽象を提供し、「まず動くものを組む」ための足場になる。
OpenAI の Agents SDK が agent を「instructions、tools、handoffs、guardrails、structured outputs などで構成された LLM」と説明しているのは、まさにこの層の発想である。
ここで問われるのは、エージェントをどう宣言するか、どう協調させるか、どうコードとして表現するかだ。Framework は、思考をコードへ下ろすための文法に近い。

次に Runtime は、それをどう走らせ続けるかの層である。
エージェントが一回で終わる短い対話なら、framework だけでも何とかなる。だが、複数ターン、複数ツール、失敗からの再開、人の承認待ち、長時間タスク、複数スレッドの状態管理が絡むと、runtime がないとすぐ破綻する。
LangGraph が durable execution、persistence、interrupts、thread-level state を中核に置いているのはそのためだ。Runtime の仕事は、AIの賢さを上げることではない。AIの仕事を、途中で死なずに続けられるプロセスへ変えることである。

そして Harness は、その runtime の上に載る、より現場寄りの運用機構である。
ここが一番誤解されやすい。
ハーネスは、単なる「高機能フレームワーク」ではない。
エージェントが実際に仕事をするために必要な、計画、ファイル入出力、サブエージェント委譲、文脈圧縮、長期記憶、コード実行、人間承認といった 働くための器具一式 である。

Deep Agents のドキュメントは、この点をかなり率直に書いている。
Harness capabilities として、planning capabilities、virtual filesystem、task delegation、context and token management、code execution、human-in-the-loop、skills、memory を並べている。しかも planning は write_todos による構造化タスク管理、subagent は context isolation と parallel execution を狙い、runtime context では large tool input/result の offloading、summarization、long-term memory まで備える。
要するに、ハーネスとは「賢い一発回答器」を作るためのものではなく、長く働く作業主体を壊れにくくするための設計 なのだ。

Anthropic の Claude Agent SDK と Claude Code も、実態としてはかなりこのハーネス側に近い。
Agent SDK 自体が、Claude Code を支える tools、agent loop、context management をライブラリ化したものだと説明されている。subagent は独立した context window、専用 tool access、独立 permissions を持ち、hooks はライフサイクルの要所で自動実行される。
Claude Code の説明でも、subagent は main conversation と分離された fresh context を持ち、完了時には summary を返すとされている。ここで主役なのは、推論そのものより、文脈を汚さず、役割を分け、境界を守り、回し続けること である。

この三層を、私は次のように理解している。

Framework = どう表現するか
Runtime   = どう走らせ続けるか
Harness   = どう壊さず働かせるか

さらに2026年は、これに二つの横断層が強く乗ってきた。

一つは 接続面 だ。
MCP は、LLM アプリケーションと外部データ源・ツールをつなぐ標準プロトコルとして、tools、resources、prompts を基本能力に据えている。さらに MCP Apps では、tool description から interactive UI resource を参照し、ホストがその UI を会話中にレンダリングする拡張まで出てきた。つまり接続は、単なる function calling ではなく、データ・行為・UI をまたぐ共通面 へ広がっている。

もう一つは 観測と改善 だ。
OpenAI は AgentKit を build / deploy / optimize の三位一体で設計し、optimize の中に evals、datasets、trace grading、prompt optimizer を前提機能として置いている。
LangSmith も observability、evaluation、deployment を一体で提供し、しかも self-hosted では tracing と evaluation を UI / API ごと持ち込める。ここで重要なのは、評価がもはや後付けの QA ではなく、エージェント基盤そのものの一部になっていることだ。
つまり、framework / runtime / harness を分けて終わりではない。それらの上に、trace と eval が常時かぶさる のが2026年の実装形である。

ここまで来ると、見えてくる構図はかなり明快だ。

Intent / Policy
    ↓
Spec / Plan
    ↓
Framework
    ↓
Runtime
    ↓
Harness
    ↓
Artifacts / Traces / Evals

この図が言いたいのは、一つだけである。
いま主戦場なのは、「単体エージェントをどう賢くするか」ではない。
複数の層をどう切り分け、どう接続し、どう観測しながら改善するか である。

だから私は、2026年のAI設計を語るとき、もう「プロンプト設計」だけでは足りないと思っている。
必要なのは、Framework 設計 でも、Runtime 設計 でも、Harness 設計 でもある。
そして、その全部をまたいで回る Eval と Observability の設計 である。

この分離が見えてはじめて、次の章で扱う本題に入れる。
ハーネスとは結局、どんな部品でできているのか。
何を最小単位として持つべきで、どこから先が贅沢品なのか。
次章では、その構造を七つの層に分けて解体する。


ここから先は

37,366字 / 1画像
この記事のみ ¥ 1,980
Amazon Payで支払うと最大2%還元のチャンス! 9/30まで

PromptOps Labへようこそ🧰 ここは、AIを「どう使うか」だけでなく、 「曖昧な依頼をど…

スタンダード(PromptOps)

¥980 / 月

この記事が気に入ったらチップで応援してみませんか?