JIPRAKS Classroom

Cara Bangun AI Agent untuk Otomasi Penilaian Kualitas Kode dengan n8n + LLM (MVP 1 Hari)

· 3 menit baca

Cara Bangun AI Agent untuk Otomasi Penilaian Kualitas Kode dengan n8n + LLM (MVP 1 Hari)

🚨 Hook: Kenapa Review Kode Masih Jadi Bottleneck?

Tim developer junior‑intermediate sering terjebak di review kode manual. Prosesnya lambat, bias subjektif, dan kadang melewatkan bug kritis. Akibatnya:

  • Deploy terlambat → kehilangan peluang pasar.
  • Technical debt menumpuk → biaya perbaikan naik.
  • Developer frustrasi → turnover meningkat.

Bayangkan kalau ada AI Agent yang otomatis menilai kualitas kode, memberi feedback yang konkret, dan bahkan menandai code smell sebelum PR masuk ke pipeline. Dalam artikel ini, saya tunjukkan cara membangun solusi itu dengan n8n dan LLM (misalnya OpenAI GPT‑4) hanya dalam 1 hari.

Konsep Cepat: AI Agent + n8n = Review Bot

Inti workflow:

  1. Trigger saat ada Pull Request (GitHub webhook).
  2. Ambil diff file, kirim ke LLM dengan prompt khusus.
  3. LLM meng‑generate checklist (complexity, anti‑patterns, security).
  4. Parse output → comment di PR & label otomatis.
  5. Opsional: blok merge jika skor di bawah threshold.

n8n bertindak sebagai orkestrator: mengelola webhook, handling rate‑limit, dan menyimpan log untuk audit.

Setup Teknis: Langkah‑per‑Langkah

1. Siapkan n8n (Docker)

docker run -d \
  --name n8n \
  -p 5678:5678 \
  -v ~/.n8n:/home/node/.n8n \
  n8nio/n8n:latest

Pastikan EXECUTIONS_PROCESS=main untuk eksekusi sinkron saat testing.

2. Buat API Credential OpenAI

Di n8n → Settings → Credentials → OpenAI API. Masukkan API Key dan pilih model gpt-4o-mini (lebih murah, cukup untuk analisis kode).

3. Buat Webhook Trigger

Node Webhook dengan method POST. URL akan dipakai di GitHub repo → Settings → Webhooks → Pull request events (opened, synchronize, reopened).

4. Ambil Diff File

Gunakan node HTTP Request ke GitHub API:

GET https://api.github.com/repos/{{ $json.owner }}/{{ $json.repo }}/pulls/{{ $json.pull_number }}/files
Headers: Authorization: token {{ $credentials.githubApiKey }}

Iterasi setiap file dengan SplitInBatches agar payload < 100 KB (batas OpenAI).

5. Prompt Engineering

Prompt contoh (disimpan di Set node untuk reuse):

Analyze the following diff and answer in JSON with these keys:
- "complexity_score" (0‑10)
- "security_issues" (array of strings)
- "code_smells" (array of strings)
- "suggested_fix" (short bullet list)

Only output valid JSON, no explanations.

Diff:
{{ $json.patch }}

Gunakan node OpenAI dengan temperature: 0 untuk deterministik.

6. Parse & Aggregate

Response JSON dapat diparse lewat JSON Parse node. Gunakan Function node untuk menghitung rata‑rata complexity_score dan menentukan overall_status (pass/fail).

7. Beri Comment di PR

Node HTTP Request POST ke:

https://api.github.com/repos/{{ $json.owner }}/{{ $json.repo }}/issues/{{ $json.pull_number }}/comments
Body: {
  "body": "**AI Review Summary**\n\nComplexity: {{ $json.avg_complexity }}/10\nSecurity Issues: {{ $json.security_issues.join('\n') }}\nCode Smells: {{ $json.code_smells.join('\n') }}\n\n_💡 Tips_: {{ $json.suggested_fix.join('\n') }}"
}

8. Auto‑Label & Block Merge (Opsional)

Jika avg_complexity > 7 atau ada security_issues, gunakan GitHub API untuk menambahkan label needs-work dan set required status checks sehingga merge diblokir otomatis.

9. Logging & Observability

Tambahkan node Write Binary File atau Postgres untuk menyimpan review hasil. Bikin dashboard sederhana di Metabase untuk memantau tren kualitas kode tim.

Use Case Real: Startup SaaS 5‑orang

Tim mengintegrasikan workflow di atas. Hasil dalam 2 minggu:

  • Review cycle turun dari 4 jam → 30 menit.
  • Bug security critical berkurang 80% karena AI tangkap sebelum merge.
  • Developer junior dapat belajar dari feedback otomatis, meningkatkan skill.

Insight & Strategi: Membuat AI Review yang Benar‑Benar Bermanfaat

  • Prompt yang spesifik = output yang bersih. Sertakan contoh output dalam prompt untuk menurunkan noise.
  • Chunking diff penting untuk menghindari token limit dan menjaga latency < 5 detik.
  • Iterasi feedback: gunakan label ai-review‑verified untuk menandai PR yang telah disetujui manusia setelah AI review, sehingga model dapat belajar pola false‑positive.
  • Cost control: pilih model gpt-4o-mini atau host LLM open‑source (llama‑3‑8B) di inference server internal bila volume tinggi.
  • Observability: log prompt & response, gunakan alert bila token usage melampaui budget harian.

Penutup & Call to Action

Dengan n8n + LLM, kamu dapat men‑transformasi proses review kode yang biasanya memakan waktu menjadi workflow otomatis yang memberi nilai tambah real‑time. Coba implementasikan dalam 1 hari, lalu iterasi prompt serta threshold berdasarkan feedback tim.

👉 Challenge: Tambahkan fitur auto‑fix menggunakan git apply patch yang di‑generate LLM untuk bug minor. Share hasilnya di Telegram JIPRAKS Classroom!

Artikel terkait