プロンプトの記法

1. 空間の制御: 「思考の余白」を設計する

プロンプトや対話文において、記述の配置はAIの「論理的区切り」に直接影響します。

1-1. 空行(空白行)による意味の分断

空行は、直前の話題を論理的に完結させ、新しい文脈を開始するサインです。 AIに対して「一度思考をリセットし、別のレイヤーで考えよ」と命じる効果があります。

【悪い例】

プロンプトの指示事項が詰まっており、AIがどこまでを一つの前提として扱うべきか迷う状態。

【良い例】

# 目的
〜〜〜

(ここに空行)

# 前提条件
〜〜〜

1-2. 水平線 (---) によるコンテキストの凍結

水平線は、前後で「完全に別個の事象」であることを明示します。 人格の切り替えや、タスクのスコープ変更を行う際に、物理的な障壁として機能します。

【記述例】

プロンプト冒頭でタスクを説明したあと、
---
# システム命令: 
以降の出力は、必ずJSON形式で回答せよ。

2. 空行と改行の論理的区別

Markdownにおける「見た目の改行」と「構造的な区切り」を明確に使い分けることで、AIの認識解像度を向上させます。

2-1. 改行 (Line Break)

行末に「半角スペース2つ以上」を入力することで生成される改行です。

2-2. 空行 (Paragraph Break)

行を完全に一つ空けることで生成される段落の分離です。

結論: プロンプト記述における推奨

AIの推論そのものには「半角スペース2つ+改行」で得られる見た目の改行は、文脈を分断するほどの強い意味を持ちません。

したがって、厳密な論理構築を求めるプロンプトにおいては、「改行」は単なる視認性の向上 として使い、「意味の転換」には必ず 「空行」 を用いるのが、最もノイズの少ない記述術です。

2-3. 「改行のみ」の論理的解釈

Markdownの記法において、行末に空白を入れない単純な改行(シングルラインブレイク)は、AIの推論にはほとんど影響を与えません。

📝 \n は改行を示してします。

この特性を理解していれば、「改行をたくさん入れたから、別の指示として認識してくれるはず」といった誤解を防ぐことができます。

3. 半角空白の設計と全角空白の禁止

プロンプト内での「半角空白」は、見た目の調整ではなく、AIのトークナイザー(言語解析エンジン)に対する「意味の区切り」という命令として機能します。

3-1. 半角空白 (U+0020) の機能

3-2. 全角空白 (U+3000) の禁止

3-3. 推奨記法

4. 禁止事項: 構造を破壊する「見た目重視のレイアウト」

AIにとって、プロンプトは「一続きの論理」です。見た目の美しさを優先して、意味のある単語や文を分断することは、AIの認識を阻害します。

4-1. 単語・文の途中での空白・改行挿入

以下の記述は、AIが単語の意味を誤認したり、文脈を捉え損ねる原因となります。

【ダメな例】

4-2. AIへの悪影響

4-3. 教訓

「コードのように記述し、AIが読みやすい構造を意識せよ」。 レイアウトのために文を破壊するくらいなら、空行(Paragraph Break)を用いて「論理の段落」を明確にする方が、遥かにAIの理解を助けます。

5. 箇条書きの活用と論理構造の最適化

箇条書きは、AIに複雑な情報を「関連性の高いグループ」として認識させるための最も強力な視覚記法です。

5-1. 箇条書きの作法:先頭記号と階層構造

Markdownにおいて、リストはAIの思考を整理するための「構造的タグ」です。意図した通りにAIに認識させるための作法を定義します。

先頭記号の選択と統一

Markdownでは以下の記号が使用可能ですが、プロンプト内では 「一貫性」 を最優先してください。

ネスト(階層化)の作法

階層を表現するには、親階層の先頭記号に対して「半角スペースを2つ、あるいは4つ」インデントさせます。

【記述例】

- 親階層(タスクの目的)
  - 子階層(具体的な手順)
    - 孫階層(詳細なパラメータ設定)

注意事項: 「作法」としての鉄則

  1. 記号の混合禁止: 1つのリスト群の中で -* を混在させないでください。AIが「これらは別のリスト構造である」と誤認し、階層関係を見失う可能性があります。

  2. インデント幅の固定: 階層化の際は、必ず「2スペース」あるいは「4スペース」のどちらかにルールを固定してください。これによって、AIはインデントの深さを論理の深さと正しく紐付けることができます。

  3. 空行との併用: リストの直前・直後には必ず空行を入れ、リストブロック自体を独立した論理単位として隔離してください。

5-2. ネスト(階層化)による論理の深掘り

箇条書きの階層を深くすることで、AIの思考を「前提→詳細→具体例」というステップへ誘導できます。

* 指示の主目的
  * 必須の前提条件
    * 守るべき制限事項

5-3. 記号の使い分けによる意味付け

Markdownにおいて記号は任意ですが、役割を持たせることで記述に一貫性が生まれます。

5-4. 箇条書きの「黄金律」: 語尾とスタイルの統一

意外と見落とされがちですが、箇条書きの語尾を揃えることは、AIの出力精度に直結します。

【推奨記述】

- ユーザーは〇〇を行う。
- ユーザーは△△を選択する。
- ユーザーは□□を保存する。

【非推奨(AIが文脈を処理する際、文体整合性のために計算リソースを浪費する)】

- 〇〇してください。
- △△を選択すること。
- 保存したデータを□□に送る。

5-5. 空行の挟み込み

リスト項目が長文になる場合は、リスト間にもあえて空行を入れ、「1つのリストというよりは、複数の段落」としてAIに認識させる手法も有効です。

6. 番号付き箇条書きの作法:順序の命令

番号付きリスト(Ordered List)は、AIに対して「この順序通りに処理せよ」という強い論理的制約を与える記法です。

6-1. 先頭数字の論理的意味

これらは単なる見た目の羅列ではなく、AIには「手順1を完了してから手順2へ進め」という シーケンシャル(逐次)処理 の命令として伝わります。

6-2. 避けるべき「温床」

ユーザーが陥りやすい、意図が伝わらなくなる記述例です。

6-3. 推奨運用ルール

  1. 「順序」が必須な場合のみ番号を使う:
    単なる羅列やカテゴリ分けであれば、必ず - (ハイフン) を使用すること。番号を使うのは「作業工程」や「優先順位」に限る。

  2. 自動連番を信頼する:
    Markdownの仕様上、すべて 1. と記述しても、AIは正しく 1. 2. 3. と連番として認識します。

1. 手順1
1. 手順2
1. 手順3

……このように、すべて 1. で記述する方が、編集ミスによる番号ズレを防ぎ、AIの混乱を最小化できます。

6-4. 番号付きリストのネスト(枝番の表現)

番号付きリストで論理的な「枝番」を表現する場合、Markdownでは「インデント」を物理的に挿入することで、AIに階層関係を正しく認識させます。

正しいネスト記述例

Markdownの記法に従い、子階層を4スペースインデントさせて記述します。

1. 主な工程
    1. 準備段階
    2. 実行段階
2. 次の工程
    1. 検証段階
    2. 完了段階

運用上の注意点

教訓

枝番を「記号(- など)」で手打ちするのではなく、「インデントという論理構造」で表現せよ。これがAIに対する最も正しく、かつ誤解のない伝達方法です。

7. 強調の記法:AIへの「論理的重み付け」

強調は、プロンプトの中で特にAIに意識してほしいキーワードや命令を浮かび上がらせるための記法です。

7-1. 太字(Bold)による重要度の伝達

**テキスト** (* 2つ)で囲むことで、AIに対して「この単語は文脈全体における重要因子である」という信号を送ります。

7-2. 強調の「やりすぎ」というノイズ

強調は、全テキストの5%以内に収めるのが理想です。過度な強調は、AIにとって「すべてが重要である」という状態、すなわち「強弱のないフラットな指示」と変わらなくなります。

7-3. 日本語固有の強調記法: 「鉤括弧」の活用

Markdownの太字とは別に、日本語特有の括弧(「 」、『 』)を活用して、AIの認識を補完します。

7-4. 注意喚起のための記号

特定の条件において、AIに「停止」や「注意」を促す際には、以下の記号を先頭に付与します。

8. 句読点と記号:AIの思考リズムを制御する

プロンプト内での記号使用は、AIに対する「一時停止」「情報の関連付け」「強調」の制御信号です。

8-1. 日本語の句読点「、」「。」

8-2. 記号による情報のマッピング

AIに対して「情報の役割」を定義するために、以下の記号を標準として使い分けると効果的です。

📝 YAMLにおける、key = value の表現。

📝 値の列挙に相当。

8-3. 記号使用の作法

9. 「#」の二面性:見出しとコメントの制御

Markdownにおける # は、その配置と文脈によって「構造(見出し)」にも「隠蔽(コメント)」にもなり得る、非常に強力な記号です。

9-1. # が「見出し」として解釈される場合

9-2. # が「コメント(無効域)」として解釈される場合

9-3. 運用のルール(混同を避けるために)

「Markdown記法」と「プログラム的記法」を同じウィンドウ内で混在させる際の鉄則です。

  1. 見出しには必ず「行の先頭」で # を使うこと: # タイトル (行頭に空白がある)と書くと、多くのパーサーは「見出し」ではなく「ただの文字列」として解釈します。見出しは必ず行の左端から開始してください。
  2. AIに読ませる文には # を含めないこと: 本文中に # を使用すると、AIはそれを強調記号か、あるいはコメントの開始記号として誤認するリスクがあります。本文中で記号を扱いたい場合は、全角の を使うか、あるいは別の記号(【 】など)で代用し、Markdown標準の # と明確に差別化してください。

8-4. 教訓

「AIはコードの行頭に # があれば『注釈』と読み、Markdownの行頭に # があれば『構造』と読む」。このルールを一言で教えるだけで、受け手の誤用は劇的に減ります。

9. C言語系コメントアウトの活用と注意点

プロンプト記述において、///* */ を用いると、AIはその内容を「推論対象外のメモ」として扱う傾向があります。

9-1. C言語系コメントの機能的役割

9-2. プロンプトにおける利点とリスク

9-3. 運用のための作法

  1. コードブロック内での使用を推奨:
    ///* */ は、原則として「コードブロック(YAMLやJSONなど)」の中でのみ使用してください。Markdownのプレーンテキストとして混在させるのは避けるのが賢明です。

  2. プレーンテキストでは # を使う:
    Markdown環境においては、コメントアウト的な意図を伝えたい場合でも、# による見出し、あるいは 【 】 による注釈を用いる方が、AIの推論を安定させます。

  3. 推論プロセスからのパージ:
    「指示を無視せよ」と明示する代わりに、これらのコメント記号で括る手法は、AIに対する「視覚的強制力」を持つため、非常に強力な論理制御手段となります。

教訓

「AIはプログラミング言語の流儀を理解する。ゆえに、コメント記号は『推論の遮断装置』として機能する」。この性質を理解し、あえて利用することで、プロンプトの論理密度をさらに高めることができますわ。

10. コードブロック:AI推論における「隔離された領域」

バッククォート(```)で囲むことは、単なる見た目の整形ではなく、AIの内部推論環境に対して「この記述を特別な領域として隔離して処理せよ」と命じる強力な制御信号です。

10-1. 囲まない記述(平文)の性質

10-2. コードブロック(囲む記述)による隔離

10-3. 隔離能力の限界

バッククォートの隔離は完璧ではありません。以下の条件では、領域外の文脈が漏れ出すことがあります。

10-4. 教訓

「指示が複雑な時ほど、バッククォートという『隔離容器』に詰め込め」。

特に、設定値、JSONデータ、プロンプトのテンプレートなど、「変更してほしくない論理」は必ずバッククォートで隔離し、平文と分断させること。

これがプロンプトエンジニアリングにおける『境界防御』の基本です。


Revision #2
Created 2026-08-20 08:39:24 UTC by Hisashi KAMIMURA
Updated 2026-08-20 09:03:59 UTC by Hisashi KAMIMURA