13.The text edit tool
此文档由 学习AI的1000天 翻译制作(抖音,B站,YouTube)
邮箱: szqshan@gmail.com | 微信: szqshan
网址: www.xueai.org
==================================================
重要提示:所有模型版本的工具版本字符串可以在这里找到: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
- 在文件的特定行插入文本
- 撤销对文件的最近编辑

这极大地扩展了 Claude 的能力,本质上赋予了它从一开始就能够充当软件工程师的能力。
理解实现要求
这里有些令人困惑的地方:虽然工具模式已内置在Claude中,但你仍然需要提供实际的实现。可以这样理解——Claude知道如何请求文件操作,但你需要编写实际执行这些操作的代码。

当你使用其他工具时,你需要同时编写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",
}

Claude 看到这个简小的模式定义后,会在后台自动将其扩展为完整的文本编辑器工具规范。
Practical Example
让我们看看文本编辑器工具的实际应用。当你要求 Claude 处理文件时,它会根据需要使用该工具来读取、修改和创建文件。
例如,如果你要求 Claude "打开 ./main.py 文件并总结其内容",Claude 将会:
- 使用文本编辑器工具查看文件
- Read the contents
- 为你提供一个总结
你可以进一步要求 Claude 修改文件。例如:"打开 ./main.py 文件,编写一个计算圆周率到第5位小数的函数。然后创建一个 ./test.py 文件来测试你的实现。"
Claude will:
- 查看现有的 main.py 文件
- 用包含pi计算函数的新实现替换其内容
- 创建一个新的test.py文件,包含适当的单元测试
为什么使用文本编辑器工具?
您可能会疑惑,既然现代代码编辑器已经内置了AI助手,为什么还需要这个工具。文本编辑器工具在以下场景中变得很有价值:
- 您正在构建需要以编程方式编辑文件的应用程序
- 您在无法访问功能完整的代码编辑器的环境中工作
- 您希望将文件编辑功能直接集成到基于Claude的应用程序中
本质上,文本编辑器工具让您能够在自己的应用程序中复制大部分高级AI驱动代码编辑器的功能,为您提供对Claude如何与文件系统交互的精细控制。
==================================================
此文档由 学习AI的1000天 翻译制作(抖音,B站,YouTube)
邮箱: szqshan@gmail.com | 微信: szqshan
网址: www.xueai.org