文字編輯器工具
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
- 通過繼續對話並添加包含
tool_result
內容區塊的新user
訊息將結果返回給 Claude
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?