Cómo usar apply_patch para cambios en múltiples archivos
¿Te ha pasado que intentas aplicar cambios en varios archivos y la edición se vuelve frágil? Hacerlo con llamadas simples de edit puede causar errores cuando los cambios son complejos o afectan a diferentes partes del código al mismo tiempo.
Te recomiendo usar apply_patch para manejar ediciones de varios bloques o archivos en una sola operación. Es una forma mucho más limpia de mantener la integridad de tu código.
Requisitos previos
Sección titulada «Requisitos previos»- Acceso a modelos de OpenAI (incluyendo OpenAI Codex).
- Configuración definida bajo el espacio de nombres
tools.exec.
Inicio rápido
Sección titulada «Inicio rápido»Para empezar, debes saber que esta herramienta es experimental y viene desactivada por defecto. Tienes que habilitarla configurando tools.exec.applyPatch.enabled como verdadero.
La herramienta recibe un único string llamado input que debe envolver todas las operaciones entre las etiquetas *** Begin Patch y *** End Patch. Las rutas de los archivos se resuelven de forma relativa a la raíz de tu workspace.
Aquí tienes el formato básico para actualizar un archivo:
{ "tool": "apply_patch", "input": "*** Begin Patch\n*** Update File: src/index.ts\n@@\n-const foo = 1\n+const foo = 2\n*** End Patch"}Puedes realizar diferentes operaciones dentro del mismo parche:
- Actualizar y renombrar: Usa
*** Update File:y añade*** Move to:dentro del bloque para cambiar el nombre o ubicación. - Añadir archivos: Usa la instrucción
*** Add File: path/to/file.txt. - Eliminar archivos: Usa
*** Delete File: obsolete.txt. - Insertar al final: Usa
*** End of Filepara realizar inserciones exclusivamente al terminar el archivo.
Solución de problemas
Sección titulada «Solución de problemas»- La herramienta no aparece disponible: Asegúrate de que
tools.exec.applyPatch.enabledesté activo en tu configuración. - Error de modelo no compatible: Esta herramienta solo funciona con modelos de OpenAI. Si necesitas restringir el acceso, revisa el parámetro
tools.exec.applyPatch.allowModels.
Próximos pasos
Sección titulada «Próximos pasos»OpenClaw Expert
Sigues atascado?
Si esta pagina no resolvio tu caso, pregunta a OpenClaw Expert para pasos concretos.