AIエージェントの記事を読むと「◯◯エンジニアリング」が次々に出てきます。Prompt、Context、Loop、Harness、Graph。どれも「次はこれだ」と書いてあります。
しかし5つは競合していません。1つのシステムに重なった、別々の設計関心です。
この記事は、筆者が過去に書いた5本の解説記事を並べ直し、それぞれの特徴と違いを整理します。結論を先に言うと、5つに共通するのは「目的達成のためにLLMをどう制御するか」という問いであり、違いは制御の粒度と主な設計対象の2軸で説明できます。
整理日: 2026-08-18
対象: Prompt / Context / Loop / AI Harness / Graph Engineering の5概念
用語の関係だけ知りたい方は「概要」と「統一軸」を読んでください。自分の実装がどの層にいるか判定したい方は「3階層のハーネス」から「外側の構造例」を読んでください。この整理を疑いたい方は「反証・限界・適用条件」から読んでください。
概要
この記事の結論
| 問い | 答え |
|---|---|
| 5つは競合するか | 競合しません。1つのシステムに重なった別々の設計関心です |
| 共通する問いは何か | 目的達成のためにLLMをどう制御するか |
| 何が違うのか | 制御の粒度(1回の呼び出し → 複数の実行単位)と、主な設計対象(指示・情報・反復・実行基盤・トポロジー)の2軸 |
| 実務でどう使うか | 5つは1つのシステムに同居します。1つを選ぶのではなく、いま扱っている制御をどの層に置くかを決めます |
扱う5つの概念
それぞれの詳細は元記事に譲り、この記事は関係の整理に集中します。
| 概念 | 設計対象 | 元記事 |
|---|---|---|
| Prompt Engineering | 1回のモデル呼び出しへ与える指示 | プロンプトエンジニアリングの進化 |
| Context Engineering | モデルが各ターンで読む情報、圧縮、記憶 | Context Engineering入門 |
| Loop Engineering | エージェントを反復させる制御 | Loop Engineering入門 |
| AI Harness Engineering | エージェントを包む実行層 | AI Harness Engineering入門 |
| Graph Engineering | 実行単位間の依存、遷移、合流、承認 | Graph Engineering入門 |
全体像
先に地図を示します。以降の章で、この図の各要素を順に説明します。

