文本编辑器工具
Claude 可以使用 Anthropic 定义的文本编辑器工具来查看和修改文本文件,帮助您调试、修复和改进代码或其他文本文档。这使 Claude 能够直接与您的文件交互,提供实际的帮助而不仅仅是建议更改。
使用文本编辑器工具之前
使用兼容的模型
Anthropic 的文本编辑器工具仅适用于 Claude 3.5 Sonnet 和 Claude 3.7 Sonnet:
- Claude 3.7 Sonnet:
text_editor_20250124
- Claude 3.5 Sonnet:
text_editor_20241022
两个版本提供相同的功能 - 您使用的版本应该与您正在使用的模型相匹配。
评估您的使用场景
以下是使用文本编辑器工具的一些示例:
- 代码调试:让 Claude 识别和修复代码中的错误,从语法错误到逻辑问题。
- 代码重构:让 Claude 通过有针对性的编辑来改进代码结构、可读性和性能。
- 文档生成:要求 Claude 为您的代码库添加文档字符串、注释或 README 文件。
- 测试创建:让 Claude 根据其对实现的理解为您的代码创建单元测试。
使用文本编辑器工具
使用 Messages API 向 Claude 提供文本编辑器工具(名为 str_replace_editor
):
文本编辑器工具可以按以下方式使用:
向 Claude 提供文本编辑器工具和用户提示
- 在您的 API 请求中包含文本编辑器工具
- 提供可能需要检查或修改文件的用户提示,例如”您能修复我代码中的语法错误吗?”
Claude 使用工具检查文件或目录
- Claude 评估需要查看的内容并使用
view
命令检查文件内容或列出目录内容 - API 响应将包含带有
view
命令的tool_use
内容块
执行查看命令并返回结果
- 从 Claude 的工具使用请求中提取文件或目录路径
- 读取文件内容或列出目录内容并将其返回给 Claude
- 通过继续对话向 Claude 返回结果,新的
user
消息包含tool_result
内容块
Claude 使用工具修改文件
- 在检查文件或目录后,Claude 可能会使用
str_replace
等命令进行更改或使用insert
在特定行号添加文本 - 如果 Claude 使用
str_replace
命令,Claude 会构建一个格式正确的工具使用请求,其中包含旧文本和要替换的新文本
执行编辑并返回结果
- 从 Claude 的工具使用请求中提取文件路径、旧文本和新文本
- 在文件中执行文本替换
- 将结果返回给 Claude
Claude 提供分析和解释
- 在检查并可能编辑文件后,Claude 提供对发现内容和所做更改的完整解释
文本编辑器工具命令
文本编辑器工具支持几个用于查看和修改文件的命令:
view
view
命令允许 Claude 检查文件内容或列出目录内容。它可以读取整个文件或特定范围的行。
参数:
command
:必须是 “view”path
:要查看的文件或目录的路径view_range
(可选):指定要查看的起始和结束行号的两个整数数组。行号从 1 开始,结束行为 -1 表示读取到文件末尾。此参数仅适用于查看文件,不适用于目录。
str_replace
str_replace
命令允许 Claude 将文件中的特定字符串替换为新字符串。这用于进行精确的编辑。
参数:
command
:必须是 “str_replace”path
:要修改的文件路径old_str
:要替换的文本(必须完全匹配,包括空格和缩进)new_str
:替换旧文本的新文本
create
create
命令允许 Claude 创建具有指定内容的新文件。
参数:
command
:必须是 “create”path
:新文件应创建的路径file_text
:要写入新文件的内容
insert
insert
命令允许 Claude 在文件的特定位置插入文本。
参数:
command
:必须是 “insert”path
:要修改的文件路径insert_line
:在其后插入文本的行号(0 表示文件开头)new_str
:要插入的文本
undo_edit
undo_edit
命令允许 Claude 撤消对文件所做的最后一次编辑。
参数:
command
:必须是 “undo_edit”path
:要撤消最后一次编辑的文件路径
示例:使用文本编辑器工具修复语法错误
此示例演示了 Claude 如何使用文本编辑器工具修复 Python 文件中的语法错误。
首先,您的应用程序向 Claude 提供文本编辑器工具和修复语法错误的提示:
Claude 将首先使用文本编辑器工具查看文件:
您的应用程序应该读取文件并将其内容返回给 Claude:
行号
在上面的示例中,view
工具结果包含带有行号前缀的文件内容(例如,“1: def is_prime(n):”)。行号不是必需的,但对于成功使用 view_range
参数检查文件的特定部分和使用 insert_line
参数在精确位置添加内容至关重要。
Claude 将识别语法错误并使用 str_replace
命令修复它:
您的应用程序应该进行编辑并返回结果:
最后,Claude 将提供完整的修复说明:
实现文本编辑器工具
文本编辑器工具作为无模式工具实现,由 type: "text_editor_20250124"
标识。使用此工具时,您不需要像其他工具那样提供输入模式;模式已内置在 Claude 的模型中,无法修改。
初始化编辑器实现
创建辅助函数来处理文件操作,如读取、写入和修改文件。考虑实现备份功能以从错误中恢复。
处理编辑器工具调用
创建一个根据命令类型处理来自 Claude 的工具调用的函数:
实现安全措施
添加验证和安全检查:
- 验证文件路径以防止目录遍历
- 在进行更改前创建备份
- 优雅地处理错误
- 实现权限检查
处理 Claude 的响应
从 Claude 的响应中提取并处理工具调用:
在实现文本编辑器工具时,请记住:
- 安全性:该工具可以访问您的本地文件系统,因此要实施适当的安全措施。
- 备份:在允许编辑重要文件之前,始终创建备份。
- 验证:验证所有输入以防止意外更改。
- 唯一匹配:确保替换恰好匹配一个位置以避免意外编辑。
处理错误
使用文本编辑器工具时可能会发生各种错误。以下是如何处理这些错误的指导:
遵循实现最佳实践
定价和令牌使用
文本编辑器工具使用与其他 Claude 工具相同的定价结构。它遵循基于您使用的 Claude 模型的标准输入和输出令牌定价。
除了基本令牌外,文本编辑器工具还需要以下额外的输入令牌:
工具 | 额外输入令牌 |
---|---|
text_editor_20241022 (Claude 3.5 Sonnet) | 700 令牌 |
text_editor_20250124 (Claude 3.7 Sonnet) | 700 令牌 |
有关工具定价的更详细信息,请参阅工具使用定价。
将文本编辑器工具与计算机使用集成
文本编辑器工具可以与计算机使用工具和其他 Anthropic 定义的工具一起使用。在组合这些工具时,您需要:
- 包含适当的测试版标头(如果与计算机使用一起使用)
- 将工具版本与您使用的模型匹配
- 考虑请求中包含的所有工具的额外令牌使用
有关在计算机使用上下文中使用文本编辑器工具的更多信息,请参阅计算机使用。
更改日志
日期 | 版本 | 更改 |
---|---|---|
2025 年 3 月 13 日 | text_editor_20250124 | 引入独立的文本编辑器工具文档。此版本针对 Claude 3.7 Sonnet 进行了优化,但具有与之前版本相同的功能。 |
2024 年 10 月 22 日 | text_editor_20241022 | 随 Claude 3.5 Sonnet 首次发布文本编辑器工具。提供通过 view 、create 、str_replace 、insert 和 undo_edit 命令查看、创建和编辑文件的功能。 |
下一步
以下是一些如何以更方便和强大的方式使用文本编辑器工具的想法:
- 集成到您的开发工作流程中:将文本编辑器工具构建到您的开发工具或 IDE 中
- 创建代码审查系统:让 Claude 审查您的代码并进行改进
- 构建调试助手:创建一个系统,让 Claude 帮助您诊断和修复代码中的问题
- 实现文件格式转换:让 Claude 帮助您将文件从一种格式转换为另一种格式
- 自动化文档:设置工作流程,让 Claude 自动为您的代码生成文档
当您使用文本编辑器工具构建应用程序时,我们很期待看到您如何利用 Claude 的功能来提升您的开发工作流程和生产力。
Was this page helpful?