コンテキスト不足によるエラー
モデルが持っていない知識を前提にしたプロンプトについて学びます。
「コンテキスト不足によるエラー」はCoddyKit上の無料AI Prompt Engineeringレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAI Prompt Engineering学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AI Prompt Engineeringコースには全4レッスンが含まれています。
コンテキストの不足
AIモデルはトレーニングデータから非常に多くのことを学習しています。しかし、伝えない限り、あなたの具体的な状況については何も知りません。モデルが持っていない知識を前提とするプロンプトでは、一般的には正しいものの、状況に合わず役に立たない回答が生成されます。
「バグを修正してください。」 — どのバグでしょうか。どのコードでしょうか。現在どのように動作していますか。本来はどのように動作すべきでしょうか。
モデルは情報が不足していると伝えるのではなく、回答を作り出します。その作られた回答が、必要としているものになることはほとんどありません。
モデルが持っていないコンテキスト
提供しない限り、モデルは次のことを知りません。
- あなたの具体的なコード、プロジェクト、ドキュメント
- あなたの会社、製品、ブランド、顧客
- 以前のセッションで行った会話(会話は毎回新しく始まります)
- これまでに試したことと、それが失敗した理由
- あなた個人の好み、スタイル、基準
- 対象読者の背景
- 環境上の制約(技術スタック、予算、期限)
モデルがタスクについて知る情報は、すべて現在の会話から得られる必要があります。
「バグを修正してください」アンチパターン
「バグを修正してください」は、コンテキストが不足した典型的なプロンプトです。モデルには次の情報が与えられていません。
- どの言語またはフレームワークを使っているか
- コードが本来何をするものか
- 実際にどのように動作しているか(症状)
- どのようなエラーや誤った出力が発生しているか
- 何を試してうまくいかなかったか
バグ修正に必要な情報をすべて含むプロンプトは、次の5つを提供します。「このPython関数は、リスト内のすべての偶数の合計を返すはずですが、[2,4,6]に対して0を返します。コードは次のとおりです:[コードを貼り付け]。エラーは……」
記憶に関する誤解
「前回の続きから始めてください。」 — これは、根本的な誤解を示すよくある間違いです。モデルにはセッションをまたいだ記憶がありません。
新しい会話は毎回、完全に新しい状態で始まります。同じアカウントやツールを使っていても、モデルは以前の会話にアクセスできません。以前のセッションのコンテキストが必要な場合は、現在の会話に明示的に貼り付ける必要があります。
Claude Projectsやカスタムメモリシステムなど、一部のツールはセッションをまたいだコンテキストを提供します。しかし、これはツールの機能であり、モデル本来の能力ではありません。
「言いたいことはわかりますよね」という思い込み
よくあるコンテキストの誤りは、モデルが自分と暗黙の背景知識を共有していると思い込むことです。
- 「自社のブランドに合うようにしてください」(どのブランドでしょうか。ブランドガイドラインはありますか)
- 「前回と同じように書いてください」(モデルは前回の内容にアクセスできません)
- 「他のレポートと同じ形式を使ってください」(形式またはレポートの例を貼り付けてください)
- 「話し合った内容と一貫させてください」(新しい会話であれば、まだ何も話し合っていません)
解決策は常に同じです。暗黙の情報を明示してください。モデルが何を知っていると想定しているのかを伝えます。
コンテキスト注入:解決策
コンテキスト注入とは、モデルが正しく回答するために必要な背景情報を明示的に提供することです。主な方法は3つあります。
関連する内容を貼り付ける:コード、ドキュメント、メール、データをプロンプトに直接含めます。
状況を説明する:タスクの指示の前に、関連する背景を2~5文で要約します。
制約を示す:環境、技術スタック、対象読者、関連する過去の決定事項を記載します。
コンテキスト注入によって、モデルの一般的な知識を状況に即した回答へと変えられます。
構造化されたコンテキスト注入
複雑なタスクでは、タスクの指示の前に、ラベル付きのセクションを使ってコンテキストを構造化してください。
context_injection_prompt = '''## Background
We are a B2B SaaS company selling project management software to construction firms.
Our customers are project managers with 5-15 years of experience.
They value practical reliability over flashy features.
Our tone is professional, direct, and jargon-free (no tech startup buzzwords).
## Current situation
We are launching a new mobile app feature that sends automated daily digests.
The beta test with 12 customers showed 83% said it saved them at least 30 minutes per week.
## Task
Write a 200-word announcement email to our existing customers about this new feature.
Tone: warm, practical, results-focused.
Include the 83% / 30-minute stat.
End with a CTA to try the feature.
Do not mention competitor products.'''
print(context_injection_prompt)コンテキストの深さを調整する
すべてのコンテキストに同じ価値があるわけではありません。コンテキストが少なすぎると一般的な出力になり、多すぎると関連情報がノイズに埋もれ、実際のタスクの指示がプロンプトの下の方に押し下げられる可能性があります。
コンテキストの深さを調整するには、「思慮深い人間の専門家がこのタスクを適切に行うために、何を知る必要があるか」と考えてください。
- 含めるもの:対象読者、目的、制約、ドメイン固有の用語、関連する過去の決定事項
- 除外するもの:誰もがすでに知っている背景、関係のない履歴、周辺的な詳細
役立つ目安は、見知らぬ人が別の会社や状況向けにそのまま書くことができない程度に、コンテキストを具体的にすることです。
セッションをまたぐコンテキスト:コンテキスト・プライマーの作成
モデルにはセッションをまたいだ記憶がないため、解決策は再利用可能なコンテキスト・プライマーです。これは、繰り返し扱うトピックについて、毎回セッションの開始時に貼り付ける標準的なコンテキストのまとまりです。
CONTEXT_PRIMER = '''## Project context (paste at start of every session)
Project: Redesign of the Acme Corp customer onboarding flow
Team: 2 designers, 1 PM, 3 engineers
Stack: React, TypeScript, Supabase, Stripe
Current problem: 40% of new users drop off before completing step 3 of 5 in onboarding
Previous decisions:
- Step 3 will remain (required for compliance)
- No major UI changes until Q3
- All solutions must work on mobile-first
Constraints: No new third-party dependencies without security review
Today I need help with: [describe today's specific task here]
'''
print(CONTEXT_PRIMER)不完全な仕様の問題
コンテキスト不足に関連するもう1つの誤りが、不完全な仕様です。これは、コンテキストを一部提供しているものの、モデルがエッジケースに対応するには不十分な状態を指します。
例:「サブスクリプションのステータスでユーザーをフィルタリングする関数を書いてください。」
データ構造はどのようなものでしょうか。有効なステータス値は何でしょうか。ステータスがないユーザーはどうすべきでしょうか。大文字と小文字を区別すべきでしょうか。リストが空の場合は何を返すべきでしょうか。
モデルはこれらすべてについて仮定を置きます。その仮定は間違っているかもしれません。完全な仕様では、エッジケースをあらかじめ明示的に想定します。
コードタスクのコンテキスト:最低限必要な項目
コードに関するプロンプトでは、最低限のコンテキストをそろえることで、安定して役に立つ出力が得られます。
- 言語とバージョン:Python 3.11、TypeScript 5.0
- フレームワーク:FastAPI、Next.js、React Native
- コードが行うべきこと:想定される入力と出力
- 現在起きている問題:症状とエラーメッセージ
- 試したこと:すでに失敗した方法を繰り返さないための情報
- 制約:外部依存関係を使用しない、50ミリ秒未満で実行する
この最低限の項目をそろえることで、一般的には正しいものの、固有の状況には合わないAIによるコード提案の主な原因を取り除けます。
理解度チェック:コンテキスト不足
ある開発者が、他の情報を一切添えずに「これを最適化するのを手伝ってください。」というプロンプトを送信しました。何が起こるかについて、最も正確な説明はどれでしょうか。
まとめ:コンテキスト不足の誤り
コンテキスト不足の誤りは、プロンプトがモデルの持っていない知識、つまりあなたのコード、ブランド、過去のセッション、チームの決定事項などを前提とするときに起こります。モデルはこうした不足を仮定で埋めるため、一般的または誤った出力が生成されます。
解決策はコンテキスト注入です。関連する内容を貼り付け、状況を説明し、制約を明示してください。繰り返し行うタスクには、再利用可能なコンテキスト・プライマーがセッションをまたぐ記憶の問題を解決します。コードタスクでは、言語、フレームワーク、入出力、現在の動作、制約を必ず含めてください。
このコースの最後のレッスンでは、ここまでの内容をすべて組み合わせ、体系的なプロンプトデバッグのチェックリストにまとめます。
よくある質問
「コンテキスト不足によるエラー」レッスンは無料ですか?
はい。「コンテキスト不足によるエラー」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AI Prompt Engineeringコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AI Prompt Engineeringコースには全4レッスンが含まれています。
「コンテキスト不足によるエラー」で何を学びますか?
モデルが持っていない知識を前提にしたプロンプトについて学びます。 ブラウザで直接実行するハンズオンコードでAI Prompt Engineeringを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
AI Prompt Engineeringを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAI Prompt Engineeringは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「コンテキスト不足によるエラー」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAI Prompt Engineeringレッスンでコードを書いて実行できますか?
はい。すべてのAI Prompt Engineeringレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 過度に曖昧な指示
- 矛盾する要件
- コンテキスト不足によるエラー
- 不適切なプロンプトの診断と修正