Встроенные инструменты
Инструмент apply_patch
Применяйте изменения к файлам с использованием структурированного формата патча. Этот инструмент идеально подходит для многопользовательских или многофайловых правок, где один вызов edit был бы ненадёжным. Инструмент принимает одну строку 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(ограничено рабочей областью). Установите его вfalseтолько если вы намеренно хотите, чтобыapply_patchзаписывал/удалял файлы за пределами рабочей директории.- Используйте
*** Move to:внутри блока*** Update File:для переименования файлов. *** End of Fileотмечает вставку только в конец файла, когда это необходимо.- Экспериментальный инструмент, по умолчанию отключён. Включите с помощью
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"
}