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