モジュール式のプロンプトセクション
コンテキスト、指示、制約、出力形式を明確に分けます。
「モジュール式のプロンプトセクション」はCoddyKit上の無料AI Prompt Engineeringレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAI Prompt Engineering学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AI Prompt Engineeringコースには全4レッスンが含まれています。
モノリシックなプロンプトの問題
モノリシックなプロンプトでは、背景、タスク、ルール、例、出力形式のすべてを1つの段落に詰め込みます。プロンプトが複雑になるほど、モノリシックな構造によって次の問題が発生します。
- モデルが誤ったセクションにルールを適用する
- 悪い出力の原因となった部分を特定しにくい
- プロンプト文字列の保守が不可能になる
- モデルのバージョン間で動作が一貫しない
モジュール型プロンプトは、これらすべての問題を解決します。
プロンプトを構成する5つの中核セクション
適切に構造化されたプロンプトには、明確な目的を持つ5つの異なるセクションがあります。
- コンテキスト — モデルが状況を理解するために必要な背景
- タスク — モデルが実行すべき内容を明確に記述したもの
- 制約 — 応答に対するルールと制限
- 出力形式 — 期待する応答の構造、長さ、スキーマ
- 例 — 正しい動作のデモンストレーション
すべてのプロンプトに5つすべてが必要なわけではありません。必要なものだけを使ってください。
コンテキストセクション
コンテキストセクションは、モデルに何をすべきかを指示せずに背景情報を提供します。適切なコンテキストには、次のような情報が含まれます。
- エンドユーザーが誰であるか
- 対象となるプラットフォームまたは製品
- 関連するドメイン知識
- モデルが把握しておくべき以前の状態
context_section = '''
<context>
You are assisting a customer support agent at a B2B SaaS company.
The company sells project management software used by engineering teams.
Customers are typically CTOs, engineering managers, or senior developers.
The support agent is handling a live chat conversation with a customer.
</context>
'''
print(context_section)タスクセクション
タスクセクションでは、モデルが何を生成すべきかを正確に記述します。具体的で行動指向であり、背景情報によるノイズがない内容にしてください。
task_section = '''
<task>
Draft a response to the customer message below.
The response should:
1. Acknowledge the customer's issue
2. Provide a concrete next step
3. Set a realistic expectation for resolution time
</task>
<customer_message>
Our Gantt chart view stopped loading after the last update.
This is blocking our sprint planning session today.
</customer_message>
'''
print(task_section)制約セクション
制約はガードレールを定義します。つまり、モデルがしてはいけないことと、守るべき明示的な制限を定めます。
constraints_section = '''
<constraints>
- Do not promise a fix by a specific date unless you are certain.
- Do not mention competitor products by name.
- Keep the response under 100 words.
- Use a professional but empathetic tone.
- Do not ask the customer for information already provided in their message.
</constraints>
'''
print(constraints_section)出力形式セクション
出力形式セクションでは、応答をどのように構成するかをモデルに正確に伝えます。たとえば、JSONスキーマ、Markdownの見出し、プレーンテキスト、番号付きリストなどです。
output_format_section = '''
<output_format>
Respond with a JSON object containing:
{
"subject": "string (email subject line)",
"body": "string (email body, plain text, under 150 words)",
"priority": "high | medium | low",
"escalate": true | false
}
Do not include any text outside the JSON object.
</output_format>
'''
print(output_format_section)例セクション
例によって、モデルに正しい入力と出力のペアを示します。モデルがデモンストレーションを見る前にルールを把握できるよう、例は制約の後に配置してください。
examples_section = '''
<examples>
<example>
<input>Customer: My invoices are not downloading.</input>
<output>{
"subject": "Invoice Download Issue",
"body": "Thank you for reaching out. We see the issue with invoice downloads and our team is investigating. We expect a fix within 2 hours. We will email you once resolved.",
"priority": "high",
"escalate": true
}</output>
</example>
</examples>
'''
print(examples_section)モジュール型プロンプトの組み立て
モジュール型のアプローチでは、組み立てと編集を簡単に行えます。各セクションを個別に変更できます。
def build_support_prompt(customer_message):
context = '<context>B2B SaaS customer support for project management software.</context>'
task = f'<task>Draft a JSON response to this customer message.</task>\n<customer_message>{customer_message}</customer_message>'
constraints = '<constraints>Under 100 words. Professional tone. No competitor names.</constraints>'
output_fmt = '<output_format>Return JSON: {"subject": str, "body": str, "priority": str, "escalate": bool}</output_format>'
return '\n\n'.join([context, task, constraints, output_fmt])
message = 'The Gantt chart stopped loading after your last update.'
print(build_support_prompt(message))デバッグにおけるメリット
モジュール型プロンプトで悪い出力が生成された場合は、問題のあるセクションを特定できます。
- 実行されたタスクが間違っている場合 — タスクセクションを確認します
- ルールに違反した場合 — 制約セクションを確認します
- 出力構造が間違っている場合 — 出力形式セクションを確認します
- 品質が低い場合 — 例セクションを確認するか、コンテキストを追加します
プロンプト全体を書き直さなくても、1つのセクションずつ変更して再テストできます。
保守におけるメリット
構造化オブジェクトや関数として保存されたモジュール型プロンプトは、長い文字列リテラルよりもはるかに保守しやすくなります。
- タスクのロジックに触れずに、製品の変更に合わせてコンテキストを更新する
- 制約を変更せずに、出力形式をJSONからMarkdownに切り替える
- 他の要素を一定に保ったまま、異なる例のセットをA/Bテストする
- 個々のセクションを独立してバージョン管理する
class Prompt:
def __init__(self):
self.context = ''
self.task = ''
self.constraints = []
self.output_format = ''
self.examples = []
def build(self):
parts = []
if self.context:
parts.append(f'<context>\n{self.context}\n</context>')
if self.task:
parts.append(f'<task>\n{self.task}\n</task>')
if self.constraints:
c = '\n'.join(f'- {r}' for r in self.constraints)
parts.append(f'<constraints>\n{c}\n</constraints>')
if self.output_format:
parts.append(f'<output_format>\n{self.output_format}\n</output_format>')
return '\n\n'.join(parts)セクションを省略する場合
すべてのプロンプトに5つすべてのセクションが必要なわけではありません。次の指針を使ってください。
- コンテキストを省略する — タスクだけで意味が明らかな場合(例:この文を翻訳してください)
- 制約を省略する — 特殊なケースのない単純な抽出タスクの場合
- 例を省略する — タスクが単純な場合、またはモデルがzero-shotですでに適切に実行できる場合
- タスクと出力形式は必ず含める — これらが最低限必要なセクションです
単純なプロンプトを過度に詳細化しても、ノイズが増えるだけでメリットはありません。
理解度チェック
モジュール型プロンプトで、誤った出力構造が生成されました。最初に確認すべきセクションはどれですか。
モジュール型セクション — 重要なポイント
モジュール型プロンプトのセクションは、保守しやすくデバッグ可能なプロンプトエンジニアリングの基盤です。
- 5つの中核セクション:コンテキスト、タスク、制約、出力形式、例
- 各セクションには単一の責務があり、それらを混在させると混乱が生じる
- モジュール型の構造により、セクション単位のデバッグとA/Bテストが可能になる
- プロンプトは生の文字列ではなく、構造化オブジェクトや関数として保存する
- 不要なセクションは省略する — 過度な詳細化はノイズを増やす
- 重要なプロンプトには、少なくともタスクと出力形式を必ず含める
AI チューターと学ぶ AI Prompt Engineering — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 53
- レッスン
- 199
よくある質問
「モジュール式のプロンプトセクション」レッスンは無料ですか?
はい。「モジュール式のプロンプトセクション」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AI Prompt Engineeringコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AI Prompt Engineeringコースには全4レッスンが含まれています。
「モジュール式のプロンプトセクション」で何を学びますか?
コンテキスト、指示、制約、出力形式を明確に分けます。 ブラウザで直接実行するハンズオンコードでAI Prompt Engineeringを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
AI Prompt Engineeringを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAI Prompt Engineeringは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「モジュール式のプロンプトセクション」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAI Prompt Engineeringレッスンでコードを書いて実行できますか?
はい。すべてのAI Prompt Engineeringレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- XML タグを区切り文字として使う
- モジュール式のプロンプトセクション
- ヘッダー・本文・フッターのプロンプトパターン
- プロンプト整理のベストプラクティス