Claude는 Anthropic에서 정의한 텍스트 편집기 도구를 사용하여 텍스트 파일을 보고 수정할 수 있으며, 이를 통해 코드를 디버깅하고 수정하고 개선하는 데 도움을 줄 수 있습니다. 이를 통해 Claude는 파일과 직접 상호작용하여 변경 사항을 제안하는 것이 아니라 실질적인 지원을 제공할 수 있습니다.
| 모델 | 도구 버전 |
|---|---|
| Claude 4.x 모델 | text_editor_20250728 |
| Claude Sonnet 3.7 (deprecated) | text_editor_20250124 |
Claude 4 모델용 text_editor_20250728 도구는 undo_edit 명령을 포함하지 않습니다. 이 기능이 필요한 경우 Claude Sonnet 3.7 (deprecated)을 사용해야 합니다.
이전 도구 버전은 최신 모델과의 하위 호환성이 보장되지 않습니다. 항상 모델 버전에 해당하는 도구 버전을 사용하세요.
텍스트 편집기 도구를 사용하는 경우의 예시는 다음과 같습니다:
텍스트 편집기 도구는 다음과 같은 방식으로 사용할 수 있습니다:
텍스트 편집기 도구는 파일을 보고 수정하기 위한 여러 명령을 지원합니다:
view 명령을 사용하면 Claude가 파일의 내용을 검사하거나 디렉토리의 내용을 나열할 수 있습니다. 전체 파일 또는 특정 줄 범위를 읽을 수 있습니다.
매개변수:
command: "view"여야 합니다path: 보려는 파일 또는 디렉토리의 경로view_range (선택사항): 시작 및 끝 줄 번호를 지정하는 두 개의 정수 배열입니다. 줄 번호는 1부터 시작하며, 끝 줄에 -1을 사용하면 파일의 끝까지 읽습니다. 이 매개변수는 디렉토리가 아닌 파일을 볼 때만 적용됩니다.str_replace 명령을 사용하면 Claude가 파일의 특정 문자열을 새 문자열로 바꿀 수 있습니다. 이는 정확한 편집을 수행하는 데 사용됩니다.
매개변수:
command: "str_replace"여야 합니다path: 수정할 파일의 경로old_str: 바꿀 텍스트(공백 및 들여쓰기를 포함하여 정확히 일치해야 함)new_str: 이전 텍스트 대신 삽입할 새 텍스트create 명령을 사용하면 Claude가 지정된 내용으로 새 파일을 만들 수 있습니다.
매개변수:
command: "create"여야 합니다path: 새 파일을 만들 경로file_text: 새 파일에 쓸 내용insert 명령을 사용하면 Claude가 파일의 특정 위치에 텍스트를 삽입할 수 있습니다.
매개변수:
command: "insert"여야 합니다path: 수정할 파일의 경로insert_line: 텍스트를 삽입할 줄 번호(파일의 시작 부분의 경우 0)new_str: 삽입할 텍스트undo_edit 명령을 사용하면 Claude가 파일에 대한 마지막 편집을 되돌릴 수 있습니다.
이 명령은 Claude Sonnet 3.7 (deprecated)에서만 사용 가능합니다. text_editor_20250728을 사용하는 Claude 4 모델에서는 지원되지 않습니다.
매개변수:
command: "undo_edit"여야 합니다path: 마지막 편집을 취소할 파일의 경로텍스트 편집기 도구는 스키마 없는 도구로 구현됩니다. 이 도구를 사용할 때는 다른 도구처럼 입력 스키마를 제공할 필요가 없습니다. 스키마는 Claude의 모델에 내장되어 있으며 수정할 수 없습니다.
도구 유형은 모델 버전에 따라 다릅니다:
type: "text_editor_20250728"type: "text_editor_20250124"텍스트 편집기 도구를 구현할 때 다음을 염두에 두세요:
텍스트 편집기 도구를 사용할 때 다양한 오류가 발생할 수 있습니다. 다음은 이를 처리하는 방법에 대한 지침입니다:
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, , 및 명령을 통해 파일을 보고, 생성하고, 편집할 수 있는 기능을 제공합니다. |
텍스트 편집기 도구를 더 편리하고 강력한 방식으로 사용하는 방법에 대한 몇 가지 아이디어는 다음과 같습니다:
텍스트 편집기 도구를 사용하여 애플리케이션을 구축할 때 Claude의 기능을 활용하여 개발 워크플로우와 생산성을 향상시키는 방법을 보게 되어 기대됩니다.
Claude에 텍스트 편집기 도구와 사용자 프롬프트 제공
Claude가 도구를 사용하여 파일 또는 디렉토리 검사
view 명령을 사용하여 파일 내용을 검사하거나 디렉토리 내용을 나열합니다view 명령이 포함된 tool_use 콘텐츠 블록이 포함됩니다view 명령을 실행하고 결과 반환
max_characters 매개변수를 지정한 경우 파일 내용을 해당 길이로 자릅니다tool_result 콘텐츠 블록이 포함된 새 user 메시지로 대화를 계속하여 결과를 Claude에게 반환합니다Claude가 도구를 사용하여 파일 수정
str_replace와 같은 명령을 사용하거나 특정 줄 번호에 텍스트를 추가하기 위해 insert를 사용할 수 있습니다str_replace 명령을 사용하는 경우 Claude는 이전 텍스트와 이를 대체할 새 텍스트를 포함하여 올바르게 형식화된 도구 사용 요청을 구성합니다편집을 실행하고 결과 반환
Claude가 분석 및 설명 제공
편집기 구현 초기화
파일 읽기, 쓰기, 수정과 같은 파일 작업을 처리하는 도우미 함수를 만듭니다. 실수로부터 복구하기 위해 백업 기능을 구현하는 것을 고려하세요.
편집기 도구 호출 처리
명령 유형을 기반으로 Claude의 도구 호출을 처리하는 함수를 만듭니다:
def handle_editor_tool(tool_call, model_version):
input_params = tool_call.input
command = input_params.get('command', '')
file_path = input_params.get('path', '')
if command == 'view':
# 파일 내용 읽기 및 반환
pass
elif command == 'str_replace':
# 파일의 텍스트 교체
pass
elif command == 'create':
# 새 파일 생성
pass
elif command == 'insert':
# 위치에 텍스트 삽입
pass
elif command == 'undo_edit':
# Claude 4 모델인지 확인
if 'str_replace_based_edit_tool' in model_version:
return {"error": "undo_edit command is not supported in Claude 4"}
# Claude 3.7의 경우 백업에서 복원
pass보안 조치 구현
검증 및 보안 확인을 추가합니다:
Claude의 응답 처리
Claude의 응답에서 도구 호출을 추출하고 처리합니다:
# Claude의 응답에서 도구 사용 처리
for content in response.content:
if content.type == "tool_use":
# 명령을 기반으로 도구 실행
result = handle_editor_tool(content)
# Claude에 결과 반환
tool_result = {
"type": "tool_result",
"tool_use_id": content.id,
"content": result
}str_replaceinsertundo_editClaude로 셸 명령을 실행합니다.