Episode ini membahas pipeline rilis khusus untuk agent: menguji perilaku agent di dalam CI, men-deploy kode dan konfigurasi model secara aman dengan pola blue-green, serta versioning profile agent dan tools agar setiap rilis dapat di-trace dan di-rollback.

Di episode 18 kalian membuat agen yang adaptif dan reflektif — ia bisa mengubah strategi sendiri berdasarkan feedback. Tapi ingat pesan terakhir kita: perubahan apa pun harus diuji di kelompok kecil dan bisa di-rollback. Pertanyaannya sekarang, bagaimana cara menguji perubahan itu secara otomatis, berulang, dan aman sebelum sampai ke pengguna nyata?
Jawabannya adalah CI/CD dan release pipeline yang dirancang khusus untuk agent. Agent itu unik dibanding aplikasi biasa: output-nya tidak deterministik, dependensinya mencakup konfigurasi model dan prompt, dan "deploy" sering berarti mengubah perilaku, bukan hanya mengganti kode. Episode 19 membahas tiga fondasi pipeline tersebut: testing behavior di CI, deployment yang aman, dan versioning yang telusur. Peta jalan episode ini:
Pipeline konvensional menguji dengan ekspektasi deterministik: input yang sama harus menghasilkan output yang sama. Agent tidak seperti itu — model yang sama bisa menjawab berbeda untuk pertanyaan yang sama, dan tool output berubah setiap saat. Ini bukan bug, ini sifat dasarnya. Maka strategi pengujian pun harus bergeser:
bun install --frozen-lockfile
bun run lint
bun run eval --suite regressions
bun run eval --suite safety --model gpt-4o-miniUji safety di sini bukan memilih model karena murah, tapi karena model yang lebih kecil lebih sering gagal pada kasus tepi — jadi ia adalah detektor masalah yang lebih sensitif. Jika suite safety lolos di model kecil, kemungkinan besar lolos juga di model besar.
Eval harness adalah kode yang menjalankan agent terhadap skenario uji dan menghasilkan skor. Ia harus bisa dijalankan di lokal maupun di CI agar hasilnya konsisten. Berikut bentuk harness sederhana memakai suite yang sudah kalian lihat di episode 18:
import { HermesAgent, evaluateSuite } from "@hermes/sdk";
const agent = new HermesAgent({ profile: process.env.AGENT_PROFILE });
const result = await evaluateSuite(agent, {
cases: loadCases("./eval/cases/"),
scoring: {
taskCompletion: 0.5,
toolDiscipline: 0.3,
latency: 0.2,
},
});
if (result.totalScore < 0.85) {
process.exit(1);
}Jalankan harness ini di CI sebagai gate: jika skor di bawah ambang, pipeline berhenti dan tidak ada deploy. Ambang minimal harus dinaikkan secara bertahap seiring dataset uji bertambah — supaya "lolos CI" tidak jadi semak-belukar yang terus turun kualitasnya.
Setelah CI lolos, tiba saatnya deploy. Kekhasan agent: yang berubah bukan hanya kode, tapi juga konfigurasi model — model apa yang dipakai, suhu, top-p, prompt system, daftar tool. Konfigurasi ini harus di-deploy sebagai artefak yang ter-version, bukan diubah manual di server.
version: 1.4.0
model:
id: gpt-4o
temperature: 0.3
max_tokens: 2048
profile: ./profiles/support.ts
tools:
- web-search
- db-readonly
- escalate-human
memory:
ttl_days: 30Deploy konfigurasi model membawa risiko yang sama seperti deploy kode: versi baru bisa menurunkan kualitas. Karena itu gunakan pola blue-green atau canary, bukan mematikan versi lama sekaligus. Deployment orchestration Hermes sudah mendukung dua jalur sekaligus:
hermes deploy --env production --version 1.4.0 --canary 10%
hermes promote --env production --version 1.4.0Perintah pertama mengirim versi baru ke 10 persen traffic; perintah kedua baru mengangkatnya penuh setelah dipastikan sehat. Jika di tengah jalan muncul masalah, hermes rollback --env production mengembalikan traffic ke versi 1.3.9 dalam hitungan detik.
Warning
Jangan pernah mengubah prompt atau daftar tool secara langsung di server produksi. Perubahan yang tidak tercatat di version control tidak bisa di-rollback, tidak bisa diaudit, dan hampir selalu menjadi sumber misteri di kemudian hari.
Untuk bisa di-rollback, setiap bagian yang memengaruhi perilaku harus punya versi. Di Hermes, ada tiga artefak yang wajib di-version: profile (persona dan system prompt), tool set (daftar dan izin tool), dan model config. Ketiganya diikat menjadi satu release tag, supaya mengembalikan versi berarti mengembalikan perilaku secara utuh.
hermes tag --profile support@1.4.0 --tools @hermes/tools@2.1.3 --config 1.4.0Untuk menelusuri riwayat, gunakan semver biasa — rilis agen mengikuti pola feat:, fix:, dan breaking:. Karena agent tidak deterministik, tambahkan satu konvensi khusus: setiap rilis menyimpan rekam evaluasi (dataset, skor, model) sebagai lampiran. Dengan begitu, saat terjadi regresi, kalian bisa menjawab dua pertanyaan kunci: apa yang berubah, dan seberapa jelek perubahannya.
Episode 19 mengubah proses rilis agent dari "deploy kode lalu berdoa" menjadi pipeline yang bisa dibuktikan: perilaku diuji di CI dengan eval harness yang menghasilkan skor, deploy memakai pola canary yang melindungi traffic, dan setiap bagian — profile, tool, model config — di-version serta diikat ke dalam release yang bisa di-rollback.
Inti yang harus dibawa pulang:
Di episode 20 berikutnya kita akan mengangkat observability ke skala production: metrics keberhasilan, dashboard untuk aktivitas agent dan penggunaan tool, serta alert yang membangunkan kalian saat tindakan gagal atau perilaku berubah mencurigakan. Sampai jumpa!