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

Kendalikan aplikasi AI yang saya bangun dengan Python

Titik penerapan yang digunakan: SDK Python, integrasi framework (LangChain, CrewAI, LangGraph, OpenAI Agents, PydanticAI) Mode yang didukung: Local Hosted Hybrid Paket: Free (dasar) Solo Teams (fitur hosted)

Yang akan Anda lakukan​

Bungkus bagian-bagian berbahaya dari aplikasi AI Python Anda -- pemanggilan alat, akses API eksternal, penulisan file -- dengan satu pemeriksaan guard(). Kebijakan berada di file YAML yang Anda kendalikan; SDK mengembalikan keputusan izinkan/tolak beserta alasan, dan mencatat keputusannya.

Mengapa ini jalur yang tepat untuk Anda​

  • Jika Anda menulis aplikasi Python yang memanggil LLM atau alat dan Anda memiliki kodenya, SDK memberi Anda kendali paling terperinci.
  • Jika Anda menggunakan LangChain, CrewAI, LangGraph, OpenAI Agents, atau PydanticAI, helper integrasi kelas satu tersedia di Integrasi.
  • Jika Anda tidak dapat mengubah kode, gunakan gateway.
  • Jika aplikasi Anda berbasis Node, gunakan SDK Node.

Kapan TIDAK menggunakan pendekatan ini​

waspada

SDK mengharuskan Anda memanggil guard() (atau memakai pembungkus integrasi) di setiap titik keputusan. Jika Anda menginginkan jalur tanpa kode yang mencegat setiap permintaan LLM secara otomatis, gunakan gateway.

Penyiapan 5 menit​

pip install controlzero

Mode Local (tanpa akun, kebijakan di disk)​

from controlzero import Client

cz = Client(policy_file="./policy.yaml")

decision = cz.guard(
tool="shell",
args={"command": "rm -rf /"},
)

if not decision.allowed:
raise RuntimeError(f"Blocked by policy: {decision.reason}")

policy.yaml minimal:

rules:
- id: block-shell-execute
deny: 'shell:execute'
reason: 'Destructive shell commands are not allowed.'
- id: allow-everything-else
allow: '*'
reason: 'Default-allow for everything else.'

Output yang diharapkan saat aturan terpicu:

RuntimeError: Blocked by policy: Destructive shell commands are not allowed.

Mode Hosted (kebijakan berada di dasbor)​

import os
from controlzero import Client

cz = Client(api_key=os.environ["CONTROLZERO_API_KEY"])

decision = cz.guard(tool="web_search", args={"query": "..."})

Atur CONTROLZERO_API_KEY=cz_live_... di environment Anda; kebijakan diambil dan dijaga tetap terbaru secara otomatis.

Memverifikasi bahwa berfungsi​

  1. Jalankan aplikasi Anda dan pantau log audit (mode Local) atau halaman Audit di dasbor (Hosted).
  2. Picu permintaan yang seharusnya ditolak kebijakan Anda. Pastikan decision.allowed == False dan peristiwanya muncul.
  3. Picu permintaan yang diizinkan. Pastikan decision.allowed == True dan ada baris audit allow.

Tindak lanjut umum​

Referensi​