1つの外ハーネスが複数の実行単位(中+内+モデル)を運行する。層と層の間でループが回り、実行単位どうしのつながりがグラフを成す。
図の要素は次のとおりです。
| 図の要素 | 実体 |
|---|---|
| 内ハーネス | コーディングエージェント本体(ランタイム、tool 実行、カスタマイズの差し込み口) |
| 中ハーネス | エージェントへ差し込む資産(規約、手順、検査、接続先)。ユーザーが書き、エージェントをまたいで持ち運べる |
| 外ハーネス | 起動、成否判定、再試行、承認の基盤。エージェントの外にある |
| 内・中・外ループ | 層と層の間で回る反復。内ループは、モデルと内ハーネスの往復 中ループは、内ハーネスと中ハーネスの間のゴール判定と再指示 外ループは、中ハーネスと外ハーネスの間の起動と終了コード判定 |
| プロンプト / コンテキスト | 外ハーネスからモデルまでを貫いて、最終的にモデルへ入るもの |
| グラフ | 外ハーネスが持つ実行の地図。 実行単位(中+内+モデル)を依存・分岐・合流でつなぎます。グラフは、外ハーネスが運行するもの |
読み方は2つです。
- ハーネスは器、ループは器の間の動きです。 外が起動し、中が選択肢を制約し、内でモデルが選びます。成果と終了コードは逆に、内から外へ返ります
- Context Engineering だけは、どの層にも属しません。 全層を貫いて、最終的にモデルへ入る情報を決めます。理由は「Context Engineering は層をまたぐ」で説明します
なぜ混乱するのか
用語が5つあることが問題なのではありません。同じ語が出典によって別の層を指していることが問題です。3つの具体例を示します。
1. Loop Engineering は出典によって外と内が逆になる
これが最も混乱を生みます。
| 出典 | Loop Engineering の定義 | 指している層 |
|---|---|---|
| Loop Engineering の解説記事(Addy Osmani らの系譜) | エージェントへ指示するシステムそのものを設計する。人間はスケジュールと承認ゲートにだけ関与する | 外側 |
| Graph Engineering の解説記事にある比較表 | 1エージェントの think-act-observe、tool、停止条件、compaction | 内側 |
前者では Loop Engineering は「コンテキストとプロンプトを包含する最上位層」と位置づけられます。後者では「graph の node の内部で継続するもの」と位置づけられます。
同じ「Loop Engineering」という語が、正反対の層を指している。
どちらも間違っていません。 ループという語が、実行単位の異なる2つの反復を同時に指しているだけです。この記事が loop を3段階に割るのは、この曖昧さを解消するためです。
2. harness が指す範囲は、出典と日常用法でズレる
AI Harness Engineering の論文(arXiv:2605.13357)は、harness を次のように定義しています。
- プロンプトでもエージェントフレームワークでもない
- foundation-model agent を包む 実行層(runtime substrate) である
- context / tools / project memory / task state / observability / failure attribution / verification / permissions を媒介する11の責務を持つ
- 成熟度は H0(タスク記述とファイルのみ)から H3(観測と検証まで)の4段階
境界の引き方が2箇所あります。
| 境界 | 論文の扱い |
|---|---|
| Foundation Model | harness の外。harness が包む対象であり、harness の一部ではない |
| DevOps / プラットフォームエンジニアリング | harness の外。人間のワークフロー向け基盤として明示的に区別される |
つまり論文の harness は、モデル自体も、CIやスケジューラのような起動側も含みません。その中間にある「モデルへの入力を組み立て、道具を登録し、権限を切り、記録を取る層」を指しています。
一方、日常の会話で「ハーネス」と言うとき、多くの場合はエージェントを起動して回す仕組み全体を指します。論文の定義のほうが狭い、というズレがここにあります。
3. Context Engineering はすべてを含むように読める
Context Engineering の解説は「モデルに渡すものすべてを設計する」と説明されます。この定義は正しいのですが、範囲が広すぎて他の概念との境界が消えます。
実際、モデルを呼び出す経路に限れば、ループもハーネスもグラフも、最終的にモデルへ渡る情報に影響します。だから「全部コンテキストエンジニアリングだ」という主張は成立してしまいます。成立してしまうがゆえに、設計の役に立ちません。
混乱の構造
3つの例に共通するのは、語が指す実行単位が明示されていないことです。
| 混乱の原因 | 具体例 |
|---|---|
| 同じ語が別の実行単位を指す | Loop が「1ターン」と「1プロセス」の両方を指す |
| 出典の定義範囲が限定的 | harness は実行層のみで、起動側を含まない |
| 定義が広すぎて境界が消える | Context がすべてを包含してしまう |
したがって、整理に必要なのは新しい用語ではありません。実行単位を明示する軸です。
統一軸 — 制御の粒度と設計対象
5つの概念は、次の2軸で区別できます。1つは順序を持つ尺度、もう1つは種類です。
軸1: 制御の粒度
何を1つの制御単位として扱うかです。5段階に分けます。
- 1回のモデル呼び出し
- 1ターン(呼び出しと観測の1往復)
- 1セッション(1つのゴールに向かう連続した文脈)
- 1プロセス実行(起動から終了コードを返すまで)
- 複数の実行単位(独立に起動、失敗、再開しうるものの集合)
軸2: 主な設計対象
粒度が近くても、主に何を設計しているかが違えば別の概念です。
| 設計対象 | 意味 |
|---|---|
| 指示 | モデルに何をどう伝えるか |
| 情報 | どの情報を読ませ、どれを捨てるか |
| 反復 | 何回繰り返し、いつ止めるか |
| 実行基盤 | 何を使わせ、何を禁じ、何を記録するか |
| トポロジー | 何の後に何が動き、どこで待ち合わせるか |
5概念にプロットすると以下のようになります。
| 概念 | 制御の粒度 | 主な設計対象 |
|---|---|---|
| Prompt Engineering | 1回のモデル呼び出し | 指示 |
| Context Engineering | 注入は1ターン。情報源と保持期間は全粒度をまたぐ | 情報 |
| Loop Engineering | 1ターン / 1セッション / 1プロセス実行 | 反復 |
| AI Harness Engineering | 1ターン 〜 1プロセス実行 | 実行基盤 |
| Graph Engineering | 複数の実行単位 | トポロジー |

