Agent Harness Aman untuk Claude Code dan Codex: Permission, Verifikasi, dan Rollback
Rancang Agent Harness praktis untuk Claude Code dan Codex dengan policy, plan, verification, dan recovery layer.
Agent yang kuat butuh pagar yang kuat
Saat baru memakai Claude Code atau Codex, kita sering merasa kuncinya hanya prompt yang bagus. Itu cukup untuk perubahan kecil. Tetapi ketika agent mulai menyentuh deploy, API SaaS, file lokal, publikasi artikel, atau pengiriman email, masalah utamanya bukan lagi prompt. Masalahnya adalah struktur eksekusi di sekeliling agent.
Di artikel ini, Agent Harness berarti struktur luar yang membuat AI agent bekerja dengan aman: aturan permission, rencana eksekusi, verifikasi, log, dan rollback.
Untuk memahami konsepnya terlebih dahulu, baca panduan harness engineering. Untuk risiko konkret, lihat contoh kegagalan keamanan Claude Code.
User request
|
v
Agent
|
v
[1] Policy layer Apa yang allow, ask, atau deny
[2] Plan layer Urutan langkah kerja
[3] Verification layer Cara membuktikan hasil berhasil
[4] Recovery layer Cara pulih saat gagal
|
v
Files / shell / SaaS APIs / deploy
Dokumentasi Claude Code membahas settings, permissions, hooks, dan MCP. Mulai dari Claude Code settings, Hooks reference, dan MCP.
Contoh: harness untuk publikasi artikel
“Publikasikan satu artikel” sebenarnya terdiri dari banyak langkah.
1. Baca analytics 7 hari terakhir
2. Pilih topik dekat cluster yang sedang naik
3. Cek artikel lama agar tidak duplikat
4. Tulis artikel sumber
5. Buat semua versi bahasa
6. Validasi frontmatter, slug, dan internal link
7. Build website
8. Cek URL publik
9. Commit dan push
Jika plan ini tidak eksplisit, agent bisa menyelesaikan bagian yang terlihat saja dan lupa terjemahan, build, atau cek produksi.
Integrasi SaaS: pisahkan read, generate, dan send
Misalnya agent mencari perusahaan dan membuat draft email outreach.
| Operasi | Otomatis | Alasan |
|---|---|---|
| Membaca halaman publik | Ya | Dampak rendah |
| Menyimpan CSV lokal | Ya | Bisa direview |
| Membuat halaman contoh | Ya | Bisa dicek sebelum publish |
| Membuat draft email | Ya | Belum terkirim |
| Mengirim email | Perlu approval | Berdampak ke orang nyata |
Inti Agent Harness adalah memisahkan batas ini. Membaca dan membuat draft boleh otomatis. Deploy, publish, dan send perlu approval.
Policy layer
Mulai dengan policy sederhana.
{
"allowCommands": [
"npm run build",
"npm run test",
"node scripts/content-trend-report.mjs"
],
"askCommands": [
"git push",
"wrangler pages deploy",
"node scripts/outreach-send-mails.mjs --send"
],
"denyCommands": [
"rm -rf",
"git reset --hard",
"curl * | sh",
"npm publish"
],
"protectedPaths": [
".env",
".env.local",
"claudecode-lab-sheets-f54fc47c68f0.json"
]
}
Di Claude Code, project settings bisa memuat aturan serupa.
{
"$schema": "https://json.schemastore.org/claude-code-settings.json",
"permissions": {
"allow": [
"Bash(npm run build)",
"Bash(npm run test *)",
"Bash(node scripts/content-trend-report.mjs *)"
],
"ask": [
"Bash(git push *)",
"Bash(wrangler pages deploy *)"
],
"deny": [
"Bash(rm -rf *)",
"Bash(git reset --hard *)",
"Read(./.env)",
"Read(./.env.*)",
"Read(./claudecode-lab-sheets-f54fc47c68f0.json)"
]
}
}
Aturan konkret jauh lebih aman daripada hanya menulis “hati-hati dengan secret”.
Verification layer
Sukses harus bisa dibuktikan dengan command.
const url = process.argv[2];
const response = await fetch(url, { redirect: "follow" });
if (!response.ok) {
throw new Error(`Page returned ${response.status}: ${url}`);
}
const html = await response.text();
const checks = [
["title", /<title>.+<\/title>/i],
["description", /<meta name="description"/i],
["adsense", /ca-pub-2125588229998303/i],
["analytics", /G-3YR0LE68MJ/i]
];
for (const [name, pattern] of checks) {
if (!pattern.test(html)) throw new Error(`Missing ${name}`);
}
Untuk artikel berisi kode, gunakan Playwright untuk mengecek apakah pre, code, atau table melebar di tampilan mobile.
Recovery layer
Setiap run perlu log perubahan.
{
"runId": "2026-05-19-article-001",
"topic": "agent harness security",
"changedFiles": [
"site/src/content/blog/claude-code-codex-agent-harness-security.mdx"
],
"commands": [
"node scripts/content-trend-report.mjs --days 7",
"npm run build"
],
"status": "deployed"
}
Untuk Git, gunakan recovery yang spesifik.
git status --short
git diff -- site/src/content/blog/target-article.mdx
git revert <bad-commit>
Ringkasan
Kualitas agent bukan hanya kualitas prompt. Dalam workflow nyata, kualitas datang dari harness.
- Policy: apa yang allow, ask, dan deny
- Plan: langkah yang jelas sebelum eksekusi
- Verification: bukti bahwa hasil berhasil
- Recovery: cara kembali saat gagal
Claude Code dan Codex berbeda, tetapi prinsipnya sama: berikan agent jalur kerja yang aman, bukan kebebasan tanpa batas.
PDF Gratis: Cheatsheet Claude Code dalam 5 Menit
Cukup masukkan emailmu dan kami akan langsung mengirim cheatsheet PDF A4 satu halaman.
Kami menjaga data pribadimu dengan aman dan tidak pernah mengirim spam.
Tentang Penulis
Masa
Engineer yang aktif menggunakan Claude Code. Mengelola claudecode-lab.com, media teknologi 10 bahasa dengan lebih dari 2.000 halaman.
Artikel Terkait
10 Pola Subagent yang Ampuh untuk Claude Code
Kuasai fitur subagent Claude Code dengan 10 pola praktis. Pelajari cara menggunakan pemrosesan paralel, spesialisasi, dan isolasi konteks.
Pengantar Claude Code Agent SDK — Bangun Agen Otonom dengan Cepat
Pelajari cara membangun agen AI otonom dengan Claude Code Agent SDK. Mencakup setup, definisi tool, dan eksekusi multi-langkah dengan contoh kode praktis.
Panduan Lengkap Teknik Manajemen Konteks di Claude Code
Pelajari teknik praktis untuk memaksimalkan context window Claude Code. Mencakup optimasi token, pembagian percakapan, dan penggunaan CLAUDE.md.