DJEONAILWork with me
← Semua tulisan
·9 menit baca·Jeon Nathaniel

Loop Engineering: Berhenti Nge-prompt

Cara sungguhan membuat AI agent yang jalan 24 jam, bukan teori. Hermes Agent, Skills, Cron, dan checker di server sendiri: konsep, peta alat, persiapan, empat langkah, rem anti-loopmaxxing, template lengkap, dan rencana tujuh hari.

ai agentotomasiloop
Sampul: Loop Engineering: Berhenti Nge-prompt

Ada pergeseran yang sudah terjadi tapi belum banyak disebut namanya. Orang masih sibuk menyempurnakan kalimat prompt, padahal yang menentukan hasil sekarang adalah siapa yang menjalankan siklusnya.

Peter Steinberger, pembuat OpenClaw, merangkumnya dengan enak: berhenti nge-prompt agent, desain loop yang nge-prompt agent. Tulisan ini pedoman teknisnya: set sekali, jalan 24 jam, pakai alat nyata di server sendiri.

Konsep: apa itu loop sebenarnya

Loop adalah program yang memanggil AI berulang-ulang, hasil tiap putaran dikembalikan menjadi konteks putaran berikutnya, sampai tujuannya tercapai. Ini menggeser cara kerja: dari kamu yang nge-prompt manual menjadi sistem yang berputar sendiri.

Prompt engineering: kamu yang bekerja. Ketik, tunggu, ketik lagi. Manual, harus siaga, tidak bisa membesar.

Loop engineering: sistemnya yang bekerja. Pemicu berjalan, agent mengerjakan, hasilnya dicek, lalu dilaporkan. Otomatis dan berulang.

Boris Cherny, yang memimpin tim Claude Code di Anthropic, menceritakan pergeseran peran yang sama: dari menyusun prompt untuk model, menjadi menulis execution loop yang mengatur aksi model.

Tiga syarat wajib sebuah loop, dari Addy Osmani di Google Cloud:

  • Trigger, pemicu yang jelas, biasanya cron atau jadwal.
  • State, konteks yang terbawa antar putaran, berupa memori atau berkas.
  • Exit, kondisi berhenti yang bisa diverifikasi. Wajib.

Yang paling sering dilewat: loop yang sehat butuh exit condition yang bisa dicek mesin. Tanpa itu, kamu cuma membuat loopmaxxing.

Stack riil: istilah di slide menunjuk alat nyata

  • Hermes Agent dari Nous Research: agent otonom sumber terbuka berlisensi MIT, jalan di server sendiri, agnostik terhadap model, cron bawaan, melapor ke Slack atau Telegram.
  • Agent Skills: standar terbuka agentskills.io. Satu skill sama dengan satu folder berisi SKILL.md, instruksi plus metadata. Portabel antar alat.
  • Cron: penjadwal. Hermes punya cron bawaan yang memperlakukan tiap job sebagai sesi agent baru, dan bisa juga memakai cron OS biasa.
  • VPS dan backend SSH: Hermes punya enam backend (local, Docker, SSH, Modal, Daytona, Singularity). VPS sekitar lima dolar sebulan cukup.
  • Langkah verifikasi dan batas keras: skill menyimpan langkah verifikasi; Hermes punya batas giliran dan timeout supaya loop yang rusak tidak jalan selamanya.
  • Model apa pun: Anthropic, OpenAI, Google, DeepSeek, OpenRouter, atau lokal lewat Ollama atau vLLM.

Kenapa ini penting: karena alatnya sumber terbuka dan standarnya terbuka, kamu tidak mengunci diri ke satu vendor. Skill yang sama bisa dipakai di Hermes, Claude Code, atau agent lain yang mendukung agentskills.io.

Persiapan: server dan Hermes

Loop harus lepas dari laptopmu. Di laptop, dia mati tiap kamu menutup layar. Taruh di VPS yang menyala terus.

  1. Sewa VPS murah, sekitar lima dolar sebulan, Ubuntu. Masuk lewat SSH: ssh user@ip-server.
  2. Pasang Hermes, sekali jalan, semua dependensi otomatis:
# di server, lewat SSH
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
source ~/.bashrc
  1. Jalankan wizard setup dan pilih penyedia model (API key sendiri, Nous Portal, atau Ollama lokal):
hermes setup   # konfigurasi model, tools, gateway sekaligus
hermes model   # pilih atau ganti LLM kapan saja
hermes         # mulai sesi; tes manual dulu sebelum dijadikan loop

Backend SSH atau Docker: untuk agent yang nanti terbuka ke aplikasi pesan, banyak praktisi memakai backend Docker (drop privilege) demi keamanan. Atur di ~/.hermes/config.yaml pada terminal.backend.

Langkah 1: kunci goal dan exit

Ini langkah paling menentukan. Goal harus sempit, dan exit-nya harus bisa diverifikasi mesin, bukan "AI merasa sudah benar".

