Agen Penjelas Kode
Bangun agen yang membaca berkas sumber, meminta penjelasan kepada LLM, lalu mengembalikan dokumentasi Markdown.
Agen Penjelas Kode 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.
Tujuan Proyek
Buat agen yang menerima berkas sumber (Python, JS, atau apa saja) dan mengembalikan dokumentasi Markdown: tujuan, fungsi utama, serta contoh penggunaan.
Mengapa Berguna?
Menghasilkan dokumentasi dari kode adalah salah satu kasus penggunaan LLM yang paling andal — kode terstruktur, tugasnya terbatas, dan output dibaca oleh manusia (sehingga kesalahan kecil masih dapat ditoleransi).
Arsitektur
- Baca berkas sumber
- Secara opsional, pecah berdasarkan kelas/fungsi
- Untuk setiap bagian, minta LLM memberikan penjelasan
- Gabungkan menjadi dokumen Markdown
Step 1: Read the File
import sys
with open('example.py', 'w') as f:
f.write('print("hello")\n')
path = sys.argv[1] if len(sys.argv) > 1 else 'example.py'
with open(path) as f:
code = f.read()
print(f'Read {len(code)} characters from {path}')Step 2: Prompt for Documentation
from openai import OpenAI
oai = OpenAI()
prompt = f'''
You are a senior engineer writing developer-friendly docs.
Given this source file, produce a Markdown document with:
# {path}
## Purpose
(One paragraph)
## Public API
(Each function/class with one-line description)
## Usage Example
(One short, runnable snippet)
Source:
```
{code}
```
'''
response = oai.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': prompt}],
temperature=0.2,
)
print(response.choices[0].message.content)Tangani Berkas Panjang
Jika berkas terlalu panjang, pecah berdasarkan fungsi dan jelaskan masing-masing secara terpisah:
import ast
tree = ast.parse(code)
functions = [node for node in ast.walk(tree) if isinstance(node, ast.FunctionDef)]
for func in functions:
snippet = ast.unparse(func)
explain(snippet)Langkah 3: Gabungkan Output
Untuk eksekusi dengan banyak bagian, rangkai penjelasan per fungsi menjadi satu dokumen:
docs = []
for func_name, snippet in functions:
explanation = explain(snippet)
docs.append(f'### {func_name}\n\n{explanation}\n')
full_doc = '\n'.join(docs)
open('docs.md', 'w').write(full_doc)Tambahkan Ringkasan Tingkat Proyek
Setelah penjelasan per fungsi, minta LLM memberikan ikhtisar tingkat tinggi:
summary_prompt = 'Summarise the purpose of this package in 3 sentences, given these function docs:\n\n' + full_doc
summary = ask(summary_prompt)Banyak Bahasa
Instruksi yang sama dapat digunakan untuk JS, Go, Rust, dan sebagainya. Untuk hasil yang lebih baik, tambahkan bahasa tersebut ke dalam instruksi:
prompt = f'You are documenting {language} code. ...'Dokumentasi Berbasis Perubahan
Untuk pembaruan bertahap, jalankan kembali hanya pada berkas yang berubah:
import subprocess
changed = subprocess.check_output(['git', 'diff', '--name-only', 'HEAD~1']).decode().splitlines()
for path in changed:
if path.endswith('.py'):
regenerate_doc(path)Gunakan Alat untuk Menjalankan Contoh
Verifikasi bahwa contoh penggunaan dari LLM benar-benar berjalan — berikan agen alat REPL Python:
def run_python(code):
try:
exec(code, {})
return {'stdout': 'ok', 'stderr': ''}
except Exception as e:
return {'stdout': '', 'stderr': str(e)}
tools = [{'name': 'run_python', 'description': 'Execute a Python snippet and return stdout/stderr', 'parameters': {'code': 'str'}}]
broken_example = 'print(1/0)'
result = run_python(broken_example)
if result['stderr']:
print('Example failed:', result['stderr'])
fixed_example = 'print(1)'
result = run_python(fixed_example)
print('Self-corrected result:', result)
else:
print('Example ran fine:', result)
Saat Agen Berhalusinasi
Model terkadang mengarang fungsi atau argumen. Mitigasinya:
- Berikan HANYA isi berkas (tanpa memori model)
- Suhu 0
- Tambahkan langkah verifikasi (jalankan contoh, periksa cuplikan dengan pemeriksa gaya)
Jadikan Produk
Bungkus ini sebagai CLI:
# pip install -e .
# docgen src/myproject/agent.py
# Outputs docs.mdDari Alat ke CI
Hubungkan ke CI: pada setiap PR, buat ulang dokumentasi untuk berkas yang berubah dan masukkan kembali hasilnya. Kini repositori Anda selalu terdokumentasi.
Mengapa Membaca Seluruh Berkas?
Mengapa meneruskan berkas sumber LENGKAP ke LLM, bukan hanya tanda tangan fungsi?
Ringkasan
Agen 30 baris yang mengubah kode menjadi dokumentasi. Mudah diperluas dengan alat dan verifikasi. Proyek kedua yang bagus setelah RAG.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Agen Penjelas Kode” gratis?
Ya — teks lengkap “Agen Penjelas Kode” 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 “Agen Penjelas Kode”?
Bangun agen yang membaca berkas sumber, meminta penjelasan kepada LLM, lalu mengembalikan dokumentasi Markdown. 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 “Agen Penjelas Kode” 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
- Bot Tanya Jawab untuk Dokumen Anda
- Agen Penjelas Kode
- Agen Riset Penjelajahan Web
- Asisten SQL untuk DB Anda