Advanced (Diperbarui: 3/6/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>

Checklist implementasi: mulai dari titik keluar

Mistake pertama biasanya bukan prompt yang buruk. Masalah muncul ketika agent awalnya hanya membaca informasi, lalu tanpa batas yang jelas ikut melakukan aksi eksternal. Karena itu, tetapkan titik keluar setiap workflow sebelum menambah otomatisasi.

Untuk konten, titik keluar bukan “artikel sudah ditulis”. Titik keluar yang benar adalah: URL publik mengembalikan 200, tag Analytics dan AdSense masih ada, dan code block tidak melebar di mobile. Untuk outreach, titik keluar bukan “email sudah dikirim”. Titik keluar yang aman adalah: daftar perusahaan, halaman sampel, dan draft email siap ditinjau. Untuk security fix, titik keluar bukan “kode berubah”. Titik keluar yang baik adalah: diff, test, dan rollback plan terlihat jelas.

use caseOtomatiskan duluTetap minta approval
Content opstopik, draft, terjemahan, internal link, builddeploy, git push, perubahan tag iklan
Integrasi SaaSread-only lookup, CSV, ringkasan, draftkirim, hapus, ubah billing
Security fixpatch proposal, test, catatan dampaksecrets, production, permission lebih luas

Pitfall paling berbahaya adalah mencampur membaca dan mengeksekusi. Agent yang membaca issue, log, dan halaman web sangat membantu. Tetapi jika agent yang sama juga bisa mengirim email, menghapus data, atau deploy production, instruksi jahat dalam dokumen eksternal dapat berubah menjadi aksi nyata. OWASP membahas Prompt Injection dan Excessive Agency dalam Top 10 for LLM Applications, dan risk ini sangat relevan untuk coding agent.

Untuk Claude Code, mulai dari panduan resmi security dan permissions. Untuk Codex, panduan OpenAI tentang code generation membantu memahami posisi produknya. Di ClaudeCodeLab, lanjutkan dengan security failure cases dan dangerous prompts.

Template siap pakai ada di /products/. Jika perlu mendesain permission, CI, review, dan deployment flow untuk tim, /training/ adalah jalur konsultasi yang lebih tepat.

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

Masukkan email dan unduh satu halaman berisi command, kebiasaan review, dan workflow aman.

Kami menjaga datamu dan tidak mengirim spam.

Masa

Tentang penulis

Masa

Engineer yang berfokus pada workflow Claude Code praktis dan adopsi tim.