基礎

開発者のためのプロンプトエンジニアリング

開発者向けプロンプトエンジニアリング。正しい変更を生むコーディング用プロンプトを書き、本番のプロンプトをバージョン管理・テスト・レビューを伴うコードとして扱います。

英語の原文からの翻訳です。コード、プロンプト、モデルの出力は英語のまま掲載しています。

開発者がプロンプトに出会う場面は 2 つあります。AI アシスタントにコードの変更を頼むときと、アプリケーションに組み込むプロンプトを書くときです。必要なスキルは重なりますが、失敗の起こり方は異なります。このガイドは両方を扱います。

パート 1:AI コーディングアシスタント向けのプロンプト

願望ではなく仕様を書く

1 文だけを与えられたコーディングアシスタントは、範囲、制約、そして「完了」の意味を推測しなければなりません。良いチケットに書くのと同じことを与えましょう。

fix login issue and make google login work and don't break anything
## Objective
Fix the login failure and make Google login work.

## Constraints
- Do not change the existing email and password flow.
- Keep the public API of AuthService unchanged.

## Edge cases
- Expired or revoked OAuth tokens.
- A Google account whose email already exists as a password account.

## Testing
- Add unit tests for the token exchange and the account-linking path.

## Acceptance criteria
- Existing auth tests pass. New tests cover both edge cases.

## Expected output
A summary of the cause, then the changed files as diffs.

2 つ目のプロンプトは書くのに 1 分余計にかかりますが、「そういう意味ではなかった」というやり取りを 1 往復減らせます。PromptFlowEngine の VS Code 拡張機能は、1 行のタスクと関連ファイルから、この構造を生成します。

すべてのコードではなく、適切なコードを渡す

コンテキストウィンドウは大きいですが、注意力は無限ではありません。変更が触れるファイル、守るべきインターフェース、プロジェクトの規約を示す例を 1 つ含めましょう。生成ファイル、ロックファイル、無関係なモジュールは除きます。

変えてはいけないことを書く

アシスタントは依頼に合わせて最適化します。後方互換性、公開インターフェース、性能が重要なら、そう書きましょう。「何も壊さないで」はモデルが確認できる制約ではありませんが、「GET /orders のレスポンススキーマは変更しない」は確認できます。

大きな変更では計画を求める

小さな編集を超えるものは、まず計画を求め、レビューしてから実装を求めます。これはコードに適用したプロンプトチェーンで、コードが書かれる前に誤ったアプローチを見つけられます。

返ってきたものを検証する

差分を読みましょう。テストを実行しましょう。大きな変更では、元のタスクと変更後のファイルをモデルに渡すレビュー用プロンプトを書き、変更が受け入れ基準を満たしていない箇所を挙げさせます。

パート 2:アプリケーション内のプロンプト

プロンプトをバージョン管理に置く

プロンプトはプログラムの振る舞いの一部です。ファイルに保存し、変更はプルリクエストでレビューし、バージョンにタグを付けます。プロンプトの管理とバージョニングを参照してください。

区切り付きの変数を使うテンプレートにする

ユーザー入力を指示に連結してはいけません。名前付きの変数を使い、それぞれをタグで囲みます。

PROMPT = """Classify the support ticket in the tags as billing, bug, or other.
Return only the label.

<ticket>
{ticket}
</ticket>"""

構造化された出力を要求して検証する

コードがレスポンスを解析するなら、スキーマに沿った JSON を要求し、提供元に構造化出力の機能があればそれを使い、結果を使う前に検証します。構造化出力のプロンプトを参照してください。

トークンの予算を立てる

固定のプロンプトが何トークン使うかを把握しましょう。呼び出しのたびに支払うからです。文字数による見積もりではなく、モデル本来のトークナイザーで数えます。トークン最適化を参照してください。

CI でプロンプトをテストする

モデルを使わずに検出できる回帰があります。出力形式の削除、セクションの重複、予算を超えたトークン数、コミットされた API キーなどです。プロンプトテストゲートは、これらをプルリクエストごとに実行します。

- run: promptflow check "prompts/**/*.md" --min-score 70 --max-tokens 1500

モデルの出力を信頼できないものとして扱う

出力は誤っていることがあり、入力に注入されたテキストに誘導されることもあります。ユーザー入力に適用するのと同じ検証なしに、シェル、SQL クエリ、HTML ページへ渡してはいけません。プロンプトセキュリティを参照してください。

コードからエンジンを呼び出す

同じチェックは、キーなしで HTTP 経由でも利用できます。簡単な結合テストや社内ツールに便利です。

curl -s https://promptflowengine.com/api/v1/analyze \
  -H 'content-type: application/json' \
  -d '{"prompt":"Write something about our product."}'

エンドポイントは HTTP API を、コーディングエージェントへの接続は MCP を参照してください。

実践してみる

VS Code 拡張機能で試す

PromptFlowEngine のプロンプト最適化を開発ワークフローに直接取り込みます。 無料・決定論的で、アカウントは不要です。

関連する PromptFlowEngine ツール

基礎のその他のガイド

プロンプトエンジニアリングガイドをすべて見る