코딩을 위한 도구 표면(Read, Edit, Bash)
코드 에이전트에 필요한 최소 도구입니다. 파일 읽기, 파일 편집, 셸 실행, 테스트 실행입니다.
코딩을 위한 도구 표면(Read, Edit, Bash)은(는) CoddyKit의 무료 AI Agents 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AI Agents 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AI Agents 강의에는 총 4개의 강의가 포함되어 있습니다.
이 강의의 일부는 아직 번역되지 않았으며 영어로 표시됩니다.
코드 에이전트에 필요한 도구는 무엇인가요
최소한 다음이 필요합니다:
- read_file — 코드를 확인합니다
- edit_file / write_file — 코드를 변경합니다
- bash — 셸 명령을 실행합니다(테스트, 빌드)
- search / grep — 문자열이나 기호로 코드를 찾습니다
read_file
def read_file(path: str, start_line: int = 0, end_line: int | None = None) -> str:
with open(path) as f:
lines = f.readlines()
return ''.join(lines[start_line:end_line])
# --- demo ---
with open('demo_source.py', 'w', encoding='utf-8') as f:
f.write('line0\nline1\nline2\nline3\nline4\n')
snippet = read_file('demo_source.py', start_line=1, end_line=3)
print('Lines 1-2 of demo_source.py:')
print(snippet)
줄 범위 읽기로 토큰 절약
큰 파일에서는 관련된 범위만 읽으십시오. 호출할 때마다 전체 파일을 읽는 것보다 토큰을 크게 절약할 수 있습니다.
edit_file(문자열 치환)
Anthropic의 str_replace 패턴은 파일에서 고유한 문자열을 찾아 치환하는 방식입니다:
def edit_file(path: str, old_string: str, new_string: str):
contents = read_file(path)
occurrences = contents.count(old_string)
if occurrences == 0:
raise ValueError('old_string not found')
if occurrences > 1:
raise ValueError('old_string is not unique')
contents = contents.replace(old_string, new_string)
with open(path, 'w') as f:
f.write(contents)차이점보다 문자열 치환을 사용하는 이유
- 유효한 차이점 문법을 생성하는 것보다 모델에 더 간단합니다
- 모델이 실제 코드를 확인하게 하므로 환각을 찾아내는 데 도움이 됩니다
- 모호한 경우 오류를 발생시킵니다
Claude Code에서 사용하는 형식입니다.
write_file
새 파일을 만들 때 사용합니다:
def write_file(path: str, content: str):
os.makedirs(os.path.dirname(path), exist_ok=True)
with open(path, 'w') as f:
f.write(content)bash
셸 명령은 테스트, 빌드, 패키지 설치에 사용합니다:
def bash(command: str, timeout: int = 60) -> dict:
import subprocess
try:
result = subprocess.run(command, shell=True, capture_output=True, text=True, timeout=timeout)
return {'stdout': result.stdout[-5000:], 'stderr': result.stderr[-5000:], 'exit_code': result.returncode}
except subprocess.TimeoutExpired:
return {'error': 'timeout', 'exit_code': -1}
# --- demo ---
result = bash("echo hello from the sandboxed shell")
print(f"exit_code={result['exit_code']}")
print(f"stdout={result['stdout'].strip()!r}")
bash 도구 샌드박스 처리
호스트에서 bash를 NEVER 실행하십시오. Docker / Firecracker / E2B를 사용하십시오. (샌드박싱에 관한 이전 강의를 참고하십시오.)
긴 출력 자르기
테스트 실패는 수 메가바이트의 출력을 쏟아 낼 수 있습니다. 마지막 몇 KB만 남기도록 자르십시오. 대개 실제 오류가 그 안에 있습니다:
stderr = 'error line\n' * 1000
if len(stderr) > 5000:
stderr = '...[truncated]...' + stderr[-5000:]
print(f'Truncated stderr length: {len(stderr)}')search / grep
def grep(pattern: str, path: str = '.', file_glob: str = '**/*') -> list[str]:
matches = []
for f in glob(file_glob, recursive=True):
for i, line in enumerate(open(f)):
if re.search(pattern, line):
matches.append(f'{f}:{i+1}: {line.rstrip()}')
return matches[:50]list_files
def list_files(path: str = '.') -> list[str]:
return [p for p in glob(f'{path}/**', recursive=True) if os.path.isfile(p)][:200]선택 사항: AST 도구
더 깊이 있게 코드를 이해하려면 다음을 사용하십시오:
def find_function(name: str, path: str):
tree = ast.parse(open(path).read())
for node in ast.walk(tree):
if isinstance(node, ast.FunctionDef) and node.name == name:
return ast.unparse(node)여기서는 도구 설명이 가장 중요합니다
코드 에이전트는 채팅 에이전트보다 잘못된 도구를 선택하는 경우가 많습니다. 설명을 작성하는 데 더 많은 시간을 투자하십시오:
description='Edit a file by replacing a unique string. The old_string MUST appear exactly once in the file. Reads the file first to validate. Use this for any code change in an existing file.'이것이 전체 도구 세트입니다
읽기, 편집, 쓰기, 셸 실행, 검색, 목록 조회. 이 여섯 가지 도구만으로도 에이전트는 거의 모든 소프트웨어 공학 작업을 수행할 수 있습니다. 측정된 이점이 있을 때만 특화 도구를 추가하십시오.
편집 패턴
"문자열 치환" 편집이 "전체 파일 전송" 편집보다 안전한 이유는 무엇입니까?
복습
읽기, 편집(문자열 치환), 쓰기, 셸 실행, 검색, 목록 조회. 제대로 설명되고 샌드박스로 격리된 여섯 가지 도구면 거의 모든 코딩 에이전트에 충분합니다.
자주 묻는 질문
“코딩을 위한 도구 표면(Read, Edit, Bash)” 강의는 무료인가요?
네 — “코딩을 위한 도구 표면(Read, Edit, Bash)” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 AI Agents 강의 전체를 잠금 해제할 수 있습니다. AI Agents 강의에는 총 4개의 강의가 포함되어 있습니다.
“코딩을 위한 도구 표면(Read, Edit, Bash)”에서 뭘 배우나요?
코드 에이전트에 필요한 최소 도구입니다. 파일 읽기, 파일 편집, 셸 실행, 테스트 실행입니다. 브라우저에서 직접 실행하는 실습 코드로 AI Agents을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
AI Agents을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 AI Agents은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“코딩을 위한 도구 표면(Read, Edit, Bash)” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 AI Agents 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 AI Agents 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 에이전트 패턴: 계획-실행-검증
- 코딩을 위한 도구 표면(Read, Edit, Bash)
- 반복적 자기 수정 루프
- SWE-Agent와 OpenDevin 아키텍처