第 48 页 / 共 100 页 / 飞书修订版 7

13.The text edit tool

此文档由 学习AI的1000天 翻译制作(抖音,B站,YouTube)

邮箱: szqshan@gmail.com | 微信: szqshan
网址: www.xueai.org

==================================================

AQAbbsSj0o4bd6xMOMacdCmwnmb.bin

重要提示:所有模型版本的工具版本字符串可以在这里找到:https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/text-editor-toolhttps://docs.anthropic.com/en/docs/agents-and-tools/tool-use/text-editor-tool

Claude 内置了一个无需从头创建的工具:文本编辑器工具。这个工具让 Claude 能够像您在标准文本编辑器中一样处理文件和目录。

文本编辑器工具的功能

文本编辑器工具为 Claude 提供了一套全面的文件操作功能:

  • 查看文件或目录内容
  • 查看文件中特定行范围的内容
  • 替换文件中的文本
  • Create new files
  • 在文件的特定行插入文本
  • 撤销对文件的最近编辑
image1.png

这极大地扩展了 Claude 的能力,本质上赋予了它从一开始就能够充当软件工程师的能力。

理解实现要求

这里有些令人困惑的地方:虽然工具模式已内置在Claude中,但你仍然需要提供实际的实现。可以这样理解——Claude知道如何请求文件操作,但你需要编写实际执行这些操作的代码。

image2.png

当你使用其他工具时,你需要同时编写JSON模式和函数实现。而对于文本编辑器工具,Claude提供了模式知识,但你必须编写函数来处理Claude的请求,如创建文件、读取目录、替换文本等操作。

Schema Versions

虽然主要模式已内置在Claude中,但在发出请求时,你仍需要包含一个小的模式存根。具体的模式取决于你使用的Claude模型:

def get_text_edit_schema(model):

if model.startswith("claude-3-7-sonnet"):

return {

"type": "text_editor_20250124",

"name": "str_replace_editor",

}

elif model.startswith("claude-3-5-sonnet"):

return {

"type": "text_editor_20241022",

"name": "str_replace_editor",

}

image3.png

Claude 看到这个简小的模式定义后,会在后台自动将其扩展为完整的文本编辑器工具规范。

Practical Example

让我们看看文本编辑器工具的实际应用。当你要求 Claude 处理文件时,它会根据需要使用该工具来读取、修改和创建文件。

例如,如果你要求 Claude "打开 ./main.py 文件并总结其内容",Claude 将会:

  1. 使用文本编辑器工具查看文件
  2. Read the contents
  3. 为你提供一个总结

你可以进一步要求 Claude 修改文件。例如:"打开 ./main.py 文件,编写一个计算圆周率到第5位小数的函数。然后创建一个 ./test.py 文件来测试你的实现。"

Claude will:

  1. 查看现有的 main.py 文件
  2. 用包含pi计算函数的新实现替换其内容
  3. 创建一个新的test.py文件,包含适当的单元测试

为什么使用文本编辑器工具?

您可能会疑惑,既然现代代码编辑器已经内置了AI助手,为什么还需要这个工具。文本编辑器工具在以下场景中变得很有价值:

  • 您正在构建需要以编程方式编辑文件的应用程序
  • 您在无法访问功能完整的代码编辑器的环境中工作
  • 您希望将文件编辑功能直接集成到基于Claude的应用程序中

本质上,文本编辑器工具让您能够在自己的应用程序中复制大部分高级AI驱动代码编辑器的功能,为您提供对Claude如何与文件系统交互的精细控制。

==================================================



此文档由 学习AI的1000天 翻译制作(抖音,B站,YouTube)
邮箱: szqshan@gmail.com | 微信: szqshan
网址: www.xueai.org