# spec loop pertama, tulis sebelum ngoding apa pun
GOAL  baca max 5 lead baru, bikin 1 draft balasan/orang
EXIT  5 draft jadi / inbox kosong (kondisi yang bisa dicek angka)
LIMIT max 5 lead/run, draft only (jangan auto-send)

Exit yang benar: "jumlah draft sama dengan jumlah lead", "berkas output ada", "tes lulus". Bisa dijawab ya atau tidak.

Exit yang salah: "sampai bagus", "sampai engagement naik". Subjektif, loop tidak akan pernah berhenti.

Prinsipnya: sebisa mungkin exit memakai pemeriksaan deterministik, yaitu hitungan, format, atau unit test, bukan meminta AI menilai hasil kerjanya sendiri. Mesin yang memutuskan selesai, bukan perasaan model.

Langkah 2: bikin skill-nya

Skill sama dengan satu folder berisi SKILL.md: metadata YAML plus instruksi Markdown. Hermes membaca metadatanya dulu, sekitar 100 token, dan memuat instruksi penuh hanya saat dibutuhkan.

# ~/.hermes/skills/balas-lead/SKILL.md
---
name: balas-lead
description: Baca lead baru yang belum dibalas, bikin 1 draft
   balasan per orang. Dipakai untuk loop harian balas-lead.
---
# Balas Lead

## Goal
Baca maks 5 lead baru di [SUMBER], bikin 1 draft balasan/orang.
Simpan sebagai draft, jangan auto-send.

## Steps
1. Ambil lead belum dibalas (maks 5).
2. Baca konteks tiap lead.
3. Tulis draft pakai TONE [ramah/santai/formal].
4. Simpan ke [DRAFTS].

## Verification (checker)
PASS jika: jumlah draft == lead diproses dan tidak ada draft kosong.
FAIL jika: ada draft kosong/format salah, STOP, lapor "cek manual".

## Exit
Selesai saat semua lead terproses atau tidak ada lead baru.

Pasang skill: taruh foldernya di ~/.hermes/skills/ lalu jalankan /reload-skills. Cek dengan hermes skills list.

Bagian Verification itulah checker-mu. Di situ exit condition menjadi instruksi konkret yang dijalankan tiap putaran.

Bonus: Hermes bisa menulis skill sendiri dari pengalaman, menyimpan prosedur, jebakan, dan langkah verifikasi. Aktifkan gerbang tinjauannya dengan /skills approval on supaya tiap skill baru kamu periksa dulu.

Langkah 3: jadwalkan dengan cron

Cron adalah alarm yang membangunkan loop. Di Hermes, tiap job jalan sebagai sesi agent baru, jadi prompt dan skill-nya harus lengkap sendiri.

# buat loop terjadwal, tempelkan skill, kirim ke Slack
hermes cron create \
   --prompt "Jalankan balas-lead untuk lead baru hari ini." \
   --schedule "*/15 * * * *" --skill balas-lead --deliver slack

# kelola
hermes cron list | pause | resume | run <id> | remove
# bisa juga bahasa alami: --schedule "every 15m"

Contekan cron, urutannya menit, jam, tanggal, bulan, hari:

  • */15 * * * * tiap 15 menit
  • 0 8 * * * tiap pukul 08.00
  • 0 */4 * * * tiap 4 jam
  • 0 7 * * * tiap pukul 07.00
  • 0 9 * * 1 tiap Senin 09.00
  • 0 9 * * 1-5 hari kerja 09.00

Supaya jalan 24 jam, pasang gateway sebagai layanan yang menyala otomatis saat server boot:

sudo hermes gateway install --system
sudo hermes gateway start --system
# penjadwal dicek tiap sekitar 60 detik
hermes cron status

Langkah 4: lapor ke Slack

Hermes tersambung ke Slack lewat Socket Mode, tidak perlu membuka port publik. Hasil cron otomatis dikirim ke channel yang kamu tentukan.

  1. Di api.slack.com/apps, Create New App, From manifest. Hermes bisa membuat manifestnya.
  2. Aktifkan Socket Mode. Ambil dua token: bot token xoxb-... dan app token xapp-... dengan scope connections:write.
  3. Pasang app ke workspace, lalu undang botnya ke channel tujuan dengan /invite @bot. Bot hanya melihat channel yang diundang.
# ~/.hermes/.env (chmod 600, perlakukan seperti sandi)
SLACK_BOT_TOKEN=xoxb-...
SLACK_APP_TOKEN=xapp-...
SLACK_HOME_CHANNEL=C0XXXXXX     # tujuan kiriman cron
SLACK_ALLOWED_USERS=U0XXXXXX     # WAJIB; kalau kosong semua ditolak

Verifikasi tiga langkah: DM bot, harus membalas. Minta tugas beberapa langkah, muncul indikator sedang mengetik. Picu cron, laporan masuk ke home channel. Lolos tiga-tiganya berarti benar-benar siap.

Slack menuntut balasan di bawah tiga detik saat di-mention dan rate limit-nya ketat; untuk laporan beruntun, atur batching. Satu gateway bisa banyak channel: Slack dan Telegram dari agent yang sama, memori dan skill terbagi.

Inti: jangan bakar duit API

Loopmaxxing adalah asumsi salah bahwa loop yang jalan tanpa henti "akhirnya benar". Gagal total untuk goal subjektif, karena tidak ada exit yang bisa dicek. Ini cara mengeremnya.

Tiga lapis rem dari loop engineering:

  1. Verifikasi deterministik. Cek dengan hitungan, format, atau tes, bukan meminta AI menilai sendiri.
  2. Stagnation breaker. Berhenti kalau tiga putaran beruntun tidak ada kemajuan, state atau galatnya sama.
  3. Kendali biaya. Batasi run dan pantau; di fase awal pakai persetujuan manual.

Rem bawaan Hermes: batas giliran supaya loop rusak tidak jalan selamanya, timeout cron bawaan 600 detik yang bisa diatur lewat HERMES_CRON_TIMEOUT, dan lock anti-dobel berupa file lock yang mencegah job kembar jalan bersamaan.

# pola checker yang menempel di tiap loop (bagian Verification di skill)
PASS = cek deterministik lulus, lapor "done" dan EXIT
FAIL = cek gagal / tidak ada kemajuan 3x, lapor "stop" dan EXIT

Template lengkap balas-lead

Semua bagian dalam satu tempat. Ganti bagian dalam kurung siku sesuai bisnismu, lalu jalankan.

# 1) Skill: ~/.hermes/skills/balas-lead/SKILL.md
--- name: balas-lead / description: baca lead baru, bikin draft balasan ---
Goal: max 5 lead, 1 draft/orang, simpan draft (no auto-send)
Steps: ambil lead, baca konteks, tulis (TONE [..]), simpan [DRAFTS]
Verification: PASS jika tiap lead ada draft dan tidak kosong; else STOP + lapor
Exit: semua lead terproses / inbox kosong

# 2) Pasang skill
mkdir -p ~/.hermes/skills/balas-lead && nano SKILL.md   lalu /reload-skills

# 3) Slack (.env, chmod 600)
SLACK_BOT_TOKEN=xoxb-... SLACK_APP_TOKEN=xapp-... SLACK_HOME_CHANNEL=... SLACK_ALLOWED_USERS=...

# 4) Jadwalkan + gateway 24/7
hermes cron create --prompt "Jalankan balas-lead." --schedule "*/15 * * * *" \
  --skill balas-lead --deliver slack
sudo hermes gateway install --system && sudo hermes gateway start --system

# 5) Tes sebelum dilepas
hermes cron run <job_id>   # picu sekali, lihat hasilnya di Slack

Produksi: aman dan tahan lama

Keamanan:

  • Token di ~/.hermes/.env dengan mode 600, jangan di prompt atau repo.
  • Agent yang terbuka ke publik memakai backend Docker (drop privilege).
  • Pertahankan persetujuan untuk aksi destruktif, jangan dimatikan.
  • Pakai allowlist pengguna; Slack menolak semua kalau kosong.

Tahan lama:

  • Mulai dengan satu loop, bukan lima sekaligus.
  • Pantau log di ~/.hermes/logs/.
  • Loop pertama berupa draft, naikkan bertahap.
  • Perbarui rutin dengan hermes update, diagnosis dengan hermes doctor.

Rencana tujuh hari

  • Hari 1. Tulis spec: goal, exit, checker. Belum ngoding.
  • Hari 2. Siapkan VPS, SSH, pasang Hermes, pilih model.
  • Hari 3. Buat skill balas-lead, jalankan manual sekali.
  • Hari 4. Pasang cron dan Slack, gateway jadi layanan sistem.
  • Hari 5 sampai 7. Biarkan jalan, pantau log tiap pagi. Stabil tiga hari, tambah loop kedua.

Sumber

  • Hermes Agent: github.com/NousResearch/hermes-agent dan hermes-agent.nousresearch.com/docs
  • Agent Skills: agentskills.io dan github.com/anthropics/skills
  • Dokumentasi skills: anthropic.com/engineering, equipping agents with Agent Skills
  • Loop engineering dan loopmaxxing: bdtechtalks.com, soal definisi, exit, dan circuit breaker
  • Validasi: P. Steinberger (OpenClaw), B. Cherny (Claude Code), A. Osmani (Google Cloud)

Pasang satu loop minggu ini. Balas-lead saja sudah cukup untuk merasakan bedanya: dari kamu yang bekerja, menjadi sistem yang bekerja.


Ada yang mau ditanyakan soal tulisan ini? Kirim email.