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"
}