0Pricing
AI Agents · Pelajaran

Antarmuka Alat untuk Pemrograman (Read, Edit, Bash)

Alat minimum yang dibutuhkan agen kode: membaca berkas, mengedit berkas, menjalankan shell, dan menjalankan pengujian.

Antarmuka Alat untuk Pemrograman (Read, Edit, Bash) adalah pelajaran AI Agents gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar AI Agents, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AI Agents mencakup 4 pelajaran total.

Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.

Alat Apa yang Dibutuhkan Agen Kode?

Yang minimum:

  1. read_file — melihat kode
  2. edit_file / write_file — mengubah kode
  3. bash — menjalankan perintah shell (pengujian, kompilasi)
  4. search / grep — menemukan kode berdasarkan string atau simbol

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)

Pembacaan Rentang Baris Menghemat Token

Untuk file besar, baca hanya rentang yang relevan. Menghemat sangat banyak token dibandingkan membaca seluruh file pada setiap pemanggilan.

edit_file (Penggantian Teks)

Pola str_replace milik Anthropic: temukan string unik dalam file lalu ganti:

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)

Mengapa Penggantian Teks daripada Perbedaan

  • Lebih sederhana bagi model daripada menghasilkan sintaks perbedaan yang valid
  • Memaksa model melihat kode REAL (membantu menemukan halusinasi)
  • Menghasilkan kesalahan jika terdapat ambiguitas

Inilah format yang digunakan oleh Claude Code.

write_file

Untuk membuat file baru:

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

Perintah shell — untuk pengujian, kompilasi, dan instalasi paket:

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}")

Amankan Alat bash dalam Lingkungan Terisolasi

JANGAN PERNAH menjalankan bash di komputer utama Anda. Gunakan Docker / Firecracker / E2B. (Lihat kursus sebelumnya tentang lingkungan terisolasi.)

Pangkas Keluaran yang Panjang

Kegagalan pengujian dapat menghasilkan keluaran hingga megabita. Pangkas hingga beberapa KB terakhir — biasanya berisi kesalahan yang sebenarnya:

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]

Opsional: Alat AST

Untuk pemahaman kode yang lebih mendalam:

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)

Deskripsi Alat Paling Penting di Sini

Agen kode lebih sering memilih alat yang salah daripada agen obrolan. Luangkan waktu tambahan untuk menulis deskripsi:

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

Itulah Seluruh Kumpulan Alat

Baca, sunting, tulis, bash, grep, daftar. Dengan keenam alat ini, agen dapat mengerjakan hampir semua tugas rekayasa perangkat lunak. Tambahkan alat khusus hanya jika manfaatnya terbukti melalui pengukuran.

Pola Penyuntingan

Mengapa penyuntingan dengan "penggantian string" lebih aman daripada penyuntingan dengan "mengirim seluruh berkas"?

Ringkasan

Baca, sunting (str_replace), tulis, bash, grep, daftar. Enam alat yang dijelaskan dan dikotakpasirkan dengan baik sudah cukup untuk hampir semua agen pemrograman.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Antarmuka Alat untuk Pemrograman (Read, Edit, Bash)” gratis?

Ya — teks lengkap “Antarmuka Alat untuk Pemrograman (Read, Edit, Bash)” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AI Agents, upgrade ke CoddyKit PRO. Kursus AI Agents mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Antarmuka Alat untuk Pemrograman (Read, Edit, Bash)”?

Alat minimum yang dibutuhkan agen kode: membaca berkas, mengedit berkas, menjalankan shell, dan menjalankan pengujian. Kamu berlatih AI Agents dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai AI Agents?

Tidak diperlukan pengalaman sebelumnya. AI Agents di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Antarmuka Alat untuk Pemrograman (Read, Edit, Bash)” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran AI Agents ini?

Ya. Setiap pelajaran AI Agents menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Pola Agentik: Rencanakan-Jalankan-Verifikasi
  2. Antarmuka Alat untuk Pemrograman (Read, Edit, Bash)
  3. Siklus Koreksi Mandiri Iteratif
  4. Arsitektur SWE-Agent dan OpenDevin
← Kembali ke AI Agents