OpenAI は、API で再利用可能なプロンプトオブジェクトを段階的に廃止します。2026 年 6 月 3 日以降は新規プロンプトの作成を積極的に案内しなくなり、2026 年 11 月 30 日には v1/prompts の提供を終了する予定です。最新のスケジュールは廃止予定の一覧をご確認ください。
OpenAI API プラットフォームの Prompts から移行するには、管理対象の prompt オブジェクトからアプリケーションコードにプロンプトの内容を移します。これにより、レビュー、テスト、デプロイ、バージョン管理の方法をより柔軟に決められます。
移行前:プロンプトオブジェクトの使用
プロンプトオブジェクトの使用
JavaScript
import OpenAI from "openai";
const client = new OpenAI();
const response = await client.responses.create({
prompt: {
id: "pmpt_123",
version: "1",
variables: {
customer_name: "Acme",
issue: "billing question",
},
},
});移行後:コード内でのプロンプトの直接定義
コード内でのプロンプトの直接定義
JavaScript
import OpenAI from "openai";
const client = new OpenAI();
const response = await client.responses.create({
model: "gpt-6-astra",
input: [
{
role: "system",
content:
"You are a helpful support assistant. Be concise, accurate, and friendly.",
},
{
role: "user",
content:
"Customer name: Acme. Issue: billing question. Write a response to the customer.",
},
],
});
console.log(response.output_text);Codex を使った移行
OpenAI Developers プラグインと OpenAI Docs スキルを使うと、移行を自動化し、OpenAI API を使った開発を効率化できます。
$openai-docs プロンプトオブジェクトを使う代わりに、プロンプトをコード内に保存するようにこのプロジェクトを更新してください。
変更点
API リクエストで保存済みのプロンプトオブジェクトを参照する代わりに、プロンプトのテキストをコードベースに保存し、生成したメッセージを Responses API の呼び出しで input に直接渡します。
- プロンプトの内容をソースコードに移します。プロンプトの変更にも、プロダクトのロジックと同じレビューとリリースの手順を適用できます。
- プロンプト変数を関数の引数に置き換えます。アプリケーション側で動的な値を明示し、その型を指定できます。
- メッセージは
inputに渡します。Responses API の呼び出しでは、これがpromptオブジェクトの代わりになります。 - リポジトリでバージョンを管理します。Git のコミット、PR のレビュー、テストや評価を活用します。
- 静的な内容を先に、動的な内容を後に配置します。キャッシュがヒットするにはプロンプトの先頭部分が完全に一致する必要があるため、この順序にするとプロンプトキャッシュの効果を維持できます。
例
ヘルパー関数を使ったプロンプトの組み立て
JavaScript
import OpenAI from "openai";
const client = new OpenAI();
function buildSupportPrompt({ customerName, issue }) {
return [
{
role: "system",
content:
"You are a helpful support assistant. Be concise, accurate, and friendly. Do not invent policy details.",
},
{
role: "user",
content: `Customer name: ${customerName}. Issue: ${issue}. Write a response to the customer.`,
},
];
}
const response = await client.responses.create({
model: "gpt-6-astra",
input: buildSupportPrompt({
customerName: "Acme",
issue: "billing question",
}),
});移行のメリット
プロンプトをプロダクトのコードと一緒に管理すると、変更を PR でレビューし、テストや評価を CI で実行できます。段階的なリリースや実験も、アプリケーション側の設定や機能フラグで制御できます。
プロンプトをコードベースのあちこちに直接書くのは避けてください。小さな prompts/ モジュールを作り、各プロンプトを組み立てる関数にそれぞれ名前を付けます。簡単な評価用フィクスチャを追加し、プロンプトの変更をプロダクトのロジックと同じようにレビューできるようにします。