Advanced (Diperbarui: 19/5/2026)

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 Harness Aman untuk Claude Code dan Codex: Permission, Verifikasi, dan Rollback

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.

OperasiOtomatisAlasan
Membaca halaman publikYaDampak rendah
Menyimpan CSV lokalYaBisa direview
Membuat halaman contohYaBisa dicek sebelum publish
Membuat draft emailYaBelum terkirim
Mengirim emailPerlu approvalBerdampak 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.

#claude-code #codex #agent-harness #security #permissions #automation
Gratis

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.

Masa

Tentang Penulis

Masa

Engineer yang aktif menggunakan Claude Code. Mengelola claudecode-lab.com, media teknologi 10 bahasa dengan lebih dari 2.000 halaman.