加载中

重要提示:所有模型版本的工具版本字符串均可在此处找到: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 模型:

python
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 将会:

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

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

Claude 将会:

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

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

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

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

本质上,文本编辑工具让您能够在自己的应用程序中复制出许多高级 AI 驱动代码编辑器的功能,使您能够精细地控制 Claude 与您的文件系统交互的方式。