模型相容性
| 模型 | 工具版本 |
|---|---|
| Claude 4.x 模型 | text_editor_20250728 |
| Claude Sonnet 3.7 (已棄用) | text_editor_20250124 |
Claude 4 模型的
text_editor_20250728 工具不包括 undo_edit 命令。如果您需要此功能,您需要使用 Claude Sonnet 3.7 (已棄用)。舊版工具版本不保證與較新模型向後相容。始終使用與您的模型版本相對應的工具版本。
何時使用文字編輯工具
以下是何時使用文字編輯工具的一些範例:- 程式碼除錯:讓 Claude 識別並修復您程式碼中的錯誤,從語法錯誤到邏輯問題。
- 程式碼重構:讓 Claude 通過有針對性的編輯來改進您的程式碼結構、可讀性和效能。
- 文件生成:要求 Claude 為您的程式碼庫添加文件字符串、註解或 README 檔案。
- 測試建立:讓 Claude 根據其對實現的理解為您的程式碼建立單元測試。
使用文字編輯工具
使用 Messages API 向 Claude 提供文字編輯工具(名為
str_replace_based_edit_tool)。您可以選擇指定 max_characters 參數來控制檢視大型檔案時的截斷。max_characters 僅與 text_editor_20250728 及更新版本的文字編輯工具相容。1
向 Claude 提供文字編輯工具和使用者提示
- 在您的 API 請求中包括文字編輯工具
- 提供可能需要檢查或修改檔案的使用者提示,例如「您能修復我程式碼中的語法錯誤嗎?」
2
Claude 使用工具檢查檔案或目錄
- Claude 評估需要查看的內容,並使用
view命令檢查檔案內容或列出目錄內容 - API 回應將包含帶有
view命令的tool_use內容區塊
3
執行 view 命令並返回結果
- 從 Claude 的工具使用請求中提取檔案或目錄路徑
- 讀取檔案的內容或列出目錄內容
- 如果在工具配置中指定了
max_characters參數,將檔案內容截斷到該長度 - 通過繼續對話並使用包含
tool_result內容區塊的新user訊息將結果返回給 Claude
4
Claude 使用工具修改檔案
- 檢查檔案或目錄後,Claude 可能會使用
str_replace等命令進行變更或使用insert在特定行號添加文字。 - 如果 Claude 使用
str_replace命令,Claude 會構建一個格式正確的工具使用請求,其中包含舊文字和要替換的新文字
5
執行編輯並返回結果
- 從 Claude 的工具使用請求中提取檔案路徑、舊文字和新文字
- 在檔案中執行文字替換
- 將結果返回給 Claude
6
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:要插入以替換舊文字的新文字
str_replace 命令範例
str_replace 命令範例
create
create 命令允許 Claude 建立具有指定內容的新檔案。
參數:
command:必須是「create」path:應建立新檔案的路徑file_text:要寫入新檔案的內容
create 命令範例
create 命令範例
insert
insert 命令允許 Claude 在檔案中的特定位置插入文字。
參數:
command:必須是「insert」path:要修改的檔案的路徑insert_line:要在其後插入文字的行號(0 表示檔案開頭)new_str:要插入的文字
insert 命令範例
insert 命令範例
undo_edit
undo_edit 命令允許 Claude 還原對檔案所做的最後編輯。
此命令僅在 Claude Sonnet 3.7 (已棄用) 中可用。Claude 4 模型使用
text_editor_20250728 不支援此命令。command:必須是「undo_edit」path:應撤銷其最後編輯的檔案的路徑
undo_edit 命令範例
undo_edit 命令範例
範例:使用文字編輯工具修復語法錯誤
此範例演示 Claude 4 模型如何使用文字編輯工具修復 Python 檔案中的語法錯誤。首先,您的應用程式向 Claude 提供文字編輯工具和修復語法錯誤的提示:Claude 將首先使用文字編輯工具檢視檔案:您的應用程式應該讀取檔案並將其內容返回給 Claude:Claude 將識別語法錯誤並使用 您的應用程式應該進行編輯並返回結果:最後,Claude 將提供完整的修復說明:
行號在上面的範例中,
view 工具結果包括檔案內容,每行前面都有行號(例如「1: def is_prime(n):」)。行號不是必需的,但對於成功使用 view_range 參數檢查檔案的特定部分和 insert_line 參數在精確位置添加內容至關重要。str_replace 命令修復它:實現文字編輯工具
文字編輯工具實現為無模式工具。使用此工具時,您不需要像其他工具那樣提供輸入模式;模式內置於 Claude 的模型中,無法修改。 工具類型取決於模型版本:- Claude 4:
type: "text_editor_20250728" - Claude Sonnet 3.7:
type: "text_editor_20250124"
1
初始化您的編輯器實現
建立幫助函數來處理檔案操作,如讀取、寫入和修改檔案。考慮實現備份功能以從錯誤中恢復。
2
處理編輯器工具呼叫
建立一個函數,根據命令類型處理來自 Claude 的工具呼叫:
3
實現安全措施
添加驗證和安全檢查:
- 驗證檔案路徑以防止目錄遍歷
- 在進行變更前建立備份
- 優雅地處理錯誤
- 實現權限檢查
4
處理 Claude 的回應
從 Claude 的回應中提取並處理工具呼叫:
實現文字編輯工具時,請記住:
- 安全性:該工具可以存取您的本地檔案系統,因此實現適當的安全措施。
- 備份:在允許編輯重要檔案之前始終建立備份。
- 驗證:驗證所有輸入以防止意外變更。
- 唯一匹配:確保替換恰好匹配一個位置以避免意外編輯。
處理錯誤
使用文字編輯工具時,可能會發生各種錯誤。以下是如何處理它們的指導:檔案未找到
檔案未找到
如果 Claude 嘗試檢視或修改不存在的檔案,在
tool_result 中返回適當的錯誤訊息:替換文字的多個匹配
替換文字的多個匹配
如果 Claude 的
str_replace 命令在檔案中匹配多個位置,返回適當的錯誤訊息:替換文字無匹配
替換文字無匹配
如果 Claude 的
str_replace 命令與檔案中的任何文字都不匹配,返回適當的錯誤訊息:權限錯誤
權限錯誤
如果在建立、讀取或修改檔案時出現權限問題,返回適當的錯誤訊息:
遵循實現最佳實踐
提供清晰的上下文
提供清晰的上下文
要求 Claude 修復或修改程式碼時,請具體說明需要檢查哪些檔案或需要解決哪些問題。清晰的上下文幫助 Claude 識別正確的檔案並進行適當的變更。不太有幫助的提示:「您能修復我的程式碼嗎?」更好的提示:「我的 primes.py 檔案中有語法錯誤,導致它無法執行。您能修復它嗎?」
明確指定檔案路徑
明確指定檔案路徑
在需要時清楚地指定檔案路徑,特別是如果您使用多個檔案或不同目錄中的檔案。不太有幫助的提示:「檢查我的幫助檔案」更好的提示:「您能檢查我的 utils/helpers.py 檔案是否有任何效能問題嗎?」
編輯前建立備份
編輯前建立備份
在應用程式中實現備份系統,在允許 Claude 編輯檔案之前建立檔案副本,特別是對於重要或生產程式碼。
謹慎處理唯一文字替換
謹慎處理唯一文字替換
str_replace 命令需要要替換的文字完全匹配。您的應用程式應確保舊文字恰好有一個匹配或提供適當的錯誤訊息。驗證變更
驗證變更
Claude 對檔案進行變更後,通過執行測試或檢查程式碼是否仍按預期工作來驗證變更。
定價和代幣使用
The text editor tool uses the same pricing structure as other tools used with Claude. It follows the standard input and output token pricing based on the Claude model you’re using. In addition to the base tokens, the following additional input tokens are needed for the text editor tool:| Tool | Additional input tokens |
|---|---|
text_editor_20250429 (Claude 4.x) | 700 tokens |
text_editor_20250124 (Claude Sonnet 3.7 (deprecated)) | 700 tokens |
將文字編輯工具與其他工具整合
文字編輯工具可以與其他 Claude 工具一起使用。組合工具時,請確保:- 將工具版本與您使用的模型相匹配
- 考慮請求中包含的所有工具的額外代幣使用
變更日誌
| 日期 | 版本 | 變更 |
|---|---|---|
| 2025 年 7 月 28 日 | text_editor_20250728 | 發佈更新的文字編輯工具,修復了一些問題並添加了可選的 max_characters 參數。除此之外,它與 text_editor_20250429 相同。 |
| 2025 年 4 月 29 日 | text_editor_20250429 | Claude 4 文字編輯工具的發佈。此版本移除了 undo_edit 命令,但保留了所有其他功能。工具名稱已更新以反映其基於 str_replace 的架構。 |
| 2025 年 3 月 13 日 | text_editor_20250124 | 獨立文字編輯工具文件的介紹。此版本針對 Claude Sonnet 3.7 進行了最佳化,但具有與先前版本相同的功能。 |
| 2024 年 10 月 22 日 | text_editor_20241022 | 文字編輯工具與 Claude Sonnet 3.5 (已停用) 的初始發佈。通過 view、create、str_replace、insert 和 undo_edit 命令提供檢視、建立和編輯檔案的功能。 |
後續步驟
以下是如何以更便利和強大的方式使用文字編輯工具的一些想法:- 與您的開發工作流程整合:將文字編輯工具構建到您的開發工具或 IDE 中
- 建立程式碼審查系統:讓 Claude 審查您的程式碼並進行改進
- 構建除錯助手:建立一個系統,其中 Claude 可以幫助您診斷和修復程式碼中的問題
- 實現檔案格式轉換:讓 Claude 幫助您將檔案從一種格式轉換為另一種格式
- 自動化文件:設定工作流程讓 Claude 自動為您的程式碼編寫文件