apply_patch ツール
構造化パッチ形式を使用してファイル変更を適用します。単一の edit 呼び出しでは不安定になりがちな複数ファイル・複数ハンクの編集に適しています。
このツールは、1 つ以上のファイル操作をラップした単一の input 文字列を受け取ります:
*** Begin Patch
*** Add File: path/to/file.txt
+line 1
+line 2
*** Update File: src/app.ts
@@
-old line
+new line
*** Delete File: obsolete.txt
*** End Patch
パラメータ
input(必須):*** Begin Patchと*** End Patchを含むパッチの全内容。
注意事項
- パッチのパスは相対パス(ワークスペースディレクトリからの相対)と絶対パスの両方に対応しています。
tools.exec.applyPatch.workspaceOnlyのデフォルトはtrue(ワークスペース内に限定)です。apply_patchでワークスペース外への書き込み/削除を意図的に行いたい場合のみfalseに設定してください。*** Update File:ハンク内で*** Move to:を使用するとファイルのリネームが可能です。*** End of Fileは必要に応じて EOF のみの挿入を示します。- 実験的機能であり、デフォルトでは無効です。
tools.exec.applyPatch.enabledで有効にしてください。 - OpenAI 専用(OpenAI Codex を含む)。
tools.exec.applyPatch.allowModelsでモデルによる制限も可能です。 - 設定は
tools.exec配下のみです。
使用例
{
"tool": "apply_patch",
"input": "*** Begin Patch\n*** Update File: src/index.ts\n@@\n-const foo = 1\n+const foo = 2\n*** End Patch"
}