加载中

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

Claude 自带一个无需您从零开始创建的内置工具:文本编辑工具。该工具赋予 Claude 像在标准文本编辑器中一样处理文件和目录的能力。

文本编辑工具能做什么

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

  • 查看文件或目录内容
  • 查看文件中特定范围的行
  • 替换文件中的文本
  • 创建新文件
  • 在文件的特定行插入文本

文本编辑工具内置于 Claude 中,但仅包含其模式(schema),因此您需要提供实际工具的具体实现。

这极大地扩展了 Claude 的能力,基本上赋予了它开箱即用地充当软件工程师的能力。

理解实现要求

事情在这里会稍微有点令人困惑:虽然工具的模式(schema)已内置于 Claude 中,但您仍然需要提供实际的实现。可以这样理解——Claude 知道如何请求文件操作,但您需要编写实际执行这些操作的代码。

text_editor_tool_schema JSON 模式和一个显示三个问号的"Function"框,这是您必须编写的函数。

当您使用自定义工具时,通常需要同时编写 JSON 模式和函数实现。而对于文本编辑工具,Claude 提供了模式相关的知识,但您必须编写函数来处理 Claude 发出的创建文件、读取目录、替换文本等请求。

模式版本

使用文本编辑工具时,您确实需要包含一个小的模式存根(schema stub),具体的模式取决于您所使用的 Claude 模型:

python
def get_text_edit_schema(model):
    if model.startswith("claude-haiku-4-5"):
        return {
            "type": "text_editor_20250728",
            "name": "str_replace_based_edit_tool",
        }

Claude 将这个小的模式存根展开为一个更长的模式,其中包含"command"、"path"、view_range、old_str、new_str 和 file_text。

Claude 会自动将这个小的模式展开为一个更大、更详细的规范,其中包含所有可用的参数和操作。

实际示例

让我们来看看文本编辑工具的实际运行效果。当您要求 Claude 处理文件时,它会使用该工具按需读取、修改和创建文件。

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

  1. 使用文本编辑工具查看该文件
  2. 读取内容
  3. 向您提供摘要

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

Claude 将会:

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

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

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

  • 您正在构建需要以编程方式编辑文件的应用程序
  • 您所处的环境无法访问功能齐全的代码编辑器
  • 您希望将文件编辑能力直接集成到由 Claude 驱动的应用程序中

本质上,文本编辑工具让您能够在自己的应用程序中复现高级 AI 驱动代码编辑器的大部分功能,赋予 Claude 真正编码助手的能力,使其能够读取、写入和修改您文件系统上的文件。