Codexは、次のようなソフトウェアである。 codex-1 Codexはモデルを中心としたクラウドベースのソフトウェアエンジニアリングインテリジェンスで、現在ChatGPTに統合されています。Codexは単純なコード生成ツールではなく、複雑なプログラミングタスクを自律的に実行できるエージェントであり、ユーザーのコードベースをプリロードする機能を備えた、独立した安全なクラウドサンドボックス環境で動作します。新機能の開発、バグの修正、自然言語命令に基づくコードベースに関する質問への回答などのタスクを実行する。実行中は、ファイルの読み書きだけでなく、テストやコード整形ツールも実行し、タスクが完了するまで繰り返し検証を行います。タスクが完了すると、Codexはコードの変更をコミットし、ターミナルログやテスト出力を含む検証可能な操作の記録を提供し、ユーザーがレビューできるようにします。

機能一覧
- 完全なエンジニアリング・タスクの実行バグ修正や新機能の実装など、特定のソフトウェアエンジニアリングタスクを、ユーザーの指示に基づいてクラウドベースの別環境で実行する。
- コードベースの相互作用あらかじめユーザー・コード・ベースがロードされたサンドボックス環境で、ファイルを直接読み、編集し、書き込むことができます。
- ターミナルコマンドの実行隔離された環境でコマンドを実行することができます。
test runners)、コード・フォーマット・チェッカー(linters)とタイプチェッカー(type checkers). - 自動テストと修復もしテストが失敗すれば、テストがパスするまで変更を繰り返す。
- コード変更およびレビュー依頼の作成タスクが完了したら、次のタスクを提出する。
git commitGitHubのPull Requestは、完全な動作の証拠とともに手動レビューのために生成することができます。 - プロジェクトの仕様に従うプロジェクトの
AGENTS.mdドキュメンテーション、特定の開発環境設定、テスト指示、プロジェクト標準作業手順を学び、それに従う。 - コードベースQ&AユーザーはCodexに質問することで、現在ロードされているコードベースに関する情報や説明を得ることができます。
- 安全な隔離の実施すべてのタスクは、外部ネットワークから隔離されたセキュアなコンテナ内で実行され、ユーザーコードのセキュリティを確保します。
ヘルプの使用
Codexは、従来のコード生成を超える強力なソフトウェアエンジニアリングのインテリジェンスとして使用されます。Codexは、リモートで共同作業を行うソフトウェアエンジニアをシミュレートし、そのエンジニアにタスクを委任し、タスクが完了したらレビューを行います。
コア使用プロセス
- スタート・コーデックス:
- ある チャットGPT をクリックし、コーデックスを選択します。
- ガイドラインに従ってCodexをGitHubのコードベースに接続すると、codexはそのコードベースをクローンし、別のクラウドサンドボックス環境で動作させる。
- タスク:
- プログラミング・タスクの実行バグの修正や新機能の追加など、コードを修正させたい場合は、クリアコマンドを入力して
Codeボタン。良いコマンドは十分な文脈を含んでいなければならない。astropy/astropy図書館での質問:Modelingなseparability_matrixネスティングを正しく計算できないCompoundModels分離可能性の" - コードベースに関する質問コードベースのある側面について知りたいだけなら、質問を入力して
Askボタンです。例えば、"このプロジェクトでユーザー認証を処理するロジックはどこにあるのか説明してください"。
- プログラミング・タスクの実行バグの修正や新機能の追加など、コードを修正させたい場合は、クリアコマンドを入力して
- 監視と待機:
- タスクが開始されると、Codexはバックグラウンドのサンドボックス環境で自律的に動作する。タスクの複雑さにもよりますが、この処理には1分から30分ほどかかります。
- Codexの実行状況をリアルタイムでモニターすることができ、ファイルの読み込みやコマンドの実行など、何が行われているかが表示される。
- レビュー結果:
- タスクが完了すると、Codexはサンドボックス環境で行ったコード変更をコミットする。
- 実行された端末コマンドのログやテスト出力結果など、動作の検証可能な証拠を含む詳細なレポートを提供します。これにより、タスクの各ステップを完全にトレースすることができ、その操作の透明性と正確性が保証されます。
- 修正したコード、コミットメッセージ、テスト結果を注意深く確認することができる。
- フォローアップ手術:
- 修正依頼:: もし結果が期待通りでなかった場合は、引き続き変更を要求することができます。
- 変更リクエストの作成CodexにGitHub Pull Requestを作成してもらえば、チームがコードをレビューしやすくなります。
- ローカリゼーション変更をローカルの開発環境に直接統合することもできます。
利用する AGENTS.md ファイル・ブート・コーデックス
コーデックスをより効率的で正確なものにするには AGENTS.md ファイルに似ている。このファイルは README.mdこれは、AI知能のために特別に書かれた取扱説明書である。
- は英語の -ity、-ism、-ization に対応する。コードベース内をどのようにナビゲートするか、どのようなテスト命令を実行するか、プロジェクトがどのようなコーディング規約に従っているか、標準的な作業手順はどのようなものかを、ファイルの中でCodexに伝えることができます。
- コンテンツ例:
# AGENTS.md ## 如何运行测试 要运行完整的测试套件,请在项目根目录执行以下命令: `pytest` ## 编码规范 本项目遵循 PEP 8 编码规范。在提交代码前,请确保运行 `flake8 .` 并且没有错误报告。 ## 关键模块说明 - `src/core/auth.py`: 负责用户认证和会话管理。 - `src/api/v1/`: V1版本的所有API端点定义。
人間の開発者と同じように、Codexは、開発環境がうまく構成され、テストフレームワークが安定しており、ドキュメントが明確であるときに最高のパフォーマンスを発揮する。
アプリケーションシナリオ
- 定期メンテナンス作業の自動化
コードのリファクタリング、変数や関数の名前の変更、既存のコードへのユニットテストの追加など、繰り返しが多く、スコープが明確なタスクは、すべてCodexに任せることができ、開発者はより創造的な作業に集中することができる。 - 既知のバグを素早く修正
明確なバグレポートを受け取った場合、開発者はそのレポートをタスクとしてCodexに渡すだけで、Codexが自動的に問題のコードを特定し、修正パッチを書き、関連するテストを実行して修正の有効性を検証し、最終的に変更リクエストを生成する。 - 新しい機能的フレームワークの構築
新しい機能を開発する際、Codexに新しいAPIエンドポイントの作成、データモデルの定義、コンポーネントのサンプルファイルの生成など、基盤となるフレームワークコードの構築を指示し、開発プロセスの開始を早めることができます。 - コードベースの品質向上
開発者はCodexに、「プロジェクト内のすべての不適合コードをフォーマットする」、「プロジェクト内のすべての不適合コードに対応する新しいコードを作成する」、「プロジェクト内のすべての不適合コードをフォーマットする」などのコード品質改善タスクを委任することができます。userモジュールは、90%以上のテストカバレッジを達成するためにテストを追加する」など。
品質保証
- プライベート・コード・ベースをCodexにリンクしても安全ですか?
Codexは、完全に隔離された安全なクラウドサンドボックスコンテナ内ですべてのタスクを実行します。タスク実行中、ネットワークアクセスは無効化され、インテリジェンスはGitHubのコードリポジトリと、コマンドで承認したプリインストールされた依存パッケージのみにアクセスでき、外部のウェブサイトやAPI、その他のサービスにはアクセスできません。 AGENTS.md書類は必要ですか?
必須ではありませんが、Codexのパフォーマンスを向上させるのに役立ちます。このファイルがないと、Codexは一般的なトレーニング知識に基づいてプロジェクトを理解し、操作しようとします。しかしAGENTS.md新しくチームに加わったエンジニアのためのプロジェクトガイドのようなドキュメンテーションがあれば、早くチームに馴染み、プロジェクト特有の基準やプロセスに従うことができる。- CodexとChatGPTで直接コードスニペットをリクエストすることの違いは何ですか?
この2つは全く異なる動作モードです。ChatGPTで直接コードを要求するのは「テキスト生成」であり、AIはあなたの記述に基づいてコードのテキスト部分を出力します。一方、Codexは「ソフトウェア・エンジニアリング・インテリジェンス」であり、実際の(しかし隔離された)開発環境であなたのコードベース全体を操作し、ファイルの読み書き、コマンドの実行、テストの実行、バージョン管理へのコミットなど、完全に自動化されたワークフローを実現します。 - Codexはタスクの実行にどのくらい時間がかかりますか?直接の質疑応答よりも遅いのはなぜですか?
Codexは、コードベースのクローン、要件の分析、コードの記述、反復的なテストの実行、変更のコミットなど、一連のステップを必要とする非同期の委任タスクを実行します。これは実際の開発者のワークフローを模倣しているため、Instant Q&Aよりも時間がかかり、通常は1~30分です。これは、バックグラウンドタスクを同僚に委任するのと似ており、完了するまでに一定の時間がかかる。
コーデックス-1 システム・キュー
#説明書
- ユーザーはタスクを提供する。
- このタスクでは、現在の作業ディレクトリにあるGitリポジトリを操作する。
- 終了する前に、すべてのターミナル・コマンドが完了するのを待つ(あるいは終了させる)。
#のギット手順
ユーザーのタスクを完了するために、ファイルの書き込みや変更が必要な場合。
- 新しいブランチを作らないでください。
- gitを使って変更をコミットする。
- プレコミットに失敗した場合は、問題を修正して再試行する。
- git statusをチェックしてコミットを確認します。 ワークツリーはクリーンな状態にしておく必要があります。
- コミットされたコードのみが評価される。
- 既存のコミットを修正または変更しないでください。
# AGENTS.md仕様
- コンテナには、AGENTS.md ファイルが含まれていることがよくあります。 これらのファイルは、コンテナのファイルシステムのどこにでもあります。典型的な場所としては `/` や `~` 、Git リポジトリ内のさまざまな場所があります。
- これらのファイルは、人間があなた(エージェント)にコンテナ内での作業の指示やヒントを与えるためのものです。
- たとえば、コーディング規約、コードの構成方法に関する情報、コードの実行方法やテスト方法に関する説明などである。
- AGENTS.md ファイルには、PR メッセージ (エージェントが作成した GitHub Pull Request に添付されるメッセージ。これらの指示は尊重されるべきです)。 これらの指示は尊重されるべきです。
- AGENTS.mdファイルの指示。
- AGENTS.mdファイルのスコープは、それを含むフォルダをルートとするディレクトリ・ツリー全体です。
- 最終パッチで触れるすべてのファイルについて、そのファイルをスコープに含むすべてのAGENTS.mdファイルの指示に従わなければならない。
- コードのスタイル、構造、命名などに関する指示は、ファイルに別段の記述がない限り、AGENTS.mdファイルの範囲内のコードにのみ適用されます。ファイルに別段の記述がない限り、AGENTS.mdファイルの範囲内のコードにのみ適用されます。
- より深くネストされたAGENTS.mdファイルは、指示が衝突した場合に優先される。
- (プロンプトの一部としての)システム/開発者/ユーザーの直接の指示は、AGENTS.mdの指示よりも優先される。
- AGENTS.mdファイルはGitリポジトリだけにある必要はない。 例えば、あなたのホーム・ディレクトリにもあるかもしれない。
- AGENTS.mdに、あなたの作業を検証するためのプログラム・チェックが含まれている場合、あなたはそれらのすべてを実行し、すべてのコード変更が行われた後で、チェックがパスすることを検証する最善の努力をしなければなりません。すべてのコード変更が行われた後で、チェックがパスすることを検証する最善の努力をしなければならない。
- これは、文書化など単純に見える変更にも当てはまります。 それでも、プログラム上のチェックをすべて実行する必要があります。
#の引用指示
- ファイルをブラウズしたり、ターミナルコマンドを使用した場合は、関連する最終応答(PR メッセージの本文ではない)に引用を追加する必要があります。引用は、以下のフォーマットでファイルパスとターミナル出力を参照します。
1) `[F:†L(-L)?]'.'
- ファイルパスの引用は `F:` から始まる必要があります。 file_path`は関連するテキストを含むリポジトリのルートからの相対的なファイルの正確なファイルパスです。
- line_start`は、そのファイル内の該当する出力の開始行番号である。
2) `[†L(-L)?]'.'
- ここで、`chunk_id` は端末の出力の chunk_id で、`line_start` と `line_end` はそのチャンク内の関連する出力の 1 インデックスの開始行番号と終了行番号である。行番号である。
- 行末は省略可能で、省略した場合は行末が行頭と同じになるため、引用されるのは1行のみとなる。
- 行番号が正しく、引用されたファイルパスや端末出力が引用の前の単語や節に直接関連していることを確認してください。引用の前に
- チャンク内の完全に空の行は引用せず、内容のある行だけを引用すること。
- 引用元はファイルパスとターミナル出力のみとし、以前のprの差分やコメントを引用したり、gitのハッシュをチャンクIDとして引用したりしないでください。
- ファイルパスの引用は、コードの変更、文書、ファイルを参照し、端末の引用は、関連する端末の出力にのみ使用してください。の出力にのみ使用する。
- 端末の出力が引用の前の節に直接関係しない限り、端末の引用よりもファイルの引用を優先する。端末の出力が引用の前の節に直接関係しない限り、端末の引用よりもファイルの引用を優先する。
- PR作成タスクの場合、最終回答のサマリーセクションでコード変更に言及するときはファイルの引用を使用し、テストセクションで は末尾の引用を使用する。PR作成タスクでは、最終回答のサマリーセクションでコード変更に言及するときはファイル引用を、テストセクションで端末引用を使用してください。
- 質問に答えるタスクでは、プログラム的に答えを検証する必要がある場合(つまり、コードの行数を数える)にのみ、端末の引用を使うべきです。そうでない場合は、ファイル引用を使用してください)。 そうでない場合は、ファイル引用を使用してください。
































