Lewati ke konten utama
Halaman ini adalah terjemahan mesin dan belum sepenuhnya ditinjau. Teks asli berbahasa Inggris adalah acuan yang berlaku. Pernyataan tentang keamanan, privasi, penanganan data, kepatuhan, dan lisensi tetap dalam bahasa Inggris sampai peninjau teknis menyetujuinya. Baca teks asli berbahasa Inggris

Apa itu Control Zero?

Control Zero adalah lapisan tata kelola untuk agen AI. Anda menentukan apa yang boleh dilakukan agen Anda, dan Control Zero menerapkannya saat runtime. Di Claude Code, Gemini CLI, Cursor IDE, dan Kiro CLI, penolakan menghentikan pemanggilan alat (tool call) sebelum dieksekusi.

Teks asli berbahasa Inggris -- terjemahan menunggu tinjauan teknis

Coverage is declared per event, so the audit trail never implies protection for a call path that was not covered.

Kiro IDE bukan titik penerapan.

Hello World​

"Hello world" Python yang nyata dan dapat dijalankan. Tanpa pendaftaran. Tanpa kunci API. Tanpa jaringan.

pip install controlzero
# hello_controlzero.py
from controlzero import Client

# Define what your agent is allowed to do.
# Read operations: allowed. Write operations: blocked.
# Note: `database:query` and `database:execute` are legacy action names
# that remain supported. The canonical names are `database:read` and
# `database:write`; both forms match the same calls.
cz = Client(policy={
"rules": [
{"allow": "database:query", "reason": "Reads are fine"},
{"deny": "database:execute", "reason": "No writes from this agent"},
]
})

# Your agent tries to read; allowed.
result = cz.guard("database", method="query", args={"sql": "SELECT id FROM orders"})
print(result.decision) # "allow"

# Your agent tries to write; blocked before it ever runs.
result = cz.guard("database", method="execute", args={"sql": "DROP TABLE orders"})
print(result.decision) # "deny"
print(result.reason) # "No writes from this agent"

Jalankan:

$ python hello_controlzero.py
allow
deny
No writes from this agent

Itulah seluruh alurnya. Anda menulis kebijakan, memanggil guard() sebelum setiap pemanggilan alat, dan SDK memutuskan izinkan atau tolak. Pemanggilan yang ditolak tidak pernah terjadi. Anda tidak menulis kode penerapan, pemeriksaan autentikasi, atau logika allowlist.

Nama aksi lama dan kanonis sama-sama berfungsi

Nama aksi lama (database:query, database:execute, database:delete) maupun kanonis (database:read, database:write, database:admin) cocok dengan pemanggilan yang sama. Gunakan nama kanonis untuk kebijakan baru; aturan yang sudah ada dengan nama lama tetap berfungsi tanpa perubahan. Lihat Kebijakan untuk pemetaan lengkapnya.

Langkah berikutnya adalah memindahkan kebijakan dari kode Anda ke dasbor Control Zero agar Anda dapat mengubahnya tanpa deploy ulang. Lihat Mulai Cepat untuk versi 5 menit dengan dasbor.

Masalah yang diselesaikan: Agen AI memanggil alat, menjalankan kode, mengakses API, dan mengakses layanan melalui MCP. Seiring agen menjadi semakin otonom, Anda memerlukan pagar pengaman dengan kontrak penerapan yang jelas dan dapat diverifikasi. Control Zero memberi Anda satu tempat untuk mendefinisikan pagar pengaman tersebut, memblokir secara deterministik pemanggilan yang ditolak di titik penerapan yang menerapkan, dan mencatat cakupan setiap peristiwa. Matriks kapabilitas diturunkan dari deklarasi kapabilitas SDK itu sendiri; jalankan controlzero coverage --json untuk mengekspor apa yang sebenarnya dideklarasikan SDK yang Anda pasang (controlzero coverage tanpa opsi hanya mencetak ringkasan singkat per host).

Mengapa Control Zero​

  • Proxy gateway: Proxy drop-in transparan yang mengendalikan lalu lintas LLM tanpa perubahan kode. Ubah base URL Anda dan selesai.

Teks asli berbahasa Inggris -- terjemahan menunggu tinjauan teknis

  • Local enforcement: Every action is evaluated against your policies without a per-call network round-trip.
  • Intersepsi pemanggilan alat: Setiap tool_use (Anthropic) dan function_call (OpenAI) dievaluasi terhadap kebijakan Anda. Pemanggilan yang ditolak diganti secara inline sebelum sampai ke agen Anda.

