使用 apply_patch tool 批次更新檔案
寫程式最煩的就是要同時改好幾個檔案。如果只靠單次的指令,有時候會因為程式碼太複雜而失敗,或者改完一個檔案卻漏掉另一個。
這種時候,與其一次次手動調整,不如用結構化的方式告訴系統你的修改邏輯。apply_patch 就是為了這種多檔案或跨區塊的編輯需求而設計的,能讓你避開單次編輯容易出錯的問題。
需要準備的東西
Section titled “需要準備的東西”在使用這個工具之前,請確保你符合以下條件:
- 使用 OpenAI 模型(包含 OpenAI Codex)
- 已在設定中開啟
tools.exec.applyPatch.enabled
apply_patch 只需要一個 input 字串,你必須把所有的操作包在 *** Begin Patch 與 *** End Patch 之間。
你可以同時進行多種操作,例如:
*** 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你可以參考下方的 JSON 格式來呼叫 API:
{ "tool": "apply_patch", "input": "*** Begin Patch\n*** Update File: src/index.ts\n@@\n-const foo = 1\n+const foo = 2\n*** End Patch"}- 路徑處理:所有的檔案路徑都會以 workspace root 為基準。
- 重新命名:在
*** Update File:區塊中使用*** Move to:就能直接更改檔名。 - 檔案末端插入:如果需要在檔案最後面插入內容,可以使用
*** End of File標記。
如果你在使用時遇到問題,可以檢查以下幾點:
- 工具未啟用:這個工具預設是關閉的,請確認
tools.exec.applyPatch.enabled已設為 true。 - 模型限制:目前僅支援 OpenAI 模型。你可以透過
tools.exec.applyPatch.allowModels來指定哪些模型可以使用此工具。 - 格式錯誤:請確保你的
input完整包含了起始與結束標記。
如果你需要更進一步的協助,可以詢問我們的 AI Setup Assistant。
OpenClaw Expert
還是卡住了?
如果這篇文件沒有解決你的情境,直接問 OpenClaw Expert,拿到可執行步驟。