5概念は左下から右上へ階段状に並ぶ。Loop と Harness は粒度が重なるため、設計対象の軸がないと分離できない。
図にすると、2軸が必要な理由が見えます。粒度だけでは Loop と Harness を分離できません。どちらも1ターンから1プロセス実行までにまたがるためです。分けているのは設計対象で、一方は反復を、もう一方は実行基盤を扱っています。
3階層のハーネス
3階層は、誰がその層の資産を作り、持ち運べるかで引きます。制御が効く実行スコープは、結果としてこれに対応します。
| 階層 | 実体 | 資産の作者 | エージェントをまたいで持ち運べるか |
|---|---|---|---|
| 内ハーネス | コーディングエージェント本体(モデル+ランタイム+差し込み口の機構) | 製品ベンダー | 持ち運べない(製品そのもの) |
| 中ハーネス | 差し込む資産(規約、手順、検査、接続先) | ユーザー | 持ち運べる |
| 外ハーネス | 起動・成否判定・依存グラフの基盤 | ユーザー / 基盤 | エージェント非依存 |
この境界で、コーディングエージェントは内側です。hooks や skills の「差し込み口の機構」はエージェントが提供するので内側、そこへ「差し込む中身」はユーザーが書くので中間です。socket と plugin の関係と同じです。CLAUDE.md や skills を別のエージェントへ移植できるのは、中間層の資産がエージェントの外にあるからです。
ここで、隣接するものとの境界を明示します。
| 対象 | どこに属すか |
|---|---|
| Foundation Model | ハーネスではありません。ハーネスが包む対象です |
| コーディングエージェント本体(ランタイム、差し込み口の機構) | 内ハーネス |
| 差し込む資産(CLAUDE.md 相当の規約、skills、hook スクリプト、MCP 設定) | 中ハーネス。ユーザーが書き、エージェントをまたいで持ち運べます |
| CI、スケジューラ、DevOps 基盤 | 論文の定義では harness の外。本記事は外ハーネスとして階層に含めます |
この区別により、arXiv:2605.13357 の harness は内ハーネスと中ハーネスの双方にまたがると位置づけられます。論文の11責務には、ランタイム側の機構(context manager、tool registry)と、ユーザーが書く資産(project memory、task state)の両方が含まれるためです。
3段階のループ
反復は1種類ではありません。3つの階層それぞれに、別の反復があります。
- 内側では、モデルが tool を呼び、結果を見て、また呼びます
- 中間では、ゴールに達したか判定し、達していなければ自分にまたプロンプトを出します
- 外側では、実行が終わったあと、基準値に到達していなければまた起動します
この3つは1周の長さも、止め方も違います。以降はそれぞれを内ループ・中ループ・外ループと呼びます。階層の名前をそのまま使うので、対応を覚え直す必要はありません。
| 段階 | 1周の単位 | 代表例 |
|---|---|---|
| 内ループ | tool呼び出しから観測まで | ReAct、think-act-observe |
| 中ループ | ゴール判定から自己再プロンプトまで | /loopなどのゴール達成まで自分にプロンプトを出し続ける仕組み |
| 外ループ | プロセス起動から終了コード判定まで | 定期起動、CI、ワークフローエンジン |
3段階を分ける実益は、終了の決め方をどこに書くべきかが決まることです。
その際、終了の決め方は3種類に分かれます。混ぜると事故になります。
| 種類 | 誰が出すか | 例 |
|---|---|---|
| 完了シグナル | その1周を回している主体が「終わった」と示す | モデルの最終応答、セッションの完了条件、プロセスの終了コード |
| 強制上限 | ランタイムや外部が問答無用で打ち切る | tool呼び出し回数、タイムアウト、トークン予算、リトライ上限 |
| 終了後の評価 | 監督者が、終わった結果を見て成否を判定する | 成果物の検査、テストの通過判定 |
ループとハーネスは同じ階層の表裏
同じ階層に、動き(ループ)とそれを支える器(ハーネス)があります。
| 階層 | 動き(ループ) | 器(ハーネス) | この層で設計する問い |
|---|---|---|---|
| 内側 | 内ループ | エージェント本体のランタイム | どう考えさせるか |
| 中間 | 中ループ | 差し込む資産 | 何を使わせ、何を守らせるか |
| 外側 | 外ループ | 起動と観測の仕組み | いつ動かし、成否をどう判定するか |
この対応は1対1ではありません。 1つの器が複数の粒度に効きます。例えば hook スクリプトは PreToolUse のようなターン粒度のイベントと、SessionStart / Stop のようなセッション粒度のイベントの両方に差し込めます。逆に、中ループは資産を差し込まずランタイム内で完結させることもできます。
各概念の特徴と違い
2軸と3階層をふまえて、5概念を横並びで比較します。
| 観点 | Prompt | Context | Loop | Harness | Graph |
|---|---|---|---|---|---|
| 主な設計対象 | 1回の指示 | 読ませる情報とその供給経路 | 反復と停止 | 実行の器 | 実行単位間の関係 |
| 1周の単位 | なし(単発) | 注入は1ターン。情報源は全粒度をまたぐ | ターン / セッション / プロセス | 各階層の器 | 実行単位 |
| 主な成果物 | プロンプト文 | 検索と圧縮の仕組み | 停止条件と再起動の仕組み | 規約、権限、記録の定義 | node、edge、state の定義 |
| 状態の置き場 | なし | セッション内、または外部ストア | 段階により内部または外部 | 記録と検証の層 | checkpoint された state |
| 人間の関与 | 毎ターン | 設計時と評価時。実行時は自動化可能 | 例外と承認ゲート | 権限設計時と例外時 | 承認 node |
| 主な失敗モード | 指示の曖昧さ | 情報過多と欠落 | 止まらない、暴走する | 権限逸脱、記録の欠落 | 依存の誤り、合流待ち、状態の不整合 |
| 該当する階層 | 内側(最内) | 全層を貫く | 3階層すべて | 内側と中間が中心 | 外側 |
列を右へ行くほど、扱う不確実性が増えます。 プロンプトは1回の出力品質だけを心配すればよいのに対し、グラフは「独立に失敗しうる複数の実行単位をどう合流させるか」まで心配する必要があります。
逆に言えば、右の概念が左を不要にすることはありません。グラフの node の中では相変わらずプロンプトが動いています。ループの中のずさんなプロンプトは、ずさんな作業を速く大量に生産するだけです。
中ハーネスの実装例
3階層のうち、中間は手元ですぐ確かめられます。 エージェントの差し込み口に、自分が差し込んでいる資産がそれです。
中ハーネスの実体は、次の6つの振る舞い契約に整理できます。エージェントをまたいで維持したいのは、資産のファイルそのものではなく、この契約です。
| 維持したい振る舞い | 代表的な拡張ポイント |
|---|---|
| どのエージェントでも同じ規約を守る | Instructions / Rules |
| 同じ作業を同じ手順で進める | Skills / Commands |
| 調査やレビューを別の役割へ委譲する | Custom Agents |
| 特定イベントで検査や通知を呼び出す | Hooks |
| 同じ外部システムへ同じ権限で接続する | MCP / Tools |
| 拡張一式をチームへ配布する | Plugins |
ここで重要なのは、この6契約が製品共通である一方、差し込み口の場所と読み込み規則は製品ごとに違うことです。ファイル名も、階層の優先順位も、連結かマージか上書きかも揃っていません。特に hooks は最も移植しにくい部分です。
移植という営みが成立すること自体が、境界の証明になっています。中ハーネスの資産がエージェントの外にあるから、エージェントを差し替えても資産を持ち運べます。 内ハーネス(ランタイム)は製品と一緒に入れ替わり、中ハーネス(資産)は残る。この分離が3階層の境界そのものです。
6製品(Claude Code、Codex CLI、GitHub Copilot CLI、Antigravity CLI、Grok Build、Cursor Agent CLI)を対象に、この差分を具体的に比較した記事を別に書いています。
中ハーネスを設計するとは、製品名の設定ファイルを書くことではなく、この6契約を決めてから各製品へ変換することです。移植の成否は「同じファイルを読めたか」ではなく「同じ入力に対して許容範囲内の行動になったか」で判定します。
Graph Engineering が足したもの
Graph Engineering は、3階層のうち外側に位置します。複数の実行単位の関係を、暗黙のループから明示的なグラフへ引き上げます。
主要な構成要素は3つです。
| 要素 | 内容 |
|---|---|
| 単一責務の node | エージェント、決定的関数、evaluator、人間承認を、それぞれ1つの node として置く |
| typed edge | 単なる矢印ではなく、入出力スキーマ、遷移条件、許可される副作用、失敗時の扱いを含む境界契約 |
| checkpointed state | スキーマを持ち、中断と再開が可能な状態 |
ループは消えません。 node の内部で継続します。Graph Engineering が扱うのは、ループ間の依存、受け渡し、ゲート、合流です。
外側でこれを明示する実益は、次の4つが可能になることです。
- 再開: どこまで終わったかが state に残るため、途中から再開できる
- 監査: どの node が何を根拠に次へ進んだかを後から追える
- 並列: 独立した branch を同時に走らせ、合流点で待ち合わせられる
- 段階的承認: 人間の承認を node として置き、そこで止められる
Context Engineering は層をまたぐ
「結局すべてコンテキストの話ではないか」という指摘は、半分正しく、半分間違っています。
その前に、混同しやすい2つを分けます。
| 用語 | 意味 |
|---|---|
| Context Engineering | 情報とツールを適時に届けるシステムを設計する活動。他の層と並ぶ設計関心のひとつ |
| runtime context | 実行時に組み上がった実際のトークン列。各層の制御によって変化する状態 |
「従属変数」と呼べるのは後者です。設計活動そのものは、どの層にも従属しません。
正しい部分
モデルを呼ぶ node に限れば、すべての層が runtime context を動かしています。
- プロンプトは、その1回の内容を決める
- 中ハーネスは、どの規約と道具が読まれるかを決める
- 中ループは、何回積み増すかを決める
- 外側のグラフは、どの node にどの state が渡るかを決める
収束先が同じなので、Context Engineering はどの層とも接続します。
間違っている部分
収束先が同じことと、扱う制約が同じことは別です。 Context Engineering の語彙では説明できないものがあります。
| Context では扱えないもの | どの概念が扱うか |
|---|---|
| 独立 branch の並列実行と合流待ち | Graph |
| トークンと金額の予算上限 | Loop(外)と Graph |
| 権限境界と人間の承認ゲート | Harness と Graph |
| 失敗の帰属と段階的回復、再開 | Harness と Graph |
| いつ止めるか、誰が成否を判定するか | Loop |
したがって、Context Engineering は3階層のどれかに属す概念ではありません。全層を縦に貫く横断的な設計関心です。全体像の図で階層の外に置いたのは、上位でも下位でもなく直交するためです。
外側の構造例
外側は最も語られない層です。そこで、筆者が運用している自動化基盤の構造を紹介します。
4つの部品
| 部品 | 役割 | 対応する概念 |
|---|---|---|
| ワークフローエンジン | 定期起動、ジョブ間の依存、分岐と合流、人間承認の待ち合わせ | 明示グラフ層(Graph) |
| 起動ラッパー | 1回の実行を起動し、終了コードと成果物で成否を判定し、記録する | 外ループ+外ハーネス |
| 手順書とペルソナ定義 | 何をどの順で行うか、どの役割として振る舞うかを読ませる。これ自体は実行単位ではなく、実行への入力 | 中ハーネス |
| エージェント本体 | tool を選び、観測し、次を決める | 内ループ+内ハーネス |
外側から内側へ起動が降り、成果物と終了コードが外へ戻る。
この構造から見えること
5つの概念が1つのシステムに同居しています。 どれか1つを選ぶ設計判断は発生しませんでした。発生したのは「この制御をどの層に置くか」という判断だけです。
例えば次のような割り振りになります。
| 決めたいこと | 置いた層 | 理由 |
|---|---|---|
| 毎日決まった時刻に動かす | 外側(ワークフローエンジン) | セッションが死んでも次回が動く |
| 前のジョブが成功したら次を動かす | 外側(ワークフローエンジン) | 依存を宣言として外に出せる |
| 失敗したら記録して人へ通知する | 外側(起動ラッパー) | エージェント自身は自分の死を報告できない |
| 手順を毎回同じにする | 中間(手順書) | プロンプトに毎回書くと揺れる |
| 危険なコマンドを実行させない | 中間(差し込んだ検査) | モデルの自制に依存させない |
| どの tool を何回使うか | 内側(モデルの判断) | ここまで外から決めると硬直する |
この構造を全体像へ重ねると、4つの部品がそれぞれの層に収まります。

