はじめに
こんばんは、mirukyです。
AI駆動開発系のトレンドを追っていると、最近数ヶ月に1回は新しい◯◯エンジニアリングのワードを聞く気がします。それくらい、今現在はAIが急速発展真っ盛り、ということなんでしょうね。
ということで今回は、プロンプト、コンテキスト、ハーネス、ループ、グラフエンジニアリングの違いを紹介します。プロンプトエンジニアリング以外の4つには、クローンしたらそのまま使えるテンプレートも掲載しています。サクッと読めるので、ぜひご覧ください。
目次
1. ◯◯エンジニアリング
1-1. それぞれの役割
| 呼び名 | ざっくり意味 |
|---|---|
| プロンプトエンジニアリング | 指示の内容や答え方を人間がAIに指示・指定すること |
| コンテキストエンジニアリング | 判断に必要な資料や履歴、前提条件(コンテキスト)を渡すこと |
| ハーネスエンジニアリング | AIが作業に使うツールや実行環境を用意すること |
| ループエンジニアリング | 結果を受けて再実行(ループ)や終了を判断すること |
| グラフエンジニアリング | 複数の作業や担当、状態のワークフローを決めること |
5つは重なりのある考え方なので、順番とかは特に無く、言葉として定着した順で書いてます。指示文もコンテキストの一部ですし、ハーネスが反復処理を受け持つこともあります。ループとグラフは比較的新しい呼び名です。
ただ、意味を見ていただければわかる通り新しい言葉ではあるけれども、元々行われていたエンジニアリング手法に名前がついただけ、とも言えます。
2. プロンプトエンジニアリング
2-1. プロンプト=AIへの指示文
AIへの頼み方を工夫するのが、プロンプトエンジニアリングです。目的や作業範囲、答えてほしい形式などを指定します。個人的には数年前によく聞きました、今はプロンプトエンジニアリングとはわざわざ言われない印象があります、たぶん。
ログインの不具合を直してほしいなら、たとえばこう頼みます。
ログイン後に元のページへ戻れない不具合を修正してください。
認証方式と公開APIの仕様は変更しないでください。
修正後は、原因、変更した箇所などを説明してください。
2-2. 返答をもとに指示を直して送る
余計な箇所まで変更されたなら作業範囲を詳しく書き、必要な説明が抜けたなら回答形式を補います。ただし、依頼文に書いていないアプリの仕様まで、AIが知っているとは限りません。そこで必要になってくるのが、次のコンテキストです。
3. コンテキストエンジニアリング
3-1. コンテキスト=AIに渡す情報
ログイン処理のコードだけでは、戻り先として正しい画面を判断できない場合があります。画面遷移の仕様や、失敗したテストの結果も必要です。
指示文や資料、会話履歴、ツールの説明・実行結果など、モデルへ渡す情報がコンテキストです。コンテキストエンジニアリングでは、その中から何をいつ渡すかを決めるイメージです。
3-2. 作業が進んだら情報も更新する
AIは調査中なら、新しく見つかったコードやエラーを追加します。再開するときは、資料が古くなっていないかを確認し、決まった方針と残りの作業を渡すところまでやってくれます。
RAGでもそうですが、無関係な資料が増えると、必要な情報を見つけにくくなる場合があります。資料を全部渡すより、今の作業に必要なものを選びます。
コンテキストエンジニアリングを試せるテンプレートはこちらです。クローンして使えます。
4. ハーネスエンジニアリング
4-1. AIが作業できる環境整備エンジニアリング
AIにファイルを編集してもらうには、作業場所と編集用のツールが必要です。テストの実行方法や、その結果を受け取る方法も用意します。モデルを呼び出して実際に作業させる環境を作るのが、ハーネスエンジニアリングです。
たとえば、作業用のディレクトリ、使えるコマンドと権限、実行記録の保存先を決める感じです。
AIに「git push」とか「git commit」を禁止コマンドとして登録することもハーネスです。ハーネス(馬具や身体を支える装具)という名前からして、禁止行為を追加するようなイメージを持っている方が多いのではないかと思います。
4-2. コードと検証の対応を残す
この図のようにハーネスの一部として要件定義書、基本設計書、詳細設計書、実装、テスト仕様書を対応付けておくと、コードが変わったときに再確認する文書やテストを特定できます。テストの失敗と修正後の成功を記録する仕組みも、ハーネスに組み込めます。
ハーネスエンジニアリングを実現できるテンプレートも用意しています。クローン後、ガンガンカスタマイズしちゃってください。
5. ループエンジニアリング
5-1. 結果次第でループループループ
テストが失敗したら、ログを添えてAIに修正を頼み、もう一度テストします。結果に応じて次の作業や終了を決めるのが、ループエンジニアリングです。
AnthropicでClaude Codeの開発に携わるアディ・オスマニ氏の解説では、作業の起動、検証、状態の保存、停止までを扱っています。ここでも、一度の返答を超えて作業を続ける仕組みとして説明します。
CodexとClaude Codeなら、/goalの後に完了条件を書くと、その達成を目指して作業を続けてくれます。たとえば、ログインの不具合ならこんな感じです。
/goal ログイン後に元のページへ戻れるように修正し、関連するテストをすべて成功させる。認証方式と公開APIの仕様は変えない。
途中で止めるなら、どちらも/goal clear(GPT Workなら途中停止ボタン)で目標を解除できます。達成不能や利用上限、エラーなどで止まる場合もありますが、正直このやり方が一番楽です。
ただ、そうじゃなくても実現できるので下で説明します。
5-2. いつ止めるかを決めておく
| 状況 | 次の動作 |
|---|---|
| 必要なテストが成功した | 終了する |
| 同じ失敗が続く、回数・時間・費用の上限に達した | 停止する |
| 仕様の判断や追加の権限が必要になった | 人に確認する |
AIが完了と答えても、テストが失敗していたら作業は続行です。中断後は、ファイルの中身や送信履歴も確認してから再開します。送信だけ済んで記録が残らずに止まると、再開時に同じ内容を二重に送ってしまう場合があるためです。記録を残しておくことが大事、ということですね。AIの動作を見守ったことある方ならわかると思いますが、やたらとAIくんは記録を残したがりますよね。この通り結構大事だったりします。
ループエンジニアリングを動かしてみたい場合は、こちらのテンプレートをクローンできます。回数・時間の上限や、状態の保存と再開もカスタマイズし放題ですぞ。
6. グラフエンジニアリング
6-1. そや、ワークフローを線で繋げよ
実装の後に、動作確認と権限のレビューを並行して行い、両方の結果を見てから人が承認する。こうした流れでは、誰が何を待ち、どの結果を受け取るかを決める必要があります。
作業や担当、実行中の状態をノード、それらの関係をエッジで表してワークフローを設計する考え方が、グラフエンジニアリングです。
6-2. ワークフローの実装に使うLangGraph
LangGraphは、LangChain社が開発するオープンソースのフレームワークです。AIへの依頼、テストの実行、結果による条件分岐といった処理を、グラフとして定義して動かせます。
| 要素 | コード修正での例 |
|---|---|
| ノード | 実装、テスト実行、レビューなどの個々の処理 |
| エッジ | テストに失敗したら実装へ戻り、成功したらレビューへ進む、といった次の処理への経路 |
| 状態 | コードの版、テスト結果、レビューの指摘など、処理の間で共有する情報 |
ノードには、AIを呼び出す処理も、テストを実行する通常のプログラムも置けます。チェックポイント(途中の状態)の保存先と中断箇所を設定すれば、人の承認を待ってから作業を再開できます。
グラフエンジニアリングは設計の考え方で、LangGraphはその実装に使う選択肢の一つと考えていただければと思います。
6-3. 比較的最近の概念なのね
2026年8月に公開されたグラフエンジニアリングの論文では、作業・担当・状態をグラフで表し、その関係を実行中に変える設計も扱っています。たとえば、レビューの途中で追加調査が必要になったら、調査担当のノードを加えて結果を実装担当へ渡す、といった形です。
というわけでグラフエンジニアリングを簡単に試せるテンプレートはこちらです。作業順と承認をあらかじめ設定する構成で、LangGraphには依存しないように作ってます。クローンして使えます。
おわりに
ここまでお付き合いいただきありがとうございます。
AIの作業がうまく進まないときは、頼み方だけでなく、渡した資料や作業環境、検証の進め方も確認してみてください。
ではまた、お会いしましょう。
参考リンク
指示と情報の渡し方
実行と反復の仕組み
- ハーネスの意味 - American Heritage Dictionary
- アディ・オスマニ氏の経歴 - 本人のサイト
- Codexのゴール機能 - OpenAI
- Claude Codeのゴール機能 - Anthropic
- ハーネスエンジニアリング - OpenAI
- 長時間稼働するエージェントのハーネス設計 - Anthropic
- ループエンジニアリングの設計 - アディ・オスマニ
- ループエンジニアリングの構成要素と利用実態 - arXiv






