Перейти к основному содержанию

инструмент 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.

Примечания

  • Пути patch поддерживают относительные пути (от каталога рабочего пространства) и абсолютные пути.
  • tools.exec.applyPatch.workspaceOnly по умолчанию имеет значение true (в пределах рабочего пространства). Установите значение false только если вы намеренно хотите, чтобы apply_patch выполнял запись/удаление за пределами каталога рабочего пространства.
  • Используйте *** Move to: внутри секции *** Update File: для переименования файлов.
  • *** 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"
}