OC
OpenClaw 中文解释版

给五岁小朋友也能看懂的说明书

简要总结

apply_patch Tool

这页说明书在讲一个叫“apply_patch”的小工具。它就像一个大哥哥,能帮你一次过改好多文件里的好多地方,比你自己一点点改要稳当多了。如果你需要同时给好几个文件“打补丁”(就是修改内容),就可以来看看这页怎么用。

五岁小孩版解释

这个工具的名字叫 apply_patch,意思是“应用补丁”。你可以把它想成是给文件“打补丁”,就像衣服破了,你贴上一块新布一样。它能一次过读一个长长的“补丁”说明,然后按照说明去添加、修改或者删除文件。这样比一个一个地方慢慢改要快,也不容易出错。

要使用这个工具,你需要准备一个“补丁”说明。这个说明是一个长长的字符串,就像一封给电脑的指令信。信的开头必须是 *** Begin Patch,结尾必须是 *** End Patch。信里面,你可以写很多条不同的指令。

  1. 添加一个新文件:用 *** Add File: 开头,后面写上文件的名字和路径,比如 path/to/file.txt。然后在下面写上你想放进这个文件里的所有内容,每一行前面都要加一个 + 号。
  2. 修改一个旧文件:用 *** Update File: 开头,后面写上你要改的文件名字,比如 src/app.ts。然后在下面用 @@ 开始,写上要替换的内容。- 开头的行是旧的内容,+ 开头的行是新的内容。
  3. 删除一个旧文件:用 *** Delete File: 开头,后面写上你想删掉的文件名字,比如 obsolete.txt
  4. 在文件里移动位置:在修改文件 (*** Update File:) 的指令里面,你可以用 *** Move to: 来告诉电脑,从文件的哪个地方开始改。
  5. 在文件末尾加东西:如果你只想在文件的最后面添加几行,可以用 *** End of File 来标记。

这里有一些重要的事情要小心哦:

  • 文件路径可以用相对路径(从工作文件夹开始找)或者绝对路径(从最开始的根目录开始找)。
  • 为了安全,这个工具默认只允许修改“工作文件夹”里面的文件。如果你想让它改外面的文件,需要特别设置一个叫 tools.exec.applyPatch.workspaceOnly 的东西为 false。但平时最好不要这样。
  • 这个工具还在“实验”阶段,默认是关掉的。你需要先打开它才能用。打开的方法是设置 tools.exec.applyPatch.enabledtrue
  • 目前只有 OpenAI 家的模型(比如 GPT)能用这个工具。你还可以通过设置 tools.exec.applyPatch.allowModels 来指定哪个模型能用。
  • 所有这些设置,都放在 tools.exec 这个配置下面。

最后,我们来看一个例子。比如你想把 src/index.ts 文件里的一行 const foo = 1 改成 const foo = 2。你需要告诉工具这样一段话:

*** Begin Patch
*** Update File: src/index.ts
@@
-const foo = 1
+const foo = 2
*** End Patch

然后工具就会帮你改好啦!