Model yang lebih pintar tidak boleh otomatis mendapat privilege lebih besar.
- Authority datang dari user/workspace/project/provider/policy intersection, bukan dari model confidence.
- Read, propose, write, publish, delete, dan budget mutation perlu risk tier berbeda.
- Approval harus melekat ke payload yang spesifik dan tetap di-recheck saat execution.
- Tool success belum sama dengan provider success; provider success juga belum sama dengan business outcome.
Prototype agent terlihat impresif ketika bisa “langsung melakukan sesuatu”. Di production, itu justru titik di mana sistem mulai perlu disiplin. Growth stack menyentuh campaign budget, public content, comments, customer communication, product catalog, analytics, dan credential. Satu hallucinated action dapat punya consequence nyata.
Intelligence dan authority adalah dua sistem berbeda
Model boleh menyimpulkan bahwa campaign perlu dinaikkan budget-nya. Itu intelligence. Apakah budget boleh diubah, pada account mana, sampai batas berapa, dan siapa yang boleh menyetujui—itu authority.
Authority sehat biasanya merupakan intersection dari beberapa boundary: caller identity, workspace role, Project scope, provider connection, exact asset, provider capability, environment, dan policy. Jika satu boundary deny, execution berhenti.
AI boleh memperluas kapasitas analisis. AI tidak boleh memperluas authority secara otomatis.
Jangan samakan semua tool call
“Tool access” terlalu kasar. Membaca aggregate Search Console jelas berbeda dengan menghapus product, membalas komentar publik, mengubah bid, atau mempublikasikan halaman. Capability perlu diklasifikasikan berdasarkan consequence dan reversibility.
| Tier | Contoh | Default policy |
|---|---|---|
| Read | Query analytics, list assets, inspect status | Allowed jika scope valid |
| Draft | Generate brief, proposed reply, campaign plan | Allowed, no external mutation |
| Low-risk write | Update internal label, save draft | Policy controlled |
| Public mutation | Publish post, reply comment, change profile | Confirm/approve |
| High consequence | Budget, delete, permission, mass mutation | Strong approval + limits |
Risk tier tidak harus menghasilkan confirmation dialog untuk semuanya. Governance yang buruk bisa terlalu permisif atau terlalu mengganggu. Goal-nya adalah friction proporsional terhadap consequence.
Pisahkan proposal dari execution
Pattern yang sehat: Evidence → Decision → Action Proposal → Approval/Policy → Execution → Receipt → Outcome.
Proposal mengubah intent model menjadi payload yang bisa diperiksa. Ia harus menyebut target asset, current state, requested change, parameters, reason, expected outcome, risk, dan expiry. Untuk action sensitif, approval idealnya terikat pada hash atau immutable payload sehingga approval tidak bisa dipakai untuk perubahan berbeda.
“Naikkan budget campaign” terlalu ambigu. Proposal yang aman menyebut campaign ID, current daily budget, proposed daily budget, currency, percentage delta, reason, max allowed delta, dan waktu proposal kedaluwarsa.
Re-authorize pada waktu execution
Approval bukan time machine. Setelah proposal dibuat, role user bisa berubah, connection bisa dicabut, campaign bisa pause, product bisa out-of-stock, atau provider state berubah. Karena itu permission dan relevant state harus diperiksa lagi tepat sebelum mutation.
Ini juga mengatasi stale proposal. Jika current state berbeda material dari state yang disetujui, sistem sebaiknya membatalkan dan meminta proposal baru daripada “best effort” menyesuaikan sendiri.
Provider receipt adalah evidence, bukan dekorasi log
HTTP 200 dari middleware belum berarti provider menerima perubahan. Sistem perlu menyimpan receipt yang cukup untuk audit tanpa membocorkan secret: action type, provider, target, sanitized request summary, provider response ID/status, timestamps, actor, approval reference, dan error classification.
Receipt juga belum outcome. Publish sukses berarti provider menerima publication. Apakah page diindex, content menghasilkan qualified traffic, atau campaign memberi revenue adalah verification layer lain.
Payload deterministik dan risk diketahui.
Caller + policy + scope mengizinkan exact action.
Provider menerima mutation dan mengembalikan receipt.
Observed provider state cocok dengan desired state.
Outcome bisnis/operasional dibandingkan baseline.
External content adalah data, bukan instruction
Agent bisa membaca webpage, comment, DM, uploaded document, SERP snippet, atau scraped text. Semua content eksternal harus dianggap untrusted terhadap control plane. Instruksi di dalam content tidak boleh mengubah permission, system policy, atau tool boundary.
Ini bukan hanya soal prompt injection klasik. Bahkan content yang benign bisa mengandung CTA seperti “hapus konfigurasi lama lalu jalankan ini” yang tidak relevan dengan authority. Parser boleh mengekstrak fakta; policy layer tetap berada di luar content.
Human UI, API, automation, dan MCP harus lewat application service yang sama
Governance gagal kalau UI punya permission check tetapi agent/tool punya direct adapter ke provider. Itu menciptakan jalur privilege terpisah. Idealnya semua interface memanggil service yang sama untuk scope resolution, validation, policy, execution, receipt, dan audit.
Perbedaan interface boleh ada di presentation dan interaction. Rule authority harus konsisten.
Control design yang terasa sebagai UX, bukan compliance tax
Governance yang bagus memberi konteks tepat ketika dibutuhkan. User perlu melihat apa yang akan berubah, di mana, mengapa, sebesar apa, dan bagaimana rollback. Confirmation generik “Are you sure?” tidak membantu.
- Tampilkan diff, bukan deskripsi abstrak.
- Gunakan scope dan limit yang terlihat.
- Default capability baru ke read-only.
- Fail closed saat adapter/credential/policy tidak dapat divalidasi.
- Gunakan idempotency untuk retry.
- Redact secret dari log dan receipt.
- Simpan denial reason yang aman untuk debugging.
- Verifikasi provider state setelah mutation.
AI agent yang berguna bukan agent yang bisa melakukan segalanya. Yang lebih berharga adalah agent yang tahu kapan ia membaca, kapan ia mengusulkan, kapan policy atau manusia memutuskan, dan bagaimana membuktikan apa yang benar-benar terjadi setelah action.
