0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「コンテキストエンジニアリング」入門 — プロンプトの次に来るAI活用の新パラダイム

0
Last updated at Posted at 2026-07-18

同じLLMに同じ質問をしても、返ってくる答えの質がまるで違う——そんな経験はないでしょうか。

私はAIエージェント環境を1年ほど個人で運用してきて、精度を左右していたのはプロンプトの言い回しではなく、そのモデルが何を見せられているか、つまり「コンテキストの設計」だと確信するようになりました。プロンプトを何度も磨いても頭打ちだったタスクが、渡す情報の構造を変えた瞬間に安定する。この「渡し方の設計」こそが、いま話題のコンテキストエンジニアリングです。

この記事では、バズワードの解説で終わらせず、CLAUDE.md・引き継ぎメモ・ナレッジ検索といった具体的な仕組みと、実際に効いた数字をセットで共有します。

プロンプトエンジニアリングとの違いを一枚で

まず両者の役割分担を整理します。対立ではなく、レイヤーが違うと捉えるのが実感に近いです。

観点 プロンプトエンジニアリング コンテキストエンジニアリング
対象 一回の指示の書き方 モデルが見る情報環境そのもの
主な問い 「どう頼むか」 「何を・どの順で・どれだけ見せるか」
代表テクニック 役割付与、Few-shot、CoT 永続ルール、記憶の外部化、検索(RAG)、コンテキスト圧縮
効きどころ 単発タスクの精度 セッションをまたぐ一貫性・コスト
寿命 その会話限り ファイルとして資産になる

プロンプトは「一回の会話」を良くする技術、コンテキストエンジニアリングは「毎回の会話の前提」を設計する技術です。継続的にAIを使うほど、後者の投資対効果が跳ね上がります。

コンテキストを構成する4レイヤー(チートシート)

私が実際に運用しているコンテキストは、大きく4層に分けられます。まずは早見表として。

レイヤー 役割 実装の例 更新頻度
① 永続コンテキスト 常に効く前提・規約 CLAUDE.md 低(設計変更時)
② 作業記憶 直近の文脈・引き継ぎ handoff.md 毎セッション
③ 参照知識 必要な時だけ引く ナレッジ検索 / RAG 随時追記
④ 動的コンテキスト その場で確定させる情報 出力例・要件整理 タスクごと

「全部を毎回渡す」のではなく、①は常時・②は開始時・③は必要時・④は都度と流量を分けるのがポイントです。以下、レイヤーごとに実装と数字を見ていきます。

① 永続コンテキスト:前提を「引き継ぎ書」にする

最初に手を付けるべきは、毎回同じ説明を繰り返している前提の外部化です。

新規プロジェクトでAIを導入した当初、私は技術スタックやディレクトリ構成、禁止事項を毎セッション口頭で説明していて、1回あたり5〜10分を溶かしていました。そこでプロジェクトルートに約200行のルールファイル(CLAUDE.md)を置き、「AIへの引き継ぎ書」として書き直したところ、開始時の前提説明がまるごと不要になり、1日あたり約30分が浮きました。副産物として、生成コードの一貫性も目に見えて上がりました。

# CLAUDE.md(永続コンテキストの骨格)

## 技術スタック
- 言語 / フレームワーク / DB / インフラ …

## コーディング規約
- 命名・テスト方針・エラーハンドリングの型

## 禁止事項(IMPORTANT)
- 直接本番に触れない / 破壊的コマンドは確認を挟む …

コツは、新人エンジニアへの引き継ぎ書と同じ感覚で書くこと。「言わなくても分かるはず」を全部言語化すると精度が上がります。

失敗談:肥大化して逆に遅くなった

ただしこのファイル、放置すると膨らみます。私も一度500行を超えてしまい、応答が遅くなり、指示の優先度も曖昧になって規約違反が増えました。対処は階層化です。ルートには方針だけを残し、詳細はサブディレクトリ側のファイルに分割、優先度の高い制約は冒頭に IMPORTANT として置きました。結果、体感で応答速度が1.5倍に戻り、規約の遵守率も改善しました。永続コンテキストは「多く書く」より「構造化して絞る」が正解です。

② 作業記憶:セッションの記憶をファイルに逃がす

LLMは会話が途切れると文脈を失います。私も以前は再開のたびに「前回どこまでやったっけ?」を説明し直していました。

そこでセッション終了時に、進行中タスク・保留事項・次のアクション・決定事項を構造化した引き継ぎメモ(handoff.md)を自動生成する運用にしました。次回はこれを読むだけで、文脈の復元が約5秒で完了します。「記憶」はモデルの中に留めようとせず、ファイルシステムに外部化するのが現実解でした。

# handoff.md(作業記憶のテンプレ)
## 進行中
- [ ] 〇〇の実装(残: バリデーション)
## 保留・判断待ち
- △△の仕様、要確認
## 次のアクション
1.## 直近の決定事項
- □□方式を採用(理由: …)

構造を固定しておくと、復元の精度が安定します。フォーマットが毎回バラつくと、AIの読み取りもブレます。

③ 参照知識:必要な時だけ引く(全部渡さない)

コンテキストは「多いほど良い」ではありません。むしろ不要な情報はノイズであり、コストでもあるというのが実運用の学びです。

400ページ超のナレッジが社内Wikiに散在していた案件では、必要な情報を探すのに毎回15分以上かかっていました。これを全ページMarkdown化してベクトルDBに格納し、質問時に関連チャンクだけを検索して渡すRAG構成に変えたところ、検索が15分→約10秒になりました。チャンクサイズは500〜1000トークンあたりが実用的な落としどころでした。

ポイントは「全知識を毎回コンテキストに載せる」のではなく、その問いに関係する断片だけを動的に引くこと。コンテキストウィンドウは有限で、詰め込むほど注意が薄まり、料金も上がります。「何を渡すか」の設計が9割、というのは体感どおりでした。

④ 動的コンテキスト:出力の「型」を先に見せる

最後は、タスクごとに確定させるコンテキストです。ここでプロンプトエンジニアリングの技法(Few-shot)が効いてきます。

AIにコードレビューを頼んでいたとき、些細なスタイル指摘と重大なバグ指摘が同じ粒度で混ざり、Criticalを見落としそうになっていました。そこで依頼文に、重要度(Critical / Warning / Info)の分類基準をFew-shotの例として3パターン添付しました。すると出力が重要度順に整理され、確認時間が半分になりました。

# 出力例(この型で返して)
[Critical] SQLインジェクションの可能性: user入力を直接クエリに連結
[Warning]  N+1クエリ: ループ内でのfindByIdを見直し
[Info]     命名: getData → fetchUserOrders の方が意図が明確

ルールを長文で説明するより、期待する出力を3つ見せる方が確実に効きます。「型を先に見せる」——これも立派なコンテキスト設計です。

もう一つの効用:一人でも「壁打ち相手」が持てる

コンテキストを整えると、レビュアー不在の環境でもAIをシニア役として使えます。設計書をAIに読ませ、「経験20年のアーキテクトとして問題点を指摘して」と非機能要件の観点まで指定して依頼したところ、5つの改善提案のうち2つは本番運用で実際に問題になりうる重大な設計漏れでした。役割(誰として)と参照(何を見て)というコンテキストを揃えると、壁打ちの質が一段上がります。

まとめ:プロンプトを磨く前に、環境を設計する

コンテキストエンジニアリングを一言でいえば、**「AIに何を見せるかを設計する技術」**です。今日から始められる順に整理します。

  1. ①永続化 — 毎回説明している前提を CLAUDE.md に逃がす(ただし肥大化させず、構造化して絞る)
  2. ②外部化 — セッションの記憶を handoff.md に書き出す
  3. ③検索化 — 知識は全部渡さず、必要な断片だけ引く
  4. ④型提示 — 出力の期待形をFew-shotで先に見せる

プロンプトの言い回しに悩む前に、まずモデルが置かれている「情報環境」を疑ってみてください。多くの場合、伸びしろは指示の外側にあります。


ここまで読んでいただきありがとうございました。参考になったら いいね・ストック していただけると励みになります。

Claude Code・AIエージェント・業務自動化の実装Tipsを継続的に発信しています。フォロー で新着が届きます。

みなさんは、AIに渡す「コンテキスト」でいちばん効いた工夫は何でしたか? ぜひコメントで教えてください。

関連記事

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?