重要提示:文本编辑器工具的最新工具 ID 可在此处的 AWS 文档中找到: https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-anthropic-claude-messages-tool-use.html#model-parameters-anthropic-anthropic-defined-tools(在新标签页中打开)
文本编辑器工具是 Claude 的内置能力,赋予其文件系统访问和文本编辑能力。与其他需要您同时编写模式(schema)和实现的工具不同,Claude 已经知道如何请求文本编辑器操作——您只需要处理这些请求即可。
文本编辑器工具的功能
该工具使 Claude 能够像软件工程师一样处理文件和目录:
- 查看文件或目录内容
- 查看文件中特定范围的行
- 替换文件中的文本
- 创建新文件
- 在特定行号处插入文本
工作原理
文本编辑器工具与自定义工具不同,因为只有 JSON 模式(schema)内置于 Claude 中。您仍然需要提供实际的实现。

当您创建自定义工具时,您需要编写两端的内容——告诉 Claude 该工具信息的模式(schema),以及实际执行工作的函数。使用文本编辑器工具时,Claude 已经拥有该模式(schema),但您必须编写函数来处理 Claude 查看、编辑或创建文件的请求。
设置该工具
要使用文本编辑器工具,您需要提供与您的模型相匹配的工具版本:
# 适用于 Claude 4 及更高版本模型
text_editor = "text_editor_20250728"
# 适用于更早版本的 Claude 模型
text_editor = "text_editor_20250124"本课程的其余部分使用 Claude 4 及更高版本;使用 text_editor_20250124 时,工具名称改为 str_replace_editor,并且还存在一个 undo_edit 命令。
您还需要修改您的聊天函数,使其接受文本编辑器参数,并将其包含在模型配置中。
工具命令
当 Claude 想要使用文本编辑器时,它会发回带有特定命令的工具使用请求:

您的实现需要处理全部四个命令:view、str_replace、create 和 insert。以下是处理这些请求的基本结构:
def run_tool(tool_name, tool_input):
if tool_name == "str_replace_based_edit_tool":
command = tool_input.get("command", "")
if command == "view":
path = tool_input.get("path", "")
return text_editor_tool.view(path)
elif command == "str_replace":
path = tool_input.get("path", "")
old_str = tool_input.get("old_str", "")
new_str = tool_input.get("new_str", "")
return text_editor_tool.str_replace(path, old_str, new_str)
# ……处理其他命令示例:文件分析
以下是该工具在实践中的工作方式。当您要求 Claude "用一句话描述 ./main.py 文件中的代码"时,会发生以下情况:

Claude 发送一个工具使用请求,内容为 {"command": "view", "path": "./main.py"}。您的服务器使用 TextEditorTool 类读取文件并返回内容。然后 Claude 根据它读取到的代码提供其分析。
实际应用
文本编辑器工具本质上将 Claude 转变为一个代码助手,它可以:
- 读取现有代码并提供分析
- 创建新文件和函数
- 修改现有代码
- 设置测试文件
- 跨多个文件重构代码
例如,您可以要求 Claude "在 main.py 中编写一个计算圆周率到第 5 位小数的函数,然后创建一个 test.py 文件来测试它"。Claude 将读取现有文件、添加新函数、创建测试文件,并编写全面的测试——所有这些都使用文本编辑器命令自动完成。
这使得构建类似于具有集成 AI 功能的现代代码编辑器的 AI 驱动开发工具成为可能,您可以在其中请求代码更改,并直接在您的文件系统中实现这些更改。