反証・限界・適用条件
反証1: 既存概念の再命名にすぎない
最も強い批判です。Graph Engineering に対しては「loop も graph も有用なパターンだが、古典的な workflow、state machine、分散システムの再命名でもある」という反論が公開されています。長期的な価値は topology ではなく、worker、function、trigger、queue、trace といった substrate 側にある、という主張です。
この批判は、本記事の3階層モデルにもそのまま当たります。 内側・中間・外側という分割は、OSレイヤやミドルウェアの議論で繰り返し使われてきた形です。新しい発見ではありません。
それでも整理する価値があるとすれば、次の2点です。
- 用語の混乱によって、実務者が自分の問題をどの層で解くべきか判断できない状態が実在する
- 3階層は結論ではなく判定手順として使える。新しい理論を提供するものではない
反証2: 3階層は本記事の独自拡張である
繰り返しになりますが、この3分割はどの出典にも存在しません。
| 出典 | その出典が定義している範囲 |
|---|---|
| AI Harness Engineering(arXiv:2605.13357) | 内側と中間にまたがる。モデル自体と、DevOps・プラットフォームエンジニアリングは harness の外と明示 |
| Loop Engineering の解説 | 外側寄り。ただし内側の推論サイクルにも言及する |
| Graph Engineering の解説 | 外側。node 内部のループは対象外 |
「論文が3階層を定義している」と読まないでください。定義しているのは筆者です。
反証3: 構造例は検証できない1事例である
「外側の構造例」は匿名化した参照構造であり、読者が検証する手段がありません。一般性の主張でもありません。
検証可能な裏づけは中間層だけです。6製品の拡張ポイントは公式ドキュメントで確認できます。外側の記述は型の提示として読んでください。
適用条件: 層を分けるべきでない場合
3階層は常に必要ではありません。次の場合は分けないほうが速く進みます。
| 状況 | 適した層 |
|---|---|
| 1回の要約、分類、抽出 | プロンプトのみ |
| 手順が未知で、人間が横にいる | 内ループのみ |
| 手順が決まっていて、毎回同じ結果がほしい | 中間の手順書まで |
| 人間が見ていない時間に動かしたい | 外側が必要になる |
| 途中で中断し、後から再開したい | 外側で明示グラフを検討する |
| 決定的な処理と人間の承認が混ざる | 外側で明示グラフを検討する |
| 独立に失敗しうる作業が複数あり、合流点がある | 外側で明示グラフを検討する |
外側を作る主な動機は「人間が見ていないこと」です。 見ているうちは、成否判定も再試行も人間が担えます。
なお、明示グラフの動機は並列だけではありません。1回の仕事の中でも、長期の再開、人間承認、決定的処理と非決定的処理の混在があれば、明示する価値があります。
この記事の限界
- 一次資料の主張は、筆者の既存記事を経由した整理です。原典の細部は各記事と原典URLを参照してください
- 各製品の拡張ポイントは更新が速く、記載時点の情報です
まとめ
5つの関係
- 5つは競合しません。1つのシステムに重なった、別々の設計関心です
- 共通する問いは「目的達成のためにLLMをどう制御するか」です
- 違いは制御の粒度と主な設計対象の2軸で説明できます
- Context Engineering だけは階層に属さず、全層を縦に貫く横断的な関心です
いま扱っている問題を切り分けるチェックリスト
層は排他ではありません。1つの実行では、ターンもセッションもプロセスも順に発生します。したがって「どの層か」を1つに決めるのではなく、いま困っていることがどの関心に属すかを切り分けます。
該当するものすべてにチェックを付けてください。
1. 何を変えようとしているか
| 変えたいもの | 該当する関心 |
|---|---|
| 出力の質や形式 | Prompt |
| 読ませる情報の過不足 | Context |
| 繰り返しの回数、止まらなさ | Loop |
| 使える道具、禁止事項、記録 | Harness |
| 実行の順序、待ち合わせ、承認位置 | Graph |
2. 制御がどこで効いているか
| 効き方 | 階層 |
|---|---|
| モデルが選んでいる | 内側 |
| 実行中の規約や検査が選択肢を狭めている、イベントで割り込んでいる | 中間 |
| 実行の外から起動され、判定され、再試行されている | 外側 |
規約を読んだモデルが選ぶ場合、内側と中間の両方が該当します。その場合は「どこまでを規約で縛り、どこからモデルに委ねるか」が設計点です。
3. 完了シグナルと強制上限が、スコープごとに揃っているか
| スコープ | 完了シグナル | 強制上限 |
|---|---|---|
| 1ターン | モデルの最終応答 | tool呼び出し回数、1回あたりのトークン上限 |
| 1セッション | セッション内の完了条件 | 反復回数、経過時間、セッション累計トークン |
| 1プロセス実行 | プロセスの終了コード | タイムアウト、リトライ上限 |
| 実行をまたぐ | グラフの終端 node への到達 | 総予算、総実行回数 |
強制上限が空欄の行があれば、そこが暴走の入口です。 なお、成果物を見て成否を判定する仕組みは終了後の評価であり、この表の停止条件とは別に用意します。
4. 状態、再開、権限、予算を誰が保証しているか
誰も保証していない項目があれば、それが次に設計すべきものです。項目ごとに担い手が違います。
| 保証したいもの | まず検討する層 |
|---|---|
| 権限、禁止事項、記録 | 中ハーネス |
| 1ターンと1セッションの停止 | 内側と中間(強制上限を置く) |
| 1実行の停止と予算 | 外ループ |
| 実行の順序と依存 | 外側のスケジューラで足りることも多い |
| 承認の位置 | 外側。承認を実行の一部として残すなら明示グラフ |
| 中断後の再開、実行をまたぐ状態 | 明示グラフ(typed edge と checkpointed state) |
外部保証がすべて明示グラフを必要とするわけではありません。 依存の宣言だけならスケジューラで足ります。グラフが要るのは、状態を型付きで受け渡し、途中から再開したいときです。
用語が5つあることに悩む必要はありません。いま困っていることがどの関心に属すかを言えれば十分です。
この記事が少しでも参考になった、あるいは改善点などがあれば、ぜひリアクションやコメント、SNS でのシェアをいただけると励みになります!
参考リンク
本記事が整理した5記事
- プロンプトエンジニアリングの進化 - 人間中心からAIエージェントへ
- Context Engineering入門:AIに何を渡すかをシステムとして設計する
- AI Harness Engineering入門:エージェントを包む実行層を契約として設計する
- Loop Engineering入門:AIコーディングエージェントを動かすシステムを設計する
- Graph Engineering入門:AIエージェントのループを明示グラフへ変える