0Pricing
AI Agents · Ders

Kodlama Araçları (Read, Edit, Bash)

Bir kod aracısının ihtiyaç duyduğu asgari araçlar: dosya okuma, dosya düzenleme, kabuk çalıştırma ve testleri çalıştırma.

Kodlama Araçları (Read, Edit, Bash), CoddyKit'te ücretsiz bir AI Agents dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, AI Agents öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AI Agents kursu toplamda 4 dersten oluşur.

Bu dersin bazı bölümleri henüz çevrilmemiş olup İngilizce olarak gösterilmektedir.

Bir Kod Agent'ının Hangi Araçlara İhtiyacı Var?

Asgari araçlar:

  1. read_file — kodu görme
  2. edit_file / write_file — kodu değiştirme
  3. bash — kabuk komutlarını çalıştırma (testler, derlemeler)
  4. search / grep — dize veya sembole göre kod bulma

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)

Satır Aralığı Okumaları Belirteç Tasarrufu Sağlar

Büyük dosyalarda yalnızca ilgili aralığı okuyun. Her çağrıda dosyanın tamamını okumaya kıyasla büyük ölçüde belirteç tasarrufu sağlanır.

edit_file (Dize Değiştirme)

Anthropic'in dize değiştirme deseni: bir dosyada benzersiz bir dize bulun ve onu değiştirin:

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)

Farklar Yerine Dize Değiştirme Neden?

  • Model için geçerli fark söz dizimi üretmekten daha basittir
  • Modeli gerçek koda bakmaya zorlar (halüsinasyonları yakalamaya yardımcı olur)
  • Belirsizlik durumunda hata verir

Claude Code tarafından kullanılan biçim budur.

write_file

Yeni dosyalar oluşturmak için:

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

Kabuk komutları; testler, derlemeler ve paket kurulumları için kullanılır:

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 Aracını Korumalı Ortamda Çalıştırın

NEVER bash'i ana makinenizde çalıştırmayın. Docker / Firecracker / E2B kullanın. (Korumalı ortam oluşturma hakkındaki önceki kursa bakın.)

Uzun Çıktıyı Kısaltın

Test hataları megabaytlarca çıktı üretebilir. Çıktıyı son birkaç KB'ye kadar kısaltın; gerçek hatayı genellikle bu bölüm içerir:

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]

İsteğe Bağlı: AST Araçları

Daha derin bir kod anlayışı için:

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)

Burada En Çok Araç Açıklamaları Önemlidir

Kod agent'ları, sohbet agent'larına kıyasla yanlış aracı daha sık seçer. Açıklamalar üzerinde fazladan zaman harcayın:

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.'

Tüm Araç Kümesi Budur

Okuma, düzenleme, yazma, bash, grep ve listeleme. Bu altı araçla bir aracı, neredeyse her yazılım mühendisliği görevini gerçekleştirebilir. Uzmanlaşmış araçları yalnızca ölçülebilir bir fayda sağladıklarında ekleyin.

Düzenleme Deseni

"Dize değiştirme" düzenlemesi, "tam dosyayı gönderme" düzenlemesinden neden daha güvenlidir?

Özet

Okuma, düzenleme (str_replace), yazma, bash, grep ve listeleme. Uygun biçimde açıklanmış ve yalıtılmış altı araç, neredeyse her kodlama aracısı için yeterlidir.

Sıkça Sorulan Sorular

“Kodlama Araçları (Read, Edit, Bash)” dersi ücretsiz mi?

Evet — “Kodlama Araçları (Read, Edit, Bash)” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve AI Agents kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AI Agents kursu toplamda 4 dersten oluşur.

“Kodlama Araçları (Read, Edit, Bash)” dersinde ne öğreneceğim?

Bir kod aracısının ihtiyaç duyduğu asgari araçlar: dosya okuma, dosya düzenleme, kabuk çalıştırma ve testleri çalıştırma. AI Agents ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

AI Agents öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te AI Agents, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Kodlama Araçları (Read, Edit, Bash)” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu AI Agents dersinde kod yazıp çalıştırabilir miyim?

Evet. Her AI Agents dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Aracı Kalıpları: Planla-Uygula-Doğrula
  2. Kodlama Araçları (Read, Edit, Bash)
  3. Yinelemeli Öz Düzeltme Döngüleri
  4. SWE-Agent ve OpenDevin Mimarileri
← AI Agents Sayfasına Dön