Cara Bangun AI Agent untuk Automated Code Refactoring dengan n8n + GPT (MVP 2 Hari)
· 3 menit baca
Cara Bangun AI Agent untuk Automated Code Refactoring dengan n8n + GPT (MVP 2 Hari)
🚨 Hook: Kode berantakan bikin tim dev tersendat
Anda pernah menatap pull‑request yang penuh duplikat, naming yang tidak konsisten, atau fungsi yang terlalu besar? Dengan tim junior‑intermediate, proses refactor menjadi bottleneck yang menghabiskan waktu & mengurangi kecepatan delivery. Apa jadinya kalau refactoring bisa dijalankan secara otomatis, men‑trigger setiap kali kode di‑push, dan tetap terkontrol via review?
🔧 Konsep: AI Agent + n8n = Refactor Otomatis
Inti ide:
- AI Agent: LLM (GPT‑4o) yang diberi prompt khusus untuk meng‑analyze, suggest, dan men‑generate perubahan kode.
- n8n: Orkestrator workflow yang memicu AI Agent pada event GitHub ‑ push / pull‑request, meng‑handle token, dan meng‑apply perubahan lewat
git commitsecara atomik. - Safety net: Linting, unit‑test, dan code‑review manual sebelum merge.
Pola ini memberi continuous refactoring tanpa mengorbankan kualitas.
⚙️ Breakdown Teknis / Workflow
- Trigger:
Webhook – GitHub – Pull Request / Push.- Filter hanya file dengan ekstensi
.js, .ts, .py, .java.
- Filter hanya file dengan ekstensi
- Extract Diff: Gunakan node
Git(n8n‑node‑git) untuk men‑grabgit diffantara HEAD dan base branch. - Prompt Engineering: Buat prompt dinamis yang meliputi:
- Deskripsi kode (fungsi, variabel).
- Standar style guide (Airbnb, Pylint, Google Java).
- Goal: simplify, rename, extract method, remove dead code.
- AI Call: Node
HTTP Requestke OpenAI/v1/chat/completionsdenganmax_tokens1500, temperature 0.2,systemprompt berisi aturan refactoring. - Parse Response: Response berupa patch
git diff(unified format). Gunakan nodeFunctionuntuk validasi syntax (ESLint, Flake8, etc). - Apply Patch: Node
Execute Commandmenjalankangit applydi environment runner (Docker container). Jika linting gagal, kirim alert ke Slack & beri tombol “Approve Manual”. - Commit & Push: Buat commit dengan message
refactor: auto‑format & simplify XYZdan push ke branch “auto‑refactor/…”. - Pull Request Bot: Otomatis buat PR baru via GitHub API, assign reviewer, tambahkan label “auto‑refactor”.
- Post‑merge Hook: Jalankan CI (unit test) – bila lolos, merge otomatis; bila gagal, tutup PR & beri feedback ke developer.
💡 Contoh Use Case Real: Refactor Legacy Microservice Node.js
Tim Anda memiliki microservice order-service berisi 12 000 baris JavaScript, banyak fungsi terlalu panjang, dan kurang konsisten dengan standar Airbnb.
- Langkah 1: Deploy workflow di server CI (Docker dengan n8n).
- Langkah 2: Set webhook pada repo GitHub.
- Langkah 3: Push satu commit yang men‑trigger workflow.
- Hasil: AI menghasilkan 27 patch yang:
- Meng‑extract helper
calculateTaxke file terpisah. - Mengganti var
letdenganconstbila tidak di‑reassign. - Men‑rename variabel
tmpmenjadiorderPayload.
- Meng‑extract helper
- Keuntungan: Reduksi ukuran file 18 %, lint error 0, dan CI test tetap hijau – semua dalam kurang dari 2 hari kerja.
🧠 Insight / Strategi Eksklusif
- Prompt Versioning: Simpan setiap prompt di repo
prompts/refactor.yml. Ketika tim mengubah standar code‑style, cukup update prompt & bump versi – workflow otomatis pakai versi terbaru. - Cost‑Aware LLM Calls: Gunakan
model=gpt‑4o-miniuntuk bulk diffs, fallback kegpt‑4ohanya bila patch > 500 lines. - Human‑in‑the‑Loop (HITL): Tambahkan tombol Slack “Approve” yang men‑trigger
Execute Command – git applyhanya bila reviewer memberi green signal. Ini menurunkan false‑positive 70 % dibandingkan auto‑apply penuh. - Cache Diff: Simpan
hash(diff)di Redis; jika diff belum berubah, skip AI call – menghemat token & latency. - Metric Dashboard: Buat panel Grafana (via n8n → InfluxDB) yang melaporkan
patches per day, LOC reduced, lint violations fixed. Data ini jadi KPI refactoring otomatis.
📌 Penutup & Call to Action
Automated code refactoring bukan sekadar gimmick; ia mengurangi tech debt, meningkatkan kecepatan delivery, dan memberi tim space untuk inovasi. Mulailah dengan satu repo kecil, iterasikan prompt, dan scale ke seluruh monorepo Anda.
👉 Challenge: Implementasikan workflow ini dalam 48 jam, lalu bagikan hasilnya di komunitas JIPRAKS Classroom. Kami akan menampilkan contoh terbaik di newsletter bulan depan!