Tool-Schnittstellen fürs Programmieren (Read, Edit, Bash)
Die grundlegenden Tools, die ein Code-Agent benötigt: Datei lesen, Datei bearbeiten, Shell ausführen und Tests ausführen.
Tool-Schnittstellen fürs Programmieren (Read, Edit, Bash) ist eine kostenlose AI Agents-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des AI Agents-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.
Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.
Welche Tools benötigt ein Code-Agent?
Das Minimum:
- read_file — Code anzeigen
- edit_file / write_file — Code ändern
- bash — Shell-Befehle ausführen (Tests, Builds)
- search / grep — Code anhand einer Zeichenfolge oder eines Symbols finden
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)
Das Lesen von Zeilenbereichen spart Tokens
Lesen Sie bei großen Dateien nur den relevanten Bereich. Das spart im Vergleich zum Lesen der gesamten Datei bei jedem Aufruf massiv Tokens.
edit_file (String-Ersetzung)
Das str_replace-Muster von Anthropic: Suchen Sie eine eindeutige Zeichenfolge in einer Datei und ersetzen Sie sie:
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)Warum String-Ersetzung statt Diffs?
- Für das Modell einfacher als die Erstellung einer gültigen Diff-Syntax
- Zwingt das Modell, echten Code zu betrachten (hilft, Halluzinationen zu erkennen)
- Bricht bei Mehrdeutigkeit mit einem Fehler ab
Dieses Format wird von Claude Code verwendet.
write_file
Zum Erstellen neuer Dateien:
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
Shell-Befehle – für Tests, Builds und Paketinstallationen:
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}")
Das Bash-Tool in einer Sandbox ausführen
FÜHREN SIE bash NIEMALS auf Ihrem Host aus. Verwenden Sie Docker / Firecracker / E2B. (Siehe den vorherigen Kurs über Sandboxing.)
Lange Ausgaben kürzen
Fehlgeschlagene Tests können Megabytes an Ausgabe erzeugen. Kürzen Sie die Ausgabe auf die letzten KB – dort steht normalerweise der eigentliche Fehler:
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]Optional: AST-Tools
Für ein tieferes Verständnis des Codes:
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)Tool-Beschreibungen sind hier am wichtigsten
Code-Agenten wählen häufiger das falsche Tool als Chat-Agenten. Investieren Sie zusätzliche Zeit in die Beschreibungen:
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.'Das ist der gesamte Werkzeugsatz
read, edit, write, bash, grep, list. Mit diesen sechs Tools kann ein Agent nahezu jede Softwareentwicklungsaufgabe erledigen. Fügen Sie spezialisierte Tools nur hinzu, wenn ein messbarer Nutzen besteht.
Bearbeitungsmuster
Warum ist eine Bearbeitung mit „string-replace“ sicherer als eine Bearbeitung, bei der die vollständige Datei gesendet wird?
Zusammenfassung
read, edit (str_replace), write, bash, grep, list. Sechs gut beschriebene und in einer Sandbox ausgeführte Tools reichen für nahezu jeden Coding-Agenten aus.
Häufig gestellte Fragen
Ist die Lektion „Tool-Schnittstellen fürs Programmieren (Read, Edit, Bash)“ kostenlos?
Ja — der vollständige Text von „Tool-Schnittstellen fürs Programmieren (Read, Edit, Bash)“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des AI Agents-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Tool-Schnittstellen fürs Programmieren (Read, Edit, Bash)“?
Die grundlegenden Tools, die ein Code-Agent benötigt: Datei lesen, Datei bearbeiten, Shell ausführen und Tests ausführen. Du übst AI Agents mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um AI Agents zu starten?
Keine Vorkenntnisse erforderlich. AI Agents auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Tool-Schnittstellen fürs Programmieren (Read, Edit, Bash)“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser AI Agents-Lektion Code schreiben und ausführen?
Ja. Jede AI Agents-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Agentic Patterns: Plan-Execute-Verify
- Tool-Schnittstellen fürs Programmieren (Read, Edit, Bash)
- Iterative Selbstkorrekturschleifen
- Architekturen von SWE-Agent und OpenDevin