Teks asli berbahasa Inggris -- terjemahan menunggu tinjauan teknis

  • DLP detection, masking, and blocking: Detect or block sensitive data in prompts. On Claude Code and Gemini CLI, Python SDK hooks can redact matches in place and let the call proceed. On the coding-agent surfaces that cannot accept rewritten tool input -- Cursor, Kiro, Codex CLI, Antigravity -- a mask rule becomes a deny, so the secret never reaches the tool either way. The Gateway can mask, on both the request and the response path, but does neither by default: it detects. See Gateway for the two switches and which one a policy bundle can set.
  • Pemblokiran model: Tolak permintaan ke model yang tidak diotorisasi di tingkat gateway.
  • Batas biaya: Tolak permintaan ketika estimasi biaya token melebihi anggaran Anda.

Teks asli berbahasa Inggris -- terjemahan menunggu tinjauan teknis

  • Secret injection: Store LLM provider keys in an encrypted vault. The SDK and gateway inject them at runtime.

Teks asli berbahasa Inggris -- terjemahan menunggu tinjauan teknis

  • Tamper detection: Policy bundles are encrypted at rest and cryptographically signed. A bundle that fails verification is never loaded, and the event is logged and reported. The SDK re-fetches its signing keys once in case they rotated; if verification still fails, the bundle is refused rather than trusted. During a background refresh the agent keeps enforcing the last known good policy; at startup there is nothing to fall back to, so calls are denied. See tamper detection.

Teks asli berbahasa Inggris -- terjemahan menunggu tinjauan teknis

  • Fail closed by default: When Control Zero cannot establish coverage, it denies rather than guesses. An unavailable policy bundle blocks traffic instead of silently allowing it.
  • Dukungan multi-penyedia: Anthropic, OpenAI, Ollama, DeepSeek, MoonshotAI, HuggingFace TGI, LangChain, CrewAI, dan lainnya.
  • SDK resmi: Python dan Node.js. Pasang dan bungkus klien AI Anda hanya dengan dua baris kode.
  • Server MCP: Kelola tata kelola langsung dari klien coding AI seperti Claude Code, Cursor, dan Windsurf.
  • Native MCP: Tata kelola kelas satu untuk pemanggilan alat MCP di klien mana pun yang kompatibel dengan MCP.

Teks asli berbahasa Inggris -- terjemahan menunggu tinjauan teknis

  • Complete audit trails: Every decision is logged with action, resource, result, timestamp, agent identity, and per-event coverage. “Did not run” is distinguishable from “ran and found nothing.”
  • Matriks kapabilitas dari kode: Matriks titik penerapan diturunkan dari deklarasi kapabilitas SDK itu sendiri. controlzero coverage --json mengekspornya untuk instalasi Anda, dan itulah otoritasnya jika dokumentasi ini pernah berbeda. controlzero coverage tanpa opsi hanya mencetak ringkasan singkat per host.
  • Paket gratis: 5.000 aksi terkendali per bulan tanpa biaya. Tanpa kartu kredit.

Gagasan Utama: Kebijakan Ada di Dasbor, Bukan di Kode Anda​

Inilah prinsip desain intinya:

  • Kebijakan didefinisikan di dasbor Control Zero (atau melalui API). Kebijakan menjelaskan aksi apa yang diizinkan atau ditolak.
  • Kode Anda memanggil alat melalui klien SDK. Tanpa referensi ke kebijakan tertentu, tanpa nama aksi yang ditulis langsung (hardcode) di aplikasi Anda.
  • SDK menangani penerapan secara otomatis. Setiap pemanggilan guard() dievaluasi terhadap bundel kebijakan yang di-cache secara lokal.

Anda dapat mengubah kebijakan kapan saja di dasbor tanpa menyentuh kode Anda. Proses SDK yang berjalan lama akan mengambil perubahan pada refresh berikutnya: SDK Python melakukan polling setiap 60 detik secara default, SDK Node setiap 300 detik. Refresh manual menerapkannya seketika.

Apa yang Diterapkan​

Setiap panggilan yang dilakukan melalui guard() diperiksa terhadap kebijakan aktif Anda. Aksi kebijakan diturunkan dari nama alat dan metode yang Anda berikan:

Argumen guard()Aksi kebijakan yang diperiksa
guard("github", method="list_issues", ...)github:list_issues
guard("database", method="query", ...)database:query (canonical class: database:read)
guard("filesystem", method="write_file", ...)filesystem:write_file
guard("slack", method="post_message", ...)slack:post_message

Anda mendefinisikan kebijakan menggunakan string aksi tool:method ini di dasbor.

Teks asli berbahasa Inggris -- terjemahan menunggu tinjauan teknis

The SDK evaluates them locally from a cached policy bundle, so each guard() call doesn't make a network request.

Arsitektur​

Alurnya:

  1. Anda mendefinisikan kebijakan di dasbor.

Teks asli berbahasa Inggris -- terjemahan menunggu tinjauan teknis

  1. The server compiles them into an encrypted, signed bundle.
  1. SDK mengunduh bundel sekali saat startup, lalu menyimpannya di cache secara lokal.

  2. Setiap panggilan API yang dibungkus diperiksa terhadap kebijakan yang di-cache secara lokal.

    Teks asli berbahasa Inggris -- terjemahan menunggu tinjauan teknis

    No network round-trip per call.

Teks asli berbahasa Inggris -- terjemahan menunggu tinjauan teknis

  1. Every decision (allow or deny) is logged for audit.

Alur Penerapan​

Ketika agen Anda memanggil guard(), Control Zero memeriksa panggilan tersebut terhadap kebijakan Anda lalu mengizinkannya (alat Anda berjalan) atau menolaknya (alat Anda tidak pernah dieksekusi, dan PolicyDeniedError dimunculkan).

Kapabilitas Utama​

  • Proxy gateway: Proxy drop-in transparan untuk lalu lintas LLM. Tanpa perubahan kode. Mendukung Anthropic, OpenAI, Google AI, Ollama, DeepSeek, MoonshotAI, HuggingFace TGI, Mistral, dan Cohere.

Teks asli berbahasa Inggris -- terjemahan menunggu tinjauan teknis

  • Local policy evaluation: Policies are evaluated locally with no per-call network round-trip.
  • Intersepsi pemanggilan alat: Setiap tool_use dan function_call dievaluasi dan pemanggilan yang ditolak diganti secara inline, baik pada respons streaming maupun non-streaming.
  • Pre-flight request guard: Pemblokiran model, batas biaya, serta deteksi dan pemblokiran PII sebelum permintaan sampai ke penyedia; penyamaran (masking) oleh SDK Python hanya didukung di Claude Code dan Gemini CLI.

Teks asli berbahasa Inggris -- terjemahan menunggu tinjauan teknis

  • Fail closed by default: When coverage cannot be established, the decision is deny. An unavailable policy bundle blocks traffic instead of silently allowing it.

Teks asli berbahasa Inggris -- terjemahan menunggu tinjauan teknis

  • Signed policy bundles: Policy bundles are encrypted at rest and cryptographically signed. The SDK verifies every bundle before use and refuses to load one that fails verification. On a background refresh it keeps enforcing the last known good policy; at startup, with nothing verified to fall back to, it denies rather than running unguarded.

Teks asli berbahasa Inggris -- terjemahan menunggu tinjauan teknis

  • Offline enforcement: After the initial bundle download, SDK enforcement runs locally with no further network calls per request.

Teks asli berbahasa Inggris -- terjemahan menunggu tinjauan teknis

  • Secrets vault: Store LLM provider keys in an encrypted vault. Injected at runtime by the SDK and gateway.

Teks asli berbahasa Inggris -- terjemahan menunggu tinjauan teknis

  • Audit trail: Every decision is logged with action, resource, result, timestamp, token usage, agent identity, and per-event coverage. The record distinguishes “did not run” from “ran and found nothing.”
  • Klaim kapabilitas berasal dari kode: setiap klaim kapabilitas dapat ditelusuri ke deklarasi CoverageDecl milik adapter itu sendiri. Salinan matriks kapabilitas yang dihasilkan otomatis berada di repositori SDK, tempat gerbang drift CI menggagalkan build jika halaman tersebut dan implementasinya tidak sesuai. Gerbang itu hanya mencakup halaman yang dihasilkan otomatis -- halaman dokumentasi ini ditulis dengan tangan. Jalankan controlzero coverage --json untuk mengekspor deklarasi bagi instalasi Anda sendiri; itulah otoritasnya jika halaman di sini pernah berbeda.
  • Multi-penyedia: Anthropic, OpenAI, Ollama, DeepSeek, MoonshotAI, HuggingFace TGI, LangChain, CrewAI, dan lainnya.
  • SDK multi-bahasa: SDK resmi untuk Python dan Node.js.
  • Server MCP: Kelola tata kelola langsung dari klien coding AI seperti Claude Code, Cursor, dan Windsurf.
  • Kontrol alat MCP: Batasi server dan alat MCP mana yang dapat dipanggil agen.
  • Kanal notifikasi: Terima peringatan melalui Telegram, Slack, Email, Discord, atau webhook.

Langkah Berikutnya​

Paket gratis mencakup 5.000 aksi terkendali per bulan. Tanpa kartu kredit.

  • Mulai Cepat: Siap digunakan dalam 5 menit (gateway atau SDK).
  • Proxy Gateway: Deploy proxy transparan untuk tata kelola tanpa kode.
  • Kebijakan: Pelajari cara menyusun kebijakan di dasbor.
  • Harga: Paket Free, Solo, dan Teams.
  • Server MCP: Kelola tata kelola dari klien coding AI.
  • Integrasi: OpenAI, Anthropic, Ollama, DeepSeek, LangChain, dan lainnya.
  • Pustaka Blueprint: Pola implementasi untuk Enterprise SRE, HR, dan Finance.
  • Panduan: Bangun aplikasi nyata dengan penerapan kebijakan otomatis.