DIPERBARUI: 2026-11-06
[A3-M2]Mahirā± 35 Mnt Baca + 50 Mnt Praktik

Human-in-the-Loop (HITL), Persetujuan Aksi & Guardrails Keamanan

Mencegah Bencana Otomasi dengan Gerbang Konfirmasi Manusia untuk Tindakan Berisiko Tinggi

BAGIKAN MODUL:
[KONTRAK HASIL BELAJAR // A3-M2]Standar Kompetensi Industri
ā± 35 Mnt Bacaā€¢āš” 50 Mnt Praktik•Lulus: ≄ 80/100 Poin

01. Target Pembelajar & Prasyarat

Security engineer dan developer aplikasi produksi.

02. Kompetensi Konseptual (Level 1–2)

  • āœ“Mengenali spektrum risiko aksi agen (Read-Only vs Destructive Mutation).

03. Kompetensi Praktis & Artefak Nyata (Level 3–4)

  • āœ“Mengimplementasikan status 'PENDING_APPROVAL' sebelum eksekusi aksi sensitif.
Artefak yang Dibangun: Modul persetujuan `approval-guardrail.mjs`.

04. Aplikasi Nyata & Verifikasi

Penerapan Industri: Sistem checkout pesanan dan konfirmasi pembayaran di Z-Automation.

Metode Verifikasi: Menguji penolakan aksi kritis tanpa token persetujuan dari operator manusia.

[BAGIAN 01 // MASALAH & URGENSI ARSITEKTURAL]

Mengapa Subjek Ini Krusial dalam Rekayasa Nyata?

Pelajari cara membangun gerbang persetujuan manual untuk aksi destruktif (kirim email massal, transaksi, mutasi database) dan pertahanan prompt injection.

Dalam lingkungan produksi, kegagalan memahami batas-batas arsitektur sistem sering kali menyebabkan bug yang sulit dilacak, pemborosan biaya komputasi, atau antarmuka yang lambat bagi pengguna.

[BAGIAN 02 // MEKANISME DI BALIK LAYAR]

Bagaimana Sistem Sebenarnya Bekerja di Tingkat Protokol

Pemisahan Tingkat Risiko Aksi

Setiap aksi yang dapat dipanggil oleh agen harus diklasifikasikan:

Tingkat 1 (Aman / Read-Only): Membaca katalog, memeriksa status stok, menghitung harga. Boleh dieksekusi otonom 100%.

Tingkat 2 (Kritis / Destructive): Mengirim invoice, mendebit saldo, menghapus data. Wajib memasuki status PENDING_APPROVAL dan mengirim notifikasi ke operator manusia.

[DIAGRAM TEKNIS SVG INTERAKTIF // DIAG-01]

Alur Arsitektur Sistem Otonom & Runtime

LANGKAH 1 DARI 4
ENTITAS AKTIF:User -> Sistem
01
02
03
04

Pesan bahasa alami diterima melalui antarmuka web atau webhook chat.

[LIVE PAYLOAD INSPECTOR]JSON 2026
{
  "input": "Berapa estimasi biaya pembuatan landing page bisnis?"
}
[BAGIAN 03 // MATRIKS KESALAHPAHAMAN]

Koreksi Asumsi Umum vs Realitas Rekayasa

ƗASUMSI KELIRU

ā€œAgen otonom 100% tanpa campur tangan manusia selalu merupakan tujuan terbaik.ā€

āœ“REALITAS SISTEM

Dalam proses bisnis kritis, otonomi penuh tanpa pengawasan manusia justru merupakan malapraktik rekayasa.

[BAGIAN 04 // LABORATORIUM PRAKTIS & KODE]

Implementasi Langkah-demi-Langkah

Hasil akhir yang diharapkan: Sistem yang menahan aksi transfer hingga disetujui manusia.

STRUKTUR PROYEK DIREKOMENDASIKAN:
lab-a3-m2/
└── hitl-guard.mjs

1Implementasi Gerbang Persetujuan

Menahan aksi kritis di antrean approval.

hitl-guard.mjs•javascript
āœ“Tested Successfully
LINGKUNGAN TERUJI: Node.js v20.10.029 BARIS KODE
1// hitl-guard.mjs
2class ActionGuardrail {
3 constructor() {
4 this.pendingQueue = [];
5 }
6
7 requestAction(actionName, payload, riskLevel = 'LOW') {
8 if (riskLevel === 'HIGH') {
9 const ticketId = 'TKT_' + Date.now();
10 this.pendingQueue.push({ ticketId, actionName, payload, status: 'WAITING_FOR_HUMAN' });
11 console.log(`[ALERT HITL] Aksi '${actionName}' ditahan! Butuh persetujuan manusia. Tiket: ${ticketId}`);
12 return { status: 'PENDING', ticketId };
13 }
14 return { status: 'EXECUTED_IMMEDIATELY', result: 'Aksi aman selesai.' };
15 }
16
17 approveTicket(ticketId) {
18 const item = this.pendingQueue.find(q => q.ticketId === ticketId);
19 if (!item) return { sukses: false, error: 'Tiket tidak ditemukan' };
20 item.status = 'APPROVED';
21 console.log(`[HUMAN APPROVED] Tiket ${ticketId} disetujui. Melanjutkan eksekusi...`);
22 return { sukses: true, executed: item.actionName };
23 }
24}
25
26const guard = new ActionGuardrail();
27guard.requestAction('cek_katalog', { id: 'paket_01' }, 'LOW');
28const resKritis = guard.requestAction('debit_rekening', { jumlahRp: 1500000 }, 'HIGH');
29guard.approveTicket(resKritis.ticketId);
KEPUTUSAN ARSITEKTURAL UTAMA:
• Pending queue asinkron: Memungkinkan proses lain tetap berjalan saat menunggu respons manusia.
PERINTAH EKSEKUSI TERMINAL:
$ node hitl-guard.mjs
OUTPUT YANG DIHARAPKAN:
[ALERT HITL] Aksi 'debit_rekening' ditahan!
[HUMAN APPROVED] Tiket disetujui...
[BAGIAN 05 // PANDUAN TROUBLESHOOTING & TANTANGAN]

Mengantisipasi Masalah Umum & Tantangan Ekstensi

Pesan Error: Tiket gantung
Penyebab: Tidak ada timeout expiry
Solusi Eksak: Tambahkan expiredAt pada tiket persetujuan.
⚔ TANTANGAN EKSTENSI MANDIRI:

Tambahkan webhook notifikasi Telegram saat aksi HIGH terpicu.

[RUBRIK EVALUASI KOMPETENSI 100 POIN // A3-M2]

Uji Kompetensi Mandiri & Verifikasi Hasil

Standar kelulusan Z-Automation mewajibkan skor minimum 80 / 100 Poin dengan komponen Implementasi Praktis minimal 21 / 35 Poin (60%). Jawab soal diagnostik dan centang hasil pengujian praktis Anda.

BAGIAN A // PERTANYAAN DIAGNOSTIK KONSEPTUAL & TEKNIS (40 POIN)

01.Mengapa aksi seperti 'Kirim Email Penawaran ke 5.000 Pelanggan' harus menggunakan pola Human-in-the-Loop?

BAGIAN B // DAFTAR PERIKSA HASIL IMPLEMENTASI PRAKTIS (35 POIN — MIN. 21 POIN)

Centang item di bawah ini hanya jika Anda telah menjalankan kode di komputer Anda dan mengamati output yang benar:

Lanjutkan Menggulir
untuk Eksplorasi
Edukasi & Lab
Halaman Selanjutnya