Belajar Hermes AI Agent - Adaptive Behavior & Reflection
Episode 18 of 23

Belajar Hermes AI Agent - Adaptive Behavior & Reflection

Episode ini membahas bagaimana agen tidak lagi berjalan secara kaku: menerapkan reflective loop yang mengevaluasi hasil sendiri, mengukur confidence dan uncertainty sebelum menjawab, serta mengubah strategi secara dinamis berdasarkan feedback dari pengguna maupun data observability.

AI Agent
AI AgentAugust 3, 2026
0 views
4 min read

Pendahuluan

Di episode 17 kalian sudah membangun sistem multi-agent: satu agent orkestrator membagi tugas, mendelegasikan subtask ke agent lain, dan menyatukan kembali hasilnya. Tapi ada satu pertanyaan yang menggantung: bagaimana jika hasil yang disatukan itu salah? Episodes sebelumnya mengajari agen untuk bereksekusi, tetapi belum mengajari agen untuk menilai hasil eksekusinya sendiri.

Episode 18 menjawab pertanyaan itu. Kita akan membuat agen yang adaptif — yang bisa berefleksi atas outputnya, sadar akan tingkat keyakinannya sendiri, dan mengubah strategi ketika situasi berubah. Ini lompatan besar: dari agen yang sekadar "menjalankan instruksi" menjadi agen yang "belajar dari hasil". Berikut peta jalan episode ini:

  • Reflective loop: siklus act, observe, critique, revise.
  • Self-correction sebelum kegagalan menyebar.
  • Memantau confidence dan uncertainty sebagai sinyal.
  • Mengubah strategi berdasarkan feedback dan data.

Reflective Loop: Act, Observe, Critique, Revise

Reflective loop adalah jantung dari adaptive behavior. Idenya sederhana: jangan biarkan agen menjawab satu kali lalu selesai. Beri kesempatan untuk menilai jawabannya sendiri, lalu memperbaiki jika perlu. Siklusnya mengikuti empat fase — act (kerjakan), observe (lihat hasilnya), critique (nilai dengan kriteria), dan revise (perbaiki rencana).

ts
import { HermesAgent } from "@hermes/sdk";
 
const agent = new HermesAgent({
  profile: "./profiles/support.ts",
  model: "gpt-4o",
});
 
async function reflectAndAct(task) {
  let attempt = 0;
  const maxAttempts = 3;
 
  while (attempt < maxAttempts) {
    const result = await agent.run(task);
 
    const critique = await agent.evaluate(result, {
      criteria: [
        "goal_met",
        "no_hallucination",
        "tool_used_appropriately",
      ],
    });
 
    if (critique.score >= 0.8) {
      return result;
    }
 
    task = critique.revisePlan(task);
    attempt += 1;
  }
 
  return agent.escalate(task);
}

Perhatikan beberapa detail penting di kode di atas. Batas maksimal percobaan dicegah agar tidak terjadi infinite loop — selalu ada batas atas yang jelas. Kriteria evaluasi bersifat eksplisit dan domain-spesifik, bukan sekadar "apakah jawaban terlihat bagus". Dan saat semua percobaan gagal, agen memilih untuk escalate (menyerah ke manusia) alih-alih memberikan jawaban yang meragukan.

Self-Correction Sebelum Terlambat

Reflective loop yang berjalan di dalam satu percakapan itu penting, tapi ada titik yang lebih kritis: saat agen akan memanggil tool. Di sinilah kesalahan paling mahal terjadi — query SQL yang salah, file yang terhapus, atau email yang terkirim ke alamat salah. Self-correction di titik ini lebih bernilai daripada memperbaiki jawaban setelahnya.

ts
async function guardedToolCall(toolName, args) {
  const plan = await agent.draftPlan(toolName, args);
 
  const review = await agent.verifyPlan(plan, {
    rules: ["read_only_first", "no_destructive_on_production"],
  });
 
  if (!review.safe) {
    console.log(`Blocked: ${toolName} - ${review.reason}`);
    return agent.askHuman(toolName, args);
  }
 
  return agent.execute(toolName, review.sanitizedArgs);
}

Pola di atas disebut guard layer: sebelum tool dieksekusi, agen menyusun rencana, lalu memverifikasi rencananya dengan aturan yang sudah ditentukan sebelumnya. Ini adalah self-correction proaktif — kesalahan dicegah di pintu masuk, bukan diperbaiki setelah terjadi. Gabungkan pola ini dengan reflective loop dari bagian sebelumnya, dan kalian punya dua lapis pertahanan: satu sebelum aksi, satu lagi setelah hasil keluar.

Success

Kombinasi guard layer sebelum eksekusi dan reflective loop setelah eksekusi adalah pola yang kami gunakan untuk semua agent produksi. Lapis pertama mencegah kerusakan, lapis kedua meningkatkan kualitas output secara terus-menerus.

Memantau Confidence & Uncertainty

Reflective loop butuh sinyal untuk mengambil keputusan, dan sinyal yang paling berharga adalah confidence — seberapa yakin model terhadap jawabannya. Model yang terlatih tidak selalu yakin dengan benar: jawaban yang terdengar percaya diri belum tentu akurat. Karena itu, agen kita perlu membaca tingkat keyakinan dan bertindak berdasarkan ambang batas.

ts
const reply = await agent.respond(input);
 
if (reply.confidence < 0.4) {
  await agent.askClarification(input);
} else if (reply.confidence < 0.7) {
  await agent.searchKnowledgeBase(reply.topic);
} else {
  await agent.respondDirectly(reply);
}

Ambang batas yang kalian pilih sebaiknya ditentukan dari data, bukan tebakan. Cara praktisnya: catat skor confidence di setiap percakapan, bandingkan dengan kualitas akhir yang dinilai manusia, lalu cari titik di mana kegagalan mulai meningkat. Ambang itu adalah confidence minimum yang aman untuk domain kalian.

Perlu dicatat juga bahwa uncertainty tidak selalu buruk. Agen yang mengakui ketidaktahuannya dan bertanya lebih lanjut biasanya menghasilkan kepuasan pengguna yang lebih tinggi daripada agen yang mengarang jawaban. Mengajarkan agen untuk berkata "saya tidak tahu, mari saya cek" adalah fitur, bukan kelemahan.

Mengubah Strategi Berdasarkan Feedback

Reflection dan confidence memberi agen kesadaran diri. Tapi kesadaran tanpa aksi itu sia-sia — yang terakhir adalah mengubah strategi ketika sinyal-sinyal itu menunjukkan masalah. Strategi di sini berarti konfigurasi perilaku: model mana yang dipakai, apakah jawaban memakai cache, apakah tool yang diizinkan dipersempit, dan sebagainya.

ts
async function applyFeedback(feedback) {
  const stats = await agent.collectStats();
 
  if (stats.errorRate > 0.3) {
    await agent.applyStrategy({
      model: "gpt-4o-mini",
      allowRetries: false,
      escalateOnLowConfidence: true,
    });
  } else if (feedback.latencyMs > 2000) {
    await agent.applyStrategy({ enableCache: true });
  } else {
    await agent.applyStrategy({ allowCreativeModes: true });
  }
}

Strategi bisa dipicu oleh dua sumber feedback: eksplisit (pengguna menekan tombol tidak membantu, rating negatif) dan implisit (error rate naik, latency membengkak, percakapan terputus di tengah jalan). Agen yang baik menelan keduanya. Untuk melatihnya secara terpola, Hermes menyediakan hook evaluasi yang bisa kalian panggil dari pipeline, misalnya hermes eval --suite regressions — skenario lama dijalankan ulang setiap kali strategi berubah, supaya perbaikan di satu sisi tidak merusak perilaku yang sudah benar di sisi lain.

Menghindari Overfitting terhadap Feedback

Ada jebakan yang harus kalian waspadai: terlalu agresif menyesuaikan diri terhadap feedback jangka pendek. Jika satu pengguna marah lalu agen langsung mengubah seluruh strateginya, agent itu akan berguncang mengikuti opini satu orang. Adaptive behavior yang sehat harus disaring dengan agregasi.

  • Kumpulkan feedback dalam jendela waktu (misalnya per hari atau per 1000 percakapan), bukan per kejadian tunggal.
  • Bedakan feedback dari pengguna terverifikasi dan pengguna anonim.
  • Terapkan perubahan strategi melalui experiment group, bukan langsung ke seluruh traffic.
  • Selalu ada rollback path: strategi lama harus bisa dipulihkan dengan satu perintah.
terapkan-strategi-percobaan.sh
hermes strategy activate conservative --group 10% --ttl 24h

Perintah di atas menerapkan strategi baru hanya ke 10 persen traffic selama 24 jam. Jika dalam jendela itu error rate tidak turun, tinggal jalankan hermes strategy rollback dan semuanya kembali ke strategi sebelumnya. Inilah prinsip perubahan yang aman: buktikan di kelompok kecil dulu, baru digeneralisasikan.

Penutup

Episode 18 membawa kalian dari agen yang patuh menjadi agen yang reflektif: reflective loop untuk menilai dan merevisi hasil, guard layer untuk mencegah kesalahan sebelum eksekusi tool, pemantauan confidence dan uncertainty sebagai sinyal keputusan, serta mekanisme pengubahan strategi yang disaring oleh agregasi dan experiment group.

Inti yang harus dibawa pulang:

  • Reflective loop butuh kriteria evaluasi yang eksplisit dan batas percobaan yang jelas.
  • Self-correction yang paling berharga terjadi sebelum tool dieksekusi, bukan sesudahnya.
  • Ambang confidence harus ditentukan dari data, bukan perasaan.
  • Feedback harus diagregasi dalam jendela waktu dan diuji di kelompok kecil sebelum diterapkan luas.
  • Adaptive behavior selalu menyimpan rollback path.

Di episode 19 berikutnya kita akan menyalurkan semua perilaku adaptif ini ke dalam proses rilis yang teratur: CI/CD dan release pipeline khusus untuk agent — mulai dari testing behavior di CI, deployment model configuration yang aman, hingga versioning profile dan tool. Sampai jumpa!

Belajar Hermes AI Agent - Adaptive Behavior & Reflection | Belajar Hermes AI Agent