載入中

重要提示:所有模型版本的工具版本字串都可以在這裡找到:https://platform.claude.com/docs/en/agents-and-tools/tool-use/text-editor-tool

Claude 內建一個您不需要從頭建立的工具:文字編輯工具。這個工具讓 Claude 能夠像您在標準文字編輯器中一樣處理檔案和目錄。

文字編輯工具能做什麼

文字編輯工具為 Claude 提供了一套全面的檔案操作能力:

  • 檢視檔案或目錄內容
  • 檢視檔案中特定範圍的行
  • 替換檔案中的文字
  • 建立新檔案
  • 在檔案的特定行插入文字
  • 撤銷對檔案的最近編輯

這大幅擴展了 Claude 的能力,基本上賦予了它開箱即用地扮演軟體工程師的能力。

了解實作需求

這裡有一點令人困惑的地方:雖然工具結構(schema)已內建於 Claude 中,但您仍需要提供實際的實作。可以這樣理解——Claude 知道如何請求檔案操作,但您需要撰寫實際執行這些操作的程式碼。

當您使用其他工具時,您需要同時撰寫 JSON 結構(schema)和函式實作。對於文字編輯工具,Claude 提供了結構(schema)知識,但您必須撰寫函式來處理 Claude 建立檔案、讀取目錄、替換文字等請求。

結構版本

雖然主要的結構(schema)已內建於 Claude 中,但在發出請求時,您仍需要包含一個小型的結構(schema)片段。確切的結構取決於您使用的 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 會看到這個小型結構(schema),並在幕後自動將其擴展為完整的文字編輯工具規格。

實際範例

讓我們看看文字編輯工具的實際運作。當您要求 Claude 處理檔案時,它會使用該工具來依需要讀取、修改和建立檔案。

例如,如果您要求 Claude「開啟 ./main.py 檔案並總結其內容」,Claude 將會:

  1. 使用文字編輯工具檢視檔案
  2. 讀取內容
  3. 為您提供摘要

您可以進一步要求 Claude 修改檔案。例如:「開啟 ./main.py 檔案,並寫出一個計算 pi 到第 5 位數的函式。然後建立一個 ./test.py 檔案來測試您的實作。」

Claude 將會:

  1. 檢視現有的 main.py 檔案
  2. 用包含 pi 計算函式的新實作替換其內容
  3. 建立一個新的 test.py 檔案,並附上適當的單元測試

為什麼要使用文字編輯工具?

您可能會想,既然現代程式碼編輯器已經內建了 AI 助手,為什麼還需要這個工具。文字編輯工具在以下情境中會變得很有價值:

  • 您正在建構需要以程式化方式編輯檔案的應用程式
  • 您在沒有完整功能程式碼編輯器的環境中工作
  • 您想要將檔案編輯能力直接整合到您以 Claude 驅動的應用程式中

基本上,文字編輯工具讓您能夠在自己的應用程式中複製出許多高階 AI 驅動程式碼編輯器的功能,讓您能夠精細控制 Claude 與您的檔案系統互動的方式。