重要提示:文字編輯器工具的最新工具 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 結構描述內建於 Claude 中。您仍然需要提供實際的實作。

當您建立自訂工具時,您需要撰寫兩個部分——告訴 Claude 有關該工具的結構描述,以及實際執行工作的函式。使用文字編輯器工具時,Claude 已經擁有結構描述,但您必須撰寫函式來處理 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 驅動開發工具成為可能,您可以要求進行程式碼變更,並直接在您的檔案系統中實作這些變更。