apply_patch Tool

apply_patch tool

使用 structured patch format 应用文件更改。这对于单个 edit call 会脆弱的 multi-file 或 multi-hunk edits 非常理想。

该 tool 接受单个 input string,包含一个或多个 file operations:

*** 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

Parameters

  • input(必需):完整的 patch contents,包括 *** Begin Patch*** End Patch

Notes

  • Patch paths 支持 relative paths(从 workspace directory)和 absolute paths。
  • tools.exec.applyPatch.workspaceOnly 默认为 true(workspace-contained)。仅当你有意想让 apply_patch 在 workspace directory 之外写入/删除时才设置为 false
  • *** Update File: hunk 内使用 *** Move to: 来重命名文件。
  • *** End of File 在需要时标记 EOF-only insert。
  • Experimental 且默认禁用。使用 tools.exec.applyPatch.enabled 启用。
  • 仅 OpenAI(包括 OpenAI Codex)。可选地通过 tools.exec.applyPatch.allowModels 按 model 限制。
  • Config 仅在 tools.exec 下。

Example

{
  "tool": "apply_patch",
  "input": "*** Begin Patch\n*** Update File: src/index.ts\n@@\n-const foo = 1\n+const foo = 2\n*** End Patch"
}