Codex CLI プロンプトテクニック
効果的なプロンプトテクニックを習得することは、Codex CLI を最大限に活用するための鍵です。このセクションでは、最良の結果を得るための効率的なプロンプトの書き方を詳しく説明します。
プロンプトの基本
プロンプトを送信して Codex と対話し、完了してほしいタスクを説明します。
基本例
基本プロンプト
"Explain how the transform module works and how other modules use it."
# 新機能を追加
"Add a new command-line option `--json` that outputs JSON."
# バグを修正
"Fix the error in the login function"
プロンプトの仕組み
プロンプトを送信すると、Codex は次のループで動作します:
- 言語モデルを呼び出す
- モデルの出力が指示する操作を実行する(ファイルの読み取り、ファイルの編集、ツールの実行など)
- タスクが完了するか、ユーザーがキャンセルするまで繰り返す
このループを理解すると、プロンプトをより適切に設計できます。Codex は各ステップでコンテキストに基づいて意思決定を行うためです。
効果的なプロンプトを書くためのテクニック
テクニック1: 検証ステップを含める
Codex は作業を検証できる場合、より高品質な出力を生成します。検証ステップを含めると、Codex が正確性を確保するのに役立ちます:
検証を含むプロンプト
"Write a function to sort a list"
# 推奨 - 検証を含める
"Write a function to sort a list. Include test cases to verify it handles empty lists, already-sorted lists, reverse-sorted lists, and lists with duplicates. Run the tests to confirm they pass."
テクニック2: 複雑なタスクを小さなステップに分割する
Codex は、より小さく焦点を絞ったタスクを処理するときに優れたパフォーマンスを発揮します。小さなタスクはテストとレビューが容易です:
タスクの分割
"Create a complete user authentication system with login, registration, password reset, and OAuth"
# 推奨 - 小さなステップに分割
"Step 1: Create a user model with email and password fields
Step 2: Add a registration endpoint
Step 3: Add a login endpoint with JWT
Step 4: Add password reset functionality
Let me know when Step 1 is done before moving to Step 2"
テクニック3: コンテキストを提供する
関連ファイルや画像の参照など、Codex が使用できるコンテキストを提供します:
コンテキストの提供
"Fix this bug"
# 推奨 - 詳細情報を含める
"Fix the bug in src/auth.py where users can't log in with special characters in their password. I've attached a screenshot of the error message and the relevant code section."
テクニック4: 出力形式を明確にする
Codex に期待する出力形式を伝えます:
出力形式の指定
"Write a function to calculate Fibonacci numbers. Use TypeScript, include JSDoc comments, and follow functional programming principles."
# 出力構造を指定
"Explain the codebase structure. Organize your answer with: 1) Overview 2) Key directories 3) Main entry points"
具体的なプロンプトほど、通常は良い結果が得られます。Codex は意図の理解に優れていますが、提供する情報が多いほど、より良いパフォーマンスを発揮します。
スレッド
スレッドは単一のセッションです。プロンプトと、その後のモデル出力およびツール呼び出しで構成されます。1つのスレッドに複数のプロンプトを含めることができます。
ローカルスレッド vs クラウドスレッド
| タイプ | 説明 | 利点 |
|---|---|---|
| ローカルスレッド | ユーザーのマシン上で実行 | ファイルの読み書き、既存ツールの使用が可能 |
| クラウドスレッド | 分離された環境で実行 | 並列実行、他のデバイスからのタスク委任が可能 |
セッションの復元
以前のセッションを復元する
codex resume
# 最近のセッションに直接移動
codex resume --last
# 指定したセッションを復元
codex resume <SESSION_ID>
セッション管理
実行中のスレッドは並列実行できますが、2つのスレッドが同時に同じファイルを変更することは避けてください。また、後で別のプロンプトを続けて送信することで、スレッドを復元できます。
コンテキスト管理
プロンプトを送信するとき、関連ファイルや画像への参照など、Codex が使用できるコンテキストを含めます。IDE 拡張機能は、開いているファイルのリストと選択したテキスト範囲を自動的にコンテキストとして追加します。
コンテキストウィンドウ
スレッド内のすべての情報は、モデルのコンテキストウィンドウに収まる必要があります。Codex は残り容量を監視して報告します。
自動圧縮
長いタスクの場合、Codex は関連情報を要約して関連性の低い詳細を破棄することで、コンテキストを自動的に圧縮することがあります。Codex は複数のステップにわたって複雑なタスクを処理し続けることができます。
手動でのコンテキスト管理
次の方法で Codex のコンテキスト管理を支援できます:
- 現在のタスクに集中する
- 1つのプロンプトに複数の独立したタスクを混在させない
- 定期的に新しいセッションを開始する(
/new)
Codex がコンテキスト使用量の増加を報告した場合は、新しいセッションを開始するか、履歴メッセージを減らすことを検討してください。
高度なプロンプトテクニック
プランモードの使用
複雑なタスクの場合は、プランモードを使用して Codex に先に計画を立てさせてから実行させます:
プランモード
/plan ユーザー認証システムを実装
# またはプロンプトに "plan" を含める
"Plan and implement a REST API with CRUD operations for a blog"
レビューモードの使用
直接変更するのではなく、Codex にコードのレビューを依頼します:
レビューモード
/review src/auth.py
# またはレビュー要件を記述
"Review this code for potential security vulnerabilities and suggest improvements"
変更範囲の制限
Codex に何を変更してよいかを明確に伝えます:
変更範囲の制限
"Explain what this function does, don't make any changes"
# ファイル範囲を限定
"Add logging only to the auth module, don't touch other files"
# 段階的な確認
"Let me know the proposed changes before you make them"
プロンプトテンプレート
以下は、よく使用されるプロンプトテンプレートです:
コード生成
Write a [语言] function that [功能描述]. Requirements: - [需求1] - [需求2] Include: - 详细的文档注释 - 错误处理 - 测试用例
コードレビュー
Review the [文件/模块] for: - Potential bugs - Security issues - Performance problems - Code style violations Provide: - Issue list with severity - Suggested fixes - Overall quality score (1-10)
バグ修正
Fix the bug in [文件:行号/函数名]. Error: [错误信息] Expected behavior: [期望行为] Steps to reproduce: [复现步骤]
リファクタリング
Refactor [文件/函数] to [目标]. Current issues: - [问题1] - [问题2] Constraints: - 保持功能不变 - 不要改变 API 接口 - 添加单元测试
習うより慣れよ。プロンプトを書く練習を重ねることで、最良の結果を得る方法を徐々に習得できるでしょう。
よくある質問
Q: Codex が私のプロンプトを理解してくれない場合はどうすればよいですか?
試してみてください:1) より具体的に説明する 2) より多くのコンテキストを提供する 3) より小さなステップに分解する 4) 期待する出力の例を示す
Q: プロンプトは英語と中国語のどちらを使うべきですか?
Codex は多言語をサポートしていますが、通常は英語が最も効果的です。中国語で記述する場合は、説明が十分に詳細かつ明確であることを確認してください。
Q: Codex にコードを修正させずに分析だけさせるにはどうすればよいですか?
"只读"(読み取り専用)または "don't make any changes" と明確に伝えると、変更せずに分析のみを提供します。
Q: コンテキストウィンドウがいっぱいになったらどうすればよいですか?
新しいセッションを開始する(/new を使用)か、Codex に履歴を圧縮させます(自動的に処理されます)。
その他の拡張機能