Verktygsgränssnitt för kodning (Read, Edit, Bash)
De minsta verktyg en kodagent behöver: läsa en fil, redigera en fil, köra skalet och köra tester.
Verktygsgränssnitt för kodning (Read, Edit, Bash) är en gratis lektion i AI-agenter på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för AI-agenter, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i AI-agenter innehåller totalt 4 lektioner.
Delar av den här lektionen har ännu inte översatts och visas på engelska.
Vilka verktyg behöver en kodagent?
Det minsta:
- read_file — se kod
- edit_file / write_file — ändra kod
- bash — köra skal kommandon (tester, byggen)
- search / grep — hitta kod efter sträng eller symbol
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)
Läsning av radintervall sparar tokens
För stora filer ska ni endast läsa det relevanta intervallet. Det sparar mycket tokens jämfört med att läsa hela filen vid varje anrop.
edit_file (strängersättning)
Anthropics str_replace-mönster: hitta en unik sträng i en fil och ersätt den:
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)Varför strängersättning i stället för diffar
- Enklare för modellen än att skapa giltig diffsyntax
- Tvingar modellen att titta på RIKTIG kod, vilket hjälper till att upptäcka hallucinationer
- Ger fel vid tvetydighet
Det är formatet som används av Claude Code.
write_file
För att skapa nya filer:
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
Skalkommandon – för tester, byggen och paketinstallationer:
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}")
Sandlådekör bash-verktyget
Kör ALDRIG bash på värddatorn. Använd Docker / Firecracker / E2B. (Se föregående kurs om sandboxning.)
Korta ned lång output
Testfel kan generera megabyte av text. Korta ned till de sista kilobyten – där finns vanligtvis det faktiska felet:
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]Valfritt: AST-verktyg
För djupare kodförståelse:
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)Verktygsbeskrivningar är viktigast här
Kodagenter väljer fel verktyg oftare än chattagenter. Lägg extra tid på beskrivningarna:
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.'Det är hela verktygsuppsättningen
Read, edit, write, bash, grep, list. Med dessa sex verktyg kan en agent utföra nästan alla programvaruutvecklingsuppgifter. Lägg bara till specialiserade verktyg när det finns en uppmätt nytta.
Redigeringsmönster
Varför är redigering med "string-replace" säkrare än redigering med "send full file"?
Sammanfattning
Read, edit (str_replace), write, bash, grep, list. Sex verktyg som är korrekt beskrivna och begränsade i en sandbox räcker för nästan alla kodagenter.
Lär dig AI-agenter med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 60
- Lektioner
- 239
Vanliga frågor
Är lektionen ”Verktygsgränssnitt för kodning (Read, Edit, Bash)” gratis?
Ja – hela texten till ”Verktygsgränssnitt för kodning (Read, Edit, Bash)” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i AI-agenter, kan Ni uppgradera till CoddyKit PRO. Kursen i AI-agenter innehåller totalt 4 lektioner.
Vad lär jag mig i ”Verktygsgränssnitt för kodning (Read, Edit, Bash)”?
De minsta verktyg en kodagent behöver: läsa en fil, redigera en fil, köra skalet och köra tester. Ni övar på AI-agenter med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig AI-agenter?
Du behöver inga förkunskaper. Utbildningen i AI-agenter på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.
Hur lång tid tar lektionen ”Verktygsgränssnitt för kodning (Read, Edit, Bash)”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här AI-agenter-lektionen?
Ja. Varje AI-agenter-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Agentiska mönster: planera–utför–verifiera
- Verktygsgränssnitt för kodning (Read, Edit, Bash)
- Iterativa självkorrigeringsloopar
- Arkitekturerna bakom SWE-Agent och OpenDevin