プロンプトとコンテキストの違いを1分で
LLMへ入力されるのは、あなたが入力した文章だけではありません。
実際にモデルが見ているのは、例えばこんな情報です。
ここで重要なのは、
あなたが入力したプロンプトは、この中のほんの一部に過ぎないということです。
エージェントによっては、人間が書いた100トークンより、ツールが取得した数万トークンの方が圧倒的に多いケースもあります。
つまり、
- プロンプトエンジニアリングは「最後の一言をどう書くか」
- コンテキストエンジニアリングは「AIへ何を見せるか」
を考えるものです。
会議で例えるなら、
プロンプトエンジニアリング
発言の言い回しを工夫すること
コンテキストエンジニアリング
会議が始まる前に、必要な資料だけを参加者へ配っておくこと
です。
社会人なら、どちらが会議の成功率を上げるかは想像しやすいですよね。
なぜエージェント時代に重要なのか
ChatGPTを使っていた頃は、
というシンプルな世界でした。
一方、エージェントは違います。
回答を作る前に、
- ファイルを読む
- GitHubを調べる
- Web検索する
- テストを実行する
- ログを解析する
こうした情報を自分で集めてコンテキストへ追加します。
例えば、
- ファイルを読む → 約5,000トークン
- 検索する → 約3,000トークン
- ビルドログを読む → 約20,000トークン
ということは珍しくありません。
一方、人間が入力するプロンプトは100〜300トークン程度。
つまり、
「何を書くか」より、「何を見せるか」の方が結果を左右する
場面が一気に増えました。
参考までに、コンテキスト全体のイメージはこんな感じです。
LLMが見ているコンテキスト
███████████████████████████ ツール実行結果・ログ
███████████████████████ ソースコード・ファイル
██████████ 会話履歴
████ CLAUDE.md / システムプロンプト
█ あなたが入力したプロンプト
もちろん割合はケースによって異なりますが、エージェントでは人間が入力するプロンプトは全体のごく一部になることが少なくありません。
コンテキストは"多いほど良い"わけではない
初めてエージェントを使うと、
「全部読ませれば最強では?」
と思います。
私もそう思いました。
そして、見事に失敗しました。
1. 古い資料を信じる
AIはとても素直です。
3年前の設計書を渡せば、
3年前の設計を参考にコードを書きます。
悪気はありません。
あなたが渡した資料を信じただけです。
2. 本当に重要な情報が埋もれる
100ページの資料の95ページ目に
このAPIは削除予定です
と書かれていても、
人間が見落とすようにAIも影響を受けます。
情報量が多ければ良いとは限りません。
3. コストも時間も増える
トークンは無料ではありません。
不要な情報を読み込ませるたびに、
- レスポンスが遅くなる
- コストが増える
という副作用もあります。
実践:コンテキストエンジニアリングの基本ムーブ
ムーブ1:常設情報は「短く、削って、また削る」
CLAUDE.md やシステムプロンプトは毎回読み込まれるため、一番コストの高い情報です。
判断基準はシンプルです。
この1行が無かったら、エージェントはどんな失敗をするか?
具体的に答えられないなら、その情報は削除候補です。
ムーブ2:詳細情報は「必要になったら取りに行かせる」
全部のマニュアルを最初から渡すのではなく、
- 目次だけ渡す
- 必要になったら本文を読む
この形が最近の主流です。
Claude CodeのSkillsも、この考え方で設計されています。
ムーブ3:長時間作業は一度リセットする
長時間の作業ではコンテキストがどんどん膨らみます。
そんなときは、
- 要約を作る
- 新しいセッションへ引き継ぐ
方が精度が安定します。
人間で言えば、
「一晩寝て頭を整理する」
ようなものです。
ムーブ4:ツールの出力を盛りすぎない
例えば検索ツールなら、
悪い例
ヒットしたファイル全文を返す
良い例
ファイルパス
該当箇所
前後3行
必要なら、あとで続きを読めば十分です。
「近くのラーメン屋を教えて」
と聞かれて、
食べログ全店舗データをJSONで返されたら困りますよね。
エージェントも同じです。
まとめ
| プロンプトエンジニアリング | コンテキストエンジニアリング | |
|---|---|---|
| 考えること | どう書くか | 何を見せるか |
| 対象 | プロンプト | モデルが見る情報全体 |
| チャット時代 | 主役 | 脇役 |
| エージェント時代 | 脇役 | 主役 |
結局のところ、コンテキストエンジニアリングは特別な魔法ではありません。
読み手に対して、
- 必要な情報だけ渡す
- 必要になったら詳細を取りに行く
- 古い情報を混ぜない
という、昔からある情報設計をAIにも適用しているだけです。
AIが賢くなったというより、
AIへ渡す情報の設計が、これまで以上に重要になったと言えるでしょう。
エージェント時代は、「良いプロンプトを書く人」よりも、
「必要な情報を、必要なタイミングで渡せる人」
が強い時代なのかもしれません。
「うちのエージェント、コンテキスト太りしてるかも…」
そう思った方は、まず
CLAUDE.mdを見直してみるところから始めてみてください。エージェントは痩せませんが、トークン使用量は少し痩せるかもしれません。
