AI・機械学習
ChatGPTの作業ツールとスキルリファレンス
ChatGPT Work Tool and Skill Reference (codex-tool-reference.simonw.chatgpt.site)
要約
この記事は、ChatGPTで利用可能な様々なツールについて解説しています。ファイル編集、コマンド実行、JavaScriptコードの実行、ユーザー入力の要求、タスクプランの更新、画像表示、標準入力への書き込み、エージェント間連携など、多岐にわたる機能が紹介されています。これらのツールは、ChatGPTがより複雑なタスクを自動化し、ユーザーとインタラクションするための能力を拡張するものです。
全文翻訳
apply_patch組み込みファイルは、ファイルを編集するために使用できます。これはFREEFORMツールなので、パッチをJSONで囲まないでください。公式の説明と引数宣言apply_patchツールは、ファイルを編集するために使用できます。これはFREEFORMツールなので、パッチをJSONで囲まないでください。execツール宣言: ```ts declare const tools: { apply_patch(input: string): Promise<unknown>; }; ```exec_command組み込みPTYでコマンドを実行し、出力を返すか、継続的な対話のためのセッションIDを返します。公式の説明と引数宣言PTYでコマンドを実行し、出力を返すか、継続的な対話のためのセッションIDを返します。execツール宣言: ```ts declare const tools: { exec_command(args: { // 実行するシェルコマンド。 cmd: string; // `require_escalated` のためのユーザー向け承認質問。それ以外の場合は省略します。 justification?: string; // true は -l/-i セマンティクスでシェルを実行します。false はそれらを無効にします。デフォルトは true です。 login?: boolean; // 出力トークン予算。デフォルトは 10000 トークンです。より大きなリクエストはポリシーによって制限される場合があります。 max_output_tokens?: number; // `cmd` のための再利用可能な承認プレフィックス。`sandbox_permissions: "require_escalated"` のみで使用します。例: ["git", "pull"]。 prefix_rule?: Array<string>; // コマンドごとのサンドボックスオーバーライド。デフォルトは `use_default` です。サンドボックス外での実行には `require_escalated` を使用します。 sandbox_permissions?: "use_default" | "require_escalated"; // 起動するシェルバイナリ。デフォルトはユーザーのデフォルトシェルです。 shell?: string; // true はコマンドに PTY を割り当てます。false または省略した場合はプレーンパイプを使用します。 tty?: boolean; // コマンドの作業ディレクトリ。デフォルトは現在のターンでの作業ディレクトリです。 workdir?: string; // 出力を返す前に待機します。デフォルトは 10000 ms です。実効範囲は 250-30000 ms です。 yield_time_ms?: number; }): Promise<{ // レスポンスがレポートする場合に含まれるチャンク識別子。 chunk_id?: string; // この呼び出し中にコマンドが終了した場合のプロセスの終了コード。 exit_code?: number; // 出力切り捨て前の近似トークン数。 original_token_count?: number; // コマンドの出力テキスト。切り捨てられている可能性があります。 output: string; // プロセスがまだ実行中の場合に write_stdin に渡すセッション識別子。 session_id?: number; // 出力を待つために費やされた経過時間(秒)。 wall_time_seconds: number; }>; }; ```functions.exec直接制御ツール呼び出しのオーケストレーション/合成のためのJavaScriptコードを実行します - 提供されたJavaScriptコードを新しいV8アイソレートで非同期モジュールとして評価します。公式の説明と引数宣言ツール呼び出しのオーケストレーション/合成のためのJavaScriptコードを実行します - 提供されたJavaScriptコードを新しいV8アイソレートで非同期モジュールとして評価します。 - すべてのネストされたツールは、グローバルな `tools` オブジェクトで利用可能です。 - ネストされたツールメソッドは、文字列またはオブジェクトを入力引数として受け取ります。 - 生のJavaScriptを実行します -- Node、ファイルシステム、ネットワークアクセス、コンソールはありません。 - JSON、引用符付き文字列、またはMarkdownコードフェンスではなく、生のJavaScriptソーステキストを受け入れます。execツール宣言: ```ts declare const functions: { exec(input: string): Promise<any>; }; ```functions.request_user_input直接制御1つから3つの短い質問に対するユーザー入力を要求し、応答を待ちます。このツールは、デフォルトまたはプランモードでのみ利用可能です。公式の説明と引数宣言1つから3つの短い質問に対するユーザー入力を要求し、応答を待ちます。このツールは、デフォルトまたはプランモードでのみ利用可能です。execツール宣言: ```ts declare const functions: { request_user_input(args: { questions: Array<{ header: string; id: string; options: Array<{ description: string; label: string; }>; question: string; }>; }): Promise<any>; }; ```functions.wait直接制御yieldされた `exec` セルで待機し、新しい出力または完了を返します。公式の説明と引数宣言yieldされた `exec` セルで待機し、新しい出力または完了を返します。 - `wait` は、`exec` が `Script running with cell ID ...` を返した後にのみ使用してください。 - `cell_id` は、実行中の `exec` セルを再開するために識別します。 - `yield_time_ms` は、再度yieldする前に、より多くの出力を待機する時間を制御します。デフォルトは 10000 ms です。 - `max_tokens` は、この待機呼び出しが返す新しい出力を制限します。デフォルトは 10000 トークンです。 - `terminate: true` は実行中のセルを停止します。false または省略した場合は、出力を待ちます。 - `wait` は、最後のyield以降の新しい出力、またはそのセルの最終的な完了または終了結果のみを返します。execツール宣言: ```ts declare const functions: { wait(args: { cell_id: string; max_tokens?: number; terminate?: boolean; yield_time_ms?: number; }): Promise<any>; }; ```update_plan組み込みタスクプランを更新します。オプションの説明とプラン項目のリスト(各項目にはステップとステータスがあります)を提供します。一度に進行中(in_progress)にできるステップは1つだけです。公式の説明と引数宣言タスクプランを更新します。オプションの説明とプラン項目のリスト(各項目にはステップとステータスがあります)を提供します。一度に進行中(in_progress)にできるステップは1つだけです。execツール宣言: ```ts declare const tools: { update_plan(args: { // このプラン更新に関するオプションの説明。 explanation?: string; // ステップのリスト plan: Array<{ // ステップのステータス。 status: "pending" | "in_progress" | "completed"; // タスクステップのテキスト。 step: string; }>; }): Promise<unknown>; }; ```view_image組み込み視覚的な検査が必要な場合に、ファイルシステムからローカルの画像ファイルをビューします。ディスク上にある画像に使用してください。公式の説明と引数宣言視覚的な検査が必要な場合に、ファイルシステムからローカルの画像ファイルをビューします。ディスク上にある画像に使用してください。execツール宣言: ```ts declare const tools: { view_image(args: { // 画像の詳細レベル。デフォルトは `high` です。正確な解像度を保持するには `original` を使用します。 detail?: "high" | "original"; // 画像ファイルへのローカルファイルシステムパス。 path: string; }): Promise<{ // view_image によって返される画像詳細ヒント。デフォルトのリサイズ動作には `high`、元の解像度が保持されている場合は `original` を返します。 detail: "high" | "original"; // ロードされた画像のデータURL。 image_url: string; }>; }; ```write_stdin組み込み既存の統合execセッションに文字を書き込み、最近の出力を返します。公式の説明と引数宣言既存の統合execセッションに文字を書き込み、最近の出力を返します。execツール宣言: ```ts declare const tools: { write_stdin(args: { // 標準入力に書き込むバイト数。デフォルトは空で、書き込みなしでポーリングします。 chars?: string; // 出力トークン予算。デフォルトは 10000 トークンです。より大きなリクエストはポリシーによって制限される場合があります。 max_output_tokens?: number; // 実行中の統合execセッションの識別子。 session_id: number; // 出力を返す前に待機します。空でない書き込みはデフォルトで 250 ms で、最大 30000 ms です。空のポーリングはデフォルトで 5000-300000 ms 待機します。 yield_time_ms?: number; }): Promise<{ // レスポンスがレポートする場合に含まれるチャンク識別子。 chunk_id?: string; // この呼び出し中にコマンドが終了した場合のプロセスの終了コード。 exit_code?: number; // 出力切り捨て前の近似トークン数。 original_token_count?: number; // コマンドの出力テキスト。切り捨てられている可能性があります。 output: string; // プロセスがまだ実行中の場合に write_stdin に渡すセッション識別子。 session_id?: number; // 出力を待つために費やされた経過時間(秒)。 wall_time_seconds: number; }>; }; ```collaboration.followup_taskオーケストレーション既存の非ルートターゲットエージェントにフォローアップタスクを送信し、アイドル状態であればターンをトリガーします。ターゲットが既に実行中の場合は、サンプリング中にメッセージ境界で、または保留中のツール呼び出しが完了した後に、タスクを迅速に配信します。公式の説明と引数宣言既存の非ルートターゲットエージェントにフォローアップタスクを送信し、アイドル状態であればターンをトリガーします。ターゲットが既に実行中の場合は、サンプリング中にメッセージ境界で、または保留中のツール呼び出しが完了した後に、タスクを迅速に配信します。execツール宣言: ```ts declare const collaboration: { followup_task(args: { message: string; target: string; }): Promise<any>; }; ```collaboration.interrupt_agentオーケストレーションエージェントの現在のターンを中断します。もし