重要提示:所有模型版本的工具版本字符串均可在此处找到:https://platform.claude.com/docs/en/agents-and-tools/tool-use/text-editor-tool(在新标签页中打开)
Claude 自带一个您无需从零开始创建的内置工具:文本编辑工具。该工具赋予 Claude 像您在标准文本编辑器中那样处理文件和目录的能力。
文本编辑工具能做什么
文本编辑工具为 Claude 提供了一套全面的文件操作能力:
- 查看文件或目录内容
- 查看文件中特定行范围的内容
- 替换文件中的文本
- 创建新文件
- 在文件的特定行插入文本
- 撤销对文件的最近编辑

这极大地扩展了 Claude 的能力,基本上使其一开始就具备了作为软件工程师行事的能力。
理解实现要求
这里有一点容易让人困惑:虽然工具模式(schema)已内置于 Claude 中,但您仍需要提供实际的实现。可以这样理解——Claude 知道如何请求文件操作,但您需要编写实际执行这些操作的代码。

当您使用其他工具时,您需要同时编写 JSON 模式和函数实现。而使用文本编辑工具时,Claude 提供了模式方面的知识,但您必须编写函数来处理 Claude 发出的创建文件、读取目录、替换文本等请求。
模式版本
虽然主要的模式已内置于 Claude 中,但在发出请求时,您仍需要包含一个小的模式占位(schema stub)。具体的模式取决于您使用的 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 会识别这个小模式,并在后台自动将其扩展为完整的文本编辑工具规范。
实际示例
让我们来看看文本编辑工具的实际运作。当您要求 Claude 处理文件时,它会使用该工具按需读取、修改和创建文件。
例如,如果您要求 Claude "打开 ./main.py 文件并总结其内容",Claude 将会:
- 使用文本编辑工具查看该文件
- 读取内容
- 为您提供摘要
您还可以进一步要求 Claude 修改文件。例如:"打开 ./main.py 文件,编写一个计算圆周率到小数点后第 5 位的函数。然后创建一个 ./test.py 文件来测试您的实现。"
Claude 将会:
- 查看现有的 main.py 文件
- 用包含圆周率计算函数的新实现替换其内容
- 创建一个新的 test.py 文件,并附带适当的单元测试
为什么要使用文本编辑工具?
您可能会好奇,既然现代代码编辑器已经内置了 AI 助手,为什么还需要这个工具。文本编辑工具在以下场景中会变得很有价值:
- 您正在构建需要以编程方式编辑文件的应用程序
- 您所处的环境无法访问功能齐全的代码编辑器
- 您希望将文件编辑能力直接集成到您的 Claude 驱动的应用程序中
本质上,文本编辑工具让您能够在自己的应用程序中复制出许多高级 AI 驱动代码编辑器的功能,使您能够精细地控制 Claude 与您的文件系统交互的方式。