AI Engineering Notes
プロンプトエンジニアリングとは
プロンプトを小手先の文言調整ではなく、仕様化、評価、再現性、入力設計として整理します。
プロンプトは仕様である
プロンプトエンジニアリングは、うまい言い回しを探す作業だけではありません。実務では、入力、制約、出力形式、判断基準、失敗時の扱いを仕様として書く作業です。
LLMは入力文脈に強く影響されるため、曖昧な依頼を渡すと曖昧な出力になります。逆に、期待する振る舞いを分解して渡すと、評価しやすくなります。
分けて考える要素
| 要素 | 例 |
|---|---|
| 役割 | 技術記事の編集者として確認する |
| 入力 | ユーザー質問、検索結果、ツール結果 |
| 制約 | 根拠がない場合は断定しない |
| 出力形式 | 箇条書き、JSON、表、Markdown |
| 評価 | 正確性、網羅性、短さ、引用の有無 |
再現性を上げる
プロンプト改善で最初に必要なのは、比較できる入力セットです。
同じプロンプトを、典型例、境界例、失敗例に対して試します。変更前後でどの出力が改善し、どの出力が悪化したかを見ることで、感覚ではなく評価に近づきます。
構造化出力との関係
出力をJSONにしたい場合、プロンプトだけで完全に安定させるのは難しいことがあります。その場合は、モデルの構造化出力機能、Tool calling、JSON Schemaによる検証を組み合わせます。
{
"answer": "RAGは検索結果をLLMに渡して回答させる設計です。",
"confidence": "medium",
"sources": ["notes/rag"]
}
このように、出力形式を固定すると、UI表示、保存、後続処理に渡しやすくなります。
実務での最初の型
最初は、次の型だけでも十分に効果があります。
目的:
入力:
使ってよい情報:
禁止事項:
出力形式:
判断に迷ったとき:
この型は派手ではありませんが、チームで共有しやすく、テスト可能なプロンプトへ